AWS CLIからEC2の起動と停止とユーザの切替のサンプルです。
目次
サンプル | AWS CLIからEC2の起動と停止 |
IAMで起動停止用のポリシーとユーザを作成する | |
EC2のコンソールでの実行ユーザ(プロファイル)を登録する | |
EC2のコンソールでの実行ユーザ(プロファイル)を切り替える | |
コマンドでEC2を起動する | |
コマンドでEC2を停止する |
AWS CLIからEC2の起動と停止
- EC2(test-ec2)にSSHでログインし、EC2(test-ec2)のAWS CLIからもうひとつのEC2(test-ami-ec2)の起動と停止を行います。
AWS CLIとは
AWS CLIは、コマンドラインからAWSを実行できるようにするAWS公式モジュールです。
https://aws.amazon.com/jp/cli/
IAMで起動停止用のポリシーとユーザを作成する
1.IAMで起動停止用のポリシーを作成します。ポリシーを作成をクリックします。
ポリシー名はtest-ec2-start-stop-policyで、アクセス権限はEC2のStartInstancesとStopInstancesです。
2.次に起動停止用のユーザーとしてtest-ec2-userを作成します。
アクセス権限として作成したtest-ec2-start-stop-policyを追加します。
EC2のコンソールでの実行ユーザ(プロファイル)を登録する
1.Teratermを使用してEC2にログインユーザー(ec2-user)でログインします。
2.コンソールでaws configureコマンドを入力して実行ユーザ(test-ec2-user)を登録します。
アクセスキーとシークレットキーは、ユーザー作成時にダウンロードしたファイルの中にある情報です。
[ec2-user@ip-10-0-10-4 ~]$ aws configure --profile test-ec2-user
AWS Access Key ID [None]: アクセスキー
AWS Secret Access Key [None]: シークレットキー
Default region name [None]: ap-northeast-1
Default output format [None]:
[ec2-user@ip-10-0-10-4 ~]$
[ec2-user@ip-10-0-10-4 ~]$ aws configure list-profiles
test-ec2-user
[ec2-user@ip-10-0-10-4 ~]$
7行目は、プロファイルリストを確認しています。
EC2のコンソールでの実行ユーザ(プロファイル)を切り替える
ログインユーザー(ec2-user)から実行ユーザ(test-ec2-user)に切り替えます。
[ec2-user@ip-10-0-10-4 ~]$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************xxxx iam-role
secret_key ****************xxxx iam-role
region ap-northeast-1 imds
[ec2-user@ip-10-0-10-4 ~]$ export AWS_DEFAULT_PROFILE=test-ec2-user
[ec2-user@ip-10-0-10-4 ~]$ aws configure list
Name Value Type Location
---- ----- ---- --------
profile test-ec2-user env ['AWS_PROFILE', 'AWS_DEFAULT_PROFILE']
access_key ****************xxxx shared-credentials-file
secret_key ****************xxxx shared-credentials-file
region ap-northeast-1 config-file ~/.aws/config
[ec2-user@ip-10-0-10-4 ~]$
1行目は、変更前のユーザです。
8行目は、test-ec2-userに変更しています。
9行目は、変更後のユーザーです。
コマンドでEC2を起動する
実行ユーザ(test-ec2-user)でコマンドを入力します。
1行目は、インスタンスIDを指定してEC2を起動しています。
1行目を入力し成功すると2行目以降が表示されます。
[ec2-user@ip-10-0-10-4 ~]$ aws ec2 start-instances --instance-ids "i-0f8dc69e5296a18ba"
{
"StartingInstances": [
{
"CurrentState": {
"Code": 0,
"Name": "pending"
},
"InstanceId": "i-0f8dc69e5296a18ba",
"PreviousState": {
"Code": 80,
"Name": "stopped"
}
}
]
}
[ec2-user@ip-10-0-10-4 ~]$
5行目は、CurrentStateで現在の状態です。
7行目は、pendingで保留です。
10行目は、PreviousStateで前の状態です。
12行目は、stoppedで停止です。
コマンドでEC2を停止する
1行目は、インスタンスIDを指定してEC2を停止しています。
1行目を入力し成功すると2行目以降が表示されます。
[ec2-user@ip-10-0-10-4 ~]$ aws ec2 stop-instances --instance-ids "i-0f8dc69e5296a18ba"
{
"StoppingInstances": [
{
"CurrentState": {
"Code": 64,
"Name": "stopping"
},
"InstanceId": "i-0f8dc69e5296a18ba",
"PreviousState": {
"Code": 16,
"Name": "running"
}
}
]
}
[ec2-user@ip-10-0-10-4 ~]$
5行目は、CurrentStateで現在の状態です。
7行目は、stoppingで停止中です。
10行目は、PreviousStateで前の状態です。
12行目は、runnningで稼働中です。
関連の記事