ansibleでsshdを落とす。という鬼の所業【cloudpack大阪ブログ】
なぜsshdを落とすのか
理由は聞かないで下さい。詳しくはここを参照ください。
muranonushi.hatenablog.jp
コード
ansibleでsshdを落とすためのコードは以下です。
これをansibleで読み込む事でsshdが落ちるので、誰もsshアクセス出来なくなるのでセキュアになります。
- name: sshd desable service: name=sshd state=stopped enabled=no
どうしてもログインしたい時
え?ログインしたい時どうするの?って?
AWSならrun commandがあるので予めssm agentを入れて、どうしてもって言う時はsshを起動しましょう。
Amazon Web Services ブログ: EC2 Run Commandアップデート – Linuxインスタンスで利用可能に
CloudFormationをyamlで書く話【cloudpack大阪ブログ】
CloudFormatinoを書く時の""と{}と,がストレスで辛い。と呟いたら、弊社スーパーエンジニアの以下の記事を教えてもらったので
CloudFormationのjsonがどうyamlに変わるのか、ちゃんとCFnとして食えるのか早速試した。
qiita.com
1. まずはEC2を作るサンプルテンプレート(ec2.json)を準備
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "WebGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "http 80", "SecurityGroupIngress": [{ "IpProtocol" : "tcp", "CidrIp" : "0.0.0.0/0", "FromPort" : "80", "ToPort" : "80" }] } }, "WebServer" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : "ami-f80e0596", "InstanceType" : "t2.micro", "SecurityGroupIds" : [ { "Ref" : "WebGroup" } ] } }, "WebServerEip": { "Type": "AWS::EC2::EIP", "Properties": { "InstanceId": { "Ref": "WebServer" } } } } }
2. ec2.jsonを食わせて、ec2.ymlを出力
j2y -o ec2.yml ec2.json
3. 出力結果はこちら。なるほど、スッキリしました。(ec2.yml)
AWSTemplateFormatVersion: 2010-09-09 Resources: WebGroup: Properties: GroupDescription: http 80 SecurityGroupIngress: - CidrIp: 0.0.0.0/0 FromPort: "80" IpProtocol: tcp ToPort: "80" Type: AWS::EC2::SecurityGroup WebServer: Properties: ImageId: ami-f80e0596 InstanceType: t2.micro SecurityGroupIds: - Ref: WebGroup Type: AWS::EC2::Instance WebServerEip: Properties: InstanceId: Ref: WebServer Type: AWS::EC2::EIP
4. ec2.ymlを食わせて、ec2a.jsonを出力
j2y -o ec2a.json -r ec2.yml
5. 出力結果はこちら。キレイに整形してくれました(ec2a.json)
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "WebGroup": { "Properties": { "GroupDescription": "http 80", "SecurityGroupIngress": [ { "CidrIp": "0.0.0.0/0", "FromPort": "80", "IpProtocol": "tcp", "ToPort": "80" } ] }, "Type": "AWS::EC2::SecurityGroup" }, "WebServer": { "Properties": { "ImageId": "ami-f80e0596", "InstanceType": "t2.micro", "SecurityGroupIds": [ { "Ref": "WebGroup" } ] }, "Type": "AWS::EC2::Instance" }, "WebServerEip": { "Properties": { "InstanceId": { "Ref": "WebServer" } }, "Type": "AWS::EC2::EIP" } } }
6. ec2a.jsonをCFnに突っ込んでみる。問題なくデプロイできた
7. まとめ
1. yamlからjsonに変換しても問題なくCFnにデプロイ出来た
2. 正直yamlでもjsonでも書くこと変わらないが、""、{}、,が無くなったのでコードがスッキリし、行数が明らかに減った
3. いちいち""、{}、,を気にしなくていいのでストレス減りそう
4. yamlはインデント等は気にする必要あるが、jsonでもインデントしないと見辛い
5. これは捗りそう
ちなみに作成途中のCloudFormationの行数が1/3ほど減った
$ wc -l CFn-test2.json 671 CFn-test2.json $ wc -l CFn-test2.yml 471 CFn-test2.yml
mobingi.ioを試す(その2:設定ガチャガチャ)【cloudpack大阪ブログ】
こんばんわ。村主です。
mobingi.ioを試してみました。の第二弾です。
設定ガチャガチャ触ってみました。
MyApps
黒が基調になってます。
Instance Idをクリック
いろいろ出てきます。必要最低限?
ディスク容量とかスペックとかあったらいいな。
「Restart Instance」押した。
なんかめっちゃ怒られた感があったのでキャンセル・・。
サーバのスケーリングをクリック
ふむふむここでスケーリングさせることが出来るのか。
デプロイ時に選択したやつですね。後から変えられる。
見積りコストが表示されてた
なんかメーターが増えていってる感。
月末?には見積りコストの金額になるのかな。
MySQLをクリック
ここで色々わかるのか。DBユーザ名とパスワードが表示出来るもよう。
メトリクスタブ
ここでCPUとかトラフィック状況が見れるみたい。
メモリとかディスクとか見えないので結構少ない。期間も選べないし、これから増えるのかな。
アクティビティタブ
構成変更した時とかに記録が残るのかな?
ログタブ
これが面白かった。リアルタイムログはほぼ?リアルタイムに表示される。
これ、アプリログとか指定出来るようになったら面白そう。何を使って実現してるんだろ。
今のところ検索機能とかは無くて、ログをダウンロード出来るので
ローカルでゴニョゴニョする必要あるが、Kibana的な機能がついてきたら結構よさげ。
設定タブ
キーペアの指定やコンフィギュレーションの指定、アプリケーションの削除はここで行う。
所感
最低限の機能は備わっている感じですが、まだ発展途上なところが多そうです。
サーバに入ること無くGitベースでデプロイ出来るので、他サービスとのインテグレーションが付いてくれば
ログインすることなく色々出来るのでもっと面白そう。
例えば、各種イベント(設定変更とかアラート?とか)を元にWebhookが行われるとかSlackに通知されるとか。
メトリクス、モニタリング等と連携出来て、アプリのKPIとかも一元管理出来るとか。それは別サービスでもいいのかな。
まだ見切れていないですが、RESTful APIも公開されているので、Hubotと連携してスケールさせたりすることも出来そう?(Let's ChatOps!)
あとは、AWSのサービス(Kinesis、Redshift、DynamoDBとか色々色々いろいろ)や
他サービス(WAFやIDSなどなど)とどう連携出来るようになるのか気になる。
【超小ネタ】別AWSアカウントのセキュリティグループIDを指定する方法【cloudpack大阪ブログ】
こんばんわ。村主です。
AWSのセキュリティグループは当たり前のように使われていると思いますが、超小ネタを紹介します。
セキュリティグループの送信元
セキュリティグループはインバウンドを制御する場合に、タイプ(SSH/HTTPなど)、プロトコル、ポート、送信元を指定します。
その際に送信元はCIDRもしくはセキュリティグループIDを指定します。
CIDRを指定すると範囲が広すぎたり、IPアドレスを直接指定するとインスタンスを復元した時に面倒だったりします。
その場合はセキュリティグループIDを指定することで、そのセキュリティグループがあたっているインスタンスに対象を絞ることが出来ます。
こんな感じ。
と、いうのはよく使われていると思います。今回は更に踏み込んで。
別AWSアカウントのセキュリティグループIDが指定出来る
基本的にはAWSアカウント内でしかセキュリティグループIDは指定出来ません。
そのままセキュリティグループIDを入れてもエラーがでて登録出来ません。
そんな時は以下のように「AWSアカウントID(12桁)/セキュリティグループID」を入れてみてください。
これでアカウントをまたいだセキュリティグループIDの指定が出来ます。
VPC peeringとかしている場合に有用ですね。
追記 2016.3.18
VPC peeringを結んでいることが前提?あとで確認しよう。
mobingi.ioを試す(その1:デプロイ)【cloudpack大阪ブログ】
こんばんわ。村主です。
mobingi.ioを試してみました。
とりあえず、アプリケーションを作成するところまで。
githubと連携したり、メトリクスやログが見れたりするようですが、それは後日で。
アクセスする
アカウント登録画面
アカウントを登録する
アプリケーションの作成
そそくさと画面左より「アプリケーションの作成」を押す
アプリケーション情報を設定する
まずは「東京」ですよね。
インスタナスタイプは・・「タイプ1サーバー」で。EC2のsmallクラスかな。円表記分かりやすい。
自動スケール機能、すごい。最大100までいけるのか!ただ、びびって4くらいに・・。
ロードバランサーにSSLもコミコミなんですね。
アプリケーション名は適当に入れる。
イメージを選択する
色々選べる。ここはRubyもPythonもNginxも対して扱えないので、PHP&Apacheで。
Procfile Appsの下の空白はなんだろう・・・。
ちなみに、Dockerレジストリも選べたり、コミュニティイメージは近日利用開始らしいです。
もう車輪の再発明とかしたくないですよねー。
ドキュメントルートを選んでくれ、と。よしなに。
アプリケーションの作成
アプリケーションの作成を押す。
待つこと約30分・・。バックがAWSっぽいので、RDSのデプロイ&バックアップ処理で時間がかかったのかな。
所感
- デプロイはherokuとかとそんなに変わらない感じ?
- Web側はELBで負荷分散、RDSはMulti-AZですごく簡単に高可用性のサーバが出来る。
- AWSの管理画面はサービスが沢山出るので「うわっ、多い・・」となる方にはシンプルで持ってこいかも。
- githubと連携してしまえば、すぐに同じ環境で開発・検証・本番が出来る。
- Dockerイメージが使えるので、可能性が広がる。
- 所々に概算金額が円ベースで書いてあったのは(AWSと比べて)分かりやすかったですが、結局おいくら万円なの?がわかりにくかった。
- あとは運用していく中でどんな機能(メトリクスやログ、復旧など)が気になるところ。
ちなみに、デプロイ後にログみたらリアルタイムでログが見れた。やばい。面白かった。
これくらい簡単で汎用性あるサービスを作りたい。Dockerならやりたい放題やな。
もう手作業の時代では無いのか。。
mobingiをログインしてみた【cloudpack大阪ブログ】
こんにちは。村主です。
JAWS DAYSに参加した時にクーポンコードを貰えたので、せっかくなので試してみました。
mobingiへアクセス
https://mobingi.co.jp/にアクセスして、右上からサインアップ。
アカウントを登録する
ログイン後の画面
画面をさっと見て、おもむろに右上のAWSアイコンを押してみた
ふむふむ。クレデンシャルを入れろってことですな。
mobingi用にIAM Userを発行し、画面右下にあるポリシーでカスタムポリシーを作って当てた。
そのIAM Userのアクセスキー・シークレットキーを左下に入れた。
たぶん出来たっぽい。
ほか面白そうなところあるかなー。ん?設定画面か。
んお?Change Language。何が選択出来るのかな。
日本語いけるじゃん!
日本語になった!
なったはいいが、、クーポンコードはどこで入れるんだろう。。続きは続編で。
よく使うOS・ミドルウェアのサポート終了期限(EOL/ライフサイクル)をまとめた【cloudpack大阪ブログ】
よく調べる事があるので、よく使うOS・ミドルウェアのサポート終了期限(EOL/ライフサイクル)をまとめておきました。
観点はセキュリティパッチが提供されるか。という期限を書いています。(2016年2月時点)
期限を超えているものは、脆弱性が公表されてもセキュリティパッチは提供されません。
緊急の脆弱性対策でいきなりメジャーバージョンアップとかシンドイと思うので、
サポート期限を見越して選定し、移行しましょう。
PHP (コミュニティ版)
7.0 | 2018年11月 |
5.6 | 2017年8月 |
5.5 | 2016年6月 |
5.4 | 2015年9月 |
5.3 | 2014年8月 |
5.2 | 2011年1月 |
5.1 | 2006年8月 |
5.0 | 2005年9月 |
Ruby (コミュニティ版)
2.3 | 未定 |
2.2 | 未定 |
2.1 | 未定 |
2.0 | 2016年2月 |
1.9 | 2015年2月 |
Python (コミュニティ版)
3.4 | 未定 |
2.7 | 2020年 |
MySQL (コミュニティ版)
5.6 | 2018年2月 |
5.5 | 2015年12月 |
5.1 | 2013年12月 |
5.0 | 2011年12月 |
PostgreSQL (コミュニティ版)
9.5 | 2021年1月 |
9.4 | 2019年12月 |
9.3 | 2018年8月 |
9.2 | 2017年8月 |
9.1 | 2016年8月 |
9.0 | 2015年8月 |
8.4 | 2013年2月 |
Oracle (Premier Support)
12c R1 | 2018年7月 |
11g R2 | 2015年1月 |
11g R1 | 2012年8月 |
10g R2 | 2010年7月 |
Red Hat Enterprise Linux / CentOS
Ver | EOL | PHP | MySQL | PostgreSQL |
7.x | 2024年6月30日 | 5.4 | 5.5(CentOSはMariaDB) | 9.2 |
6.x | 2020年11月30日 | 5.3 | 5.1 | 8.4 |
5.x | 2017年3月31日 | 5.1 | 5.0 | 8.1 |