AWS CLIからEC2の起動と停止(ユーザの切替)

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)の起動と停止を行います。

 

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)でログインします。

Tera TermのSSHでEC2に接続する

 

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で稼働中です。

関連の記事

AWS IAMユーザを作成するサンプル

△上に戻る