###### tags: `AWS`,`CloudWatch` # EC2の自動化 --- EC2は従量課金。無料枠とは言えども起動しっぱなしはどうかと思うので、システム起動/停止を自動化します。 ※ AWSの検証や構築・テストの現場ではかなり使うと思います。 --- ### 自動停止をCloud Watchで設定する 1. Cloud Watchダッシュボードから==ルール== → ==ルールの作成==を選択 2. イベントソースは==スケジュール==、==cron式==を選択 3. フィールドに通常のcrontabファイルに書くのと同様、停止したい時間を設定する。ターゲットは==EC2 StopInstances API 呼び出し==、==InstanceID==は自動停止対象のInstanceID、==この特定のリソースに対して新しいロールを作成する==にチェックし、==設定の詳細==をクリック 4. 設定の詳細で==ルール名==と==説明==を入力し、有効化にチェックを付けたまま==ルールの作成==をクリック --- ###### 参考:cronのフィールド ###### 書式: 分 時 日 月 曜日 コマンド | フィールド| 内容 | | -------- | -------- | | 分 | 0〜59までの整数 | |時|0〜23までの整数| |日|1〜31までの整数| |月|1〜12までの整数。もしくはjan〜decまでの文字列| |曜日|0〜7までの整数(0・7:日曜〜6:土曜。もしくはSun,Monなどの文字列)| |コマンド|実行すべきコマンド| |サイクル間隔|例) 分フィールドに ==*/2== で2分おきに実行| |複数の値を指定する場合|==,== で区切る| --- ### 自動起動をCloud Watchで設定する **・ 基本は自動停止と同じ手順だがRole作成の際にエラーが出るので事前にRoleを作成する** 1. ==IAMコンソール==から==ロール==→==ロールの作成==を選択 2. ==エンティティ:AWSサービス==→==ユースケース:EC2==を選択→==次のステップ== 3. ==ポリシーのフィルタ==にSSMを入力→==AmazonSSMAutomationRole==→==次のステップ== 4. ==タグの追加==はオプションなので入力は任意。今回はスキップ 5. ==ロール名==と==説明==を入力して==ロールの作成== 6. 作成したロールを再度選択して==信頼関係タブ==→==信頼関係の編集==を選択し以下のJSONを入力し==信頼ポリシーの更新== ```json= { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":[ "ec2.amazonaws.com", "ssm.amazonaws.com" ] }, "Action":"sts:AssumeRole" } ] } ``` 7. 作成したロールの==ロールARN==をコピーして==アクセス権限タブ==の右側にある==インラインポリシーの追加==をクリック 8. ==ビジュアルエディタタブ==のサービスに==IAM==、アクションに==PassRole==、リソースは==ARNの追加==をクリックし、**IAM_role の ARN の指定**にコピーした==ロールARN==をペーストし==追加==。 9. ポリシー名を入力し==ポリシーの作成== 10. あとは自動停止の設定同様、Cloud Watchダッシュボードから==ルールの作成==を行う。ターゲットの設定時に==SSMAutomation==、ドキュメントにAWS_StartEC2Incetance、定数のIncetanceIDに==自動起動対象のEC2インスタンスID==、<span style="color:red;">「AutomationAssumeRole」にはコピーしたロールARNを入力。</span> ルール名と説明を入力し作成すれば完成。 --- 自動停止は比較的簡単に設定できます。自動起動はロールとポリシーの設定が必要となるのでわからない場合はユーザーガイドを読みましょう。 [AWS Systems Manager ユーザーガイド](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/automation-permissions.html)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.