LoginSignup
0
0

AWS CLIでEC2インスタンスを起動・停止する

Last updated at Posted at 2023-07-30

概要

AWS CloudShell から コマンドライン(AWS CLI)で EC2 インスタンスを起動・停止します

AWS CloudShell

AWS が提供するブラウザベースのシェル環境です

AWS Command Line Interface (aws-cli)

コマンドラインシェルを使用して AWS サービスとやり取りするためのオープンソースツールです
https://github.com/aws/aws-cli/tree/v2

環境

  • AWS CloudShell
  • aws-cli 2.13.3

手順の流れ

  1. EC2 インスタンスのステータス確認
  2. EC2 インスタンスの起動
  3. EC2 インスタンスの停止
  4. エイリアスの作成

手順

1. EC2 インスタンスのステータス確認

AWS マネジメントコンソールから
AWS CloudShell を起動し、 EC2 インスタンスのステータスを確認します

コマンド

$ aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, State.Name, Tags[?Key==`Name`].Value | [0]]' --output text

実行結果

# ヘッダーは出力されません
InstanceId           State.Name Tags.Value
-------------------- ---------- -------------
i-1234567890abcdef1     stopped ec2-instance1
i-1234567890abcdef2     running ec2-instance2

2. EC2 インスタンスの起動

1で取得したインスタンスIDを指定して、EC2 インスタンスを起動します

コマンド

$ aws ec2 start-instances --instance-ids i-1234567890abcdef1

実行結果

{
    "StartingInstances": [
        {
            "InstanceId": "i-1234567890abcdef1",
            "CurrentState": {
                "Code": 0,
                "Name": "pending"
            },
            "PreviousState": {
                "Code": 80,
                "Name": "stopped"
            }
        }
    ]
}

3. EC2 インスタンスの停止

1で取得したインスタンスIDを指定して、EC2 インスタンスを停止します

コマンド

$ aws ec2 stop-instances --instance-ids i-1234567890abcdef1

実行結果

{
    "StoppingInstances": [
        {
            "InstanceId": "i-1234567890abcdef1",
            "CurrentState": {
                "Code": 64,
                "Name": "stopping"
            },
            "PreviousState": {
                "Code": 16,
                "Name": "running"
            }
        }
    ]
}

4. エイリアスの作成

コマンドのエイリアスを作成します

コマンド

$ mkdir -p ~/.aws/cli
$ echo '[toplevel]' > ~/.aws/cli/alias
$ vi ~/.aws/cli/alias

入力内容

# ~/.aws/cli/alias
[toplevel]
[command ec2]
status = describe-instances \
           --query 'Reservations[*].Instances[*].[InstanceId, State.Name, Tags[?Key==`Name`].Value | [0]]' \
           --output text
start = start-instances --instance-ids
stop = stop-instances --instance-ids

エイリアスを作成することで、以下のようにコマンドを短縮して実行することができます

$ aws ec2 status
$ aws ec2 start <instance_id>
$ aws ec2 stop <instance_id>

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0