EC2オンデマンドインスタンスの場合、利用しない時間は停止し、利用するときだけ起動するように制御をしたいものです。
このため、AWS CLIからEC2インスタンスの起動/停止を行うためのやり方を調べ、自分の備忘録としてまとまました。これを見れば、一目で思い出せるはず!
- 作図には AWS 公式アイコンセットを利用してます
- 全般的に概念的な説明のみとしています。
- 以下サイトを参考としました。不明点がある場合は、補足で参照ください。画面キャプチャ付きで細かく説明されてました!
前提
- 説明を極力シンプルにするために、CLI用IAMユーザーの登録、AWS CLIのインストール(+設定:aws configure)は完了している状態から始めます。
- IAMユーザーの作り方は公式サイトを参照してください。
- 登録したユーザには、アクセス権限のポリシー「AmazonEC2FullAccess」を付けておきます。(今回だけならフルには不要なのですが)
起動
実行コマンド
aws ec2 start-instances --instance-ids "i-xxxxxxxxxxxxxxxxx"
処理結果
{
"StartingInstances": [
{
"InstanceId": "i-xxxxxxxxxxxxxxxxx",
"CurrentState": {
"Code": 0,
"Name": "pending"
},
"PreviousState": {
"Code": 80,
"Name": "stopped"
}
}
]
}
起動完了待ち
実行コマンド
aws ec2 wait instance-running --instance-ids "i-xxxxxxxxxxxxxxxxx"
停止
実行コマンド
aws ec2 stop-instances --instance-ids "i-xxxxxxxxxxxxxxxxx"
処理結果
{
"StoppingInstances": [
{
"InstanceId": "i-xxxxxxxxxxxxxxxxx",
"CurrentState": {
"Code": 64,
"Name": "stopping"
},
"PreviousState": {
"Code": 16,
"Name": "running"
}
}
]
}
状態表示(停止中)
停止状態でdescribe-instance-status
すると、結果のjsonが空値で返ってきます。
実行コマンド
aws ec2 describe-instance-status --instance-ids "i-xxxxxxxxxxxxxxxxx"
処理結果
{
"InstanceStatuses": []
}
さいごに
この記事はAWS初学者を導く体系的な動画学習サービス「AWS CloudTech」の課題カリキュラムで作成しました。
このサービスは、テンポの良い/わかりやすい動画説明をもとに、気軽に実践を積み、自分の血肉とできるオンラインスクールです。
コミュニティも存在し、Slackで会員通しの情報交換/質問も気楽にできます。
書籍を購入するような値段で学習ができ、とてもお得です。(個人的な感想です)
では、また次回お会いしましょう!