AWS CLIを使ってEC2インスタンスの作成を行う。
AWS Command Line Interface とは
事前準備から。
・ユーザ ーのアクセスキーの作成
AWSマネージメントコンソールからIAM > IAM ダッシュボード > [ユーザ ] > [認証情報]タブ > アクセスキーの作成
作成したキーのアクセスキーとシークレットキーを確認
・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の確認はどこでするんだろう?と思いきや以下を確認
例: 現在の 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インスタンスが作成されていることを確認
名前がなかったので以下を追加で実行
$ aws ec2 create-tags \ > --resources i-07ca0a605d5ed1b69 \ > --tags Key=Name,Value=CLI-TEST-EC2
名前が付いていることを確認
・作成した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`
実行後、削除を確認
・感想
画面でボタンをポツポツ押して作成するより、より設定情報を気にする必要があるので
仕組みを覚えるにはCLI側で触ったほうが良さそう。
うす!!お疲れ様でした。