むらじゅん風呂具

ITエンジニアとたまに歌手と司会などで活動する村中淳のブログ

【AWS】CLI からEC2の作成を行う

AWS CLIを使ってEC2インスタンスの作成を行う。
AWS Command Line Interface とは

事前準備から。

・ユーザ ーのアクセスキーの作成

AWSマネージメントコンソールからIAM > IAM ダッシュボード > [ユーザ ] > [認証情報]タブ > アクセスキーの作成

f:id:pj124183:20200101173908p:plain

作成したキーのアクセスキーとシークレットキーを確認

CLIにて環境設定

※自分の環境ではCLIインストール済み
AWS CLI のインストール

以下コマンドを実行、確認したアクセスキーとシークレットキーを入力
リージョンとアウトプットフォーマットは必要があれば変更する

$ aws configure
AWS Access Key ID [****************]: ***
AWS Secret Access Key [****************]: ***
Default region name [ap-northeast-1]: 
Default output format [json]: 

・コマンドにて設定確認

セキュリティグループの一覧を出力するコマンドを実行、結果が見られるか確認

$ aws ec2 describe-security-groups

問題なく出力されたことを確認

・必要な情報の確認

1.AMI ID
AMI IDの確認はどこでするんだろう?と思いきや以下を確認

AWS CLI を使用した AMI の検索

例: 現在の Amazon Linux 2 AMI を検索する

$ aws ec2 describe-images --owners amazon --filters 'Name=name,Values=amzn2-ami-hvm-2.0.????????.?-x86_64-gp2' 'Name=state,Values=available' --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' --output text

出力されたAMI IDを控える

2.セキュリティグループ ID
セキュリティグループのIDはCLIの確認時に実行済みのため省略

3.サブネット ID
サブネットIDは以下にて確認

$ aws ec2 describe-security-groups

・EC2インスタンス接続時のキーペア作成

キーペアの作成コマンド

$ aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text > MyKeyPair.pem

CLIからEC2インスタンスを作成する

$ aws ec2 run-instances \
> --image-id ami-068a6cefc24c301d2 \
> --count 1 \
> --instance-type t2.micro \
> --key-name MyKeyPair \                                       
> --security-group-ids sg-0f55c3fb319360bb6 \
> --subnet-id subnet-0c340604a3253251c \
> --associate-public-ip-address

コマンド実行後、詳細情報が出力されてコンソールにEC2インスタンスが作成されていることを確認

f:id:pj124183:20200101181437p:plain

名前がなかったので以下を追加で実行

$ aws ec2 create-tags \
> --resources i-07ca0a605d5ed1b69 \
> --tags Key=Name,Value=CLI-TEST-EC2

名前が付いていることを確認

f:id:pj124183:20200101182050p:plain

・作成したEC2インスタンスにログイン

$ ssh -i MyKeyPair ec2-user@'パブリックDNS名'
The authenticity of host 'ec2-3-112-195-144.ap-northeast-1.compute.amazonaws.com (3.112.195.144)' can't be established.
ECDSA key fingerprint is SHA256:6uuwR+x9X4A9DPXaNQWiJMP5129ZBz7CX1WMdiwxtUc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-3-112-195-144.ap-northeast-1.compute.amazonaws.com,3.112.195.144' (ECDSA) to the list of known hosts.

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
8 package(s) needed for security, out of 17 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-10-0-0-53 ~]$

できた!!

CLIからインスタンスを削除する

aws ec2 terminate-instances --instance-ids `instance-ids`

実行後、削除を確認

f:id:pj124183:20200101182858p:plain

・感想

画面でボタンをポツポツ押して作成するより、より設定情報を気にする必要があるので
仕組みを覚えるにはCLI側で触ったほうが良さそう。
うす!!お疲れ様でした。

AWS コマンドラインインターフェイスのドキュメント