こちらの[AWS] EC2インスタンスを作成しSSH接続してみる(AWS Management Console)にてManagement ConsoleからGUIで実行していた操作を、今回はAWS CLIからコマンドのみで完結してみます。
AWS CLIのインストール
筆者の検証環境はWindowsですので、以下のサイトからWindowsのインストーラを入手し、AWS CLIをインストールします。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html
インストールが完了したら、コマンドプロンプトを立ち上げて、AWS CLIに認証情報を設定しておきます。
IAMユーザーのアクセスキーを取得しておき、次のコマンドを実行します。
aws configure
この後、以下の情報を順次入力しておきます。
- AWS Access Key ID
- AWS Secrete Access Key
- Default region name(例:ap-northeast-1など)
- Default output format(例:json)
キーペアの作成
EC2接続するキーペアを作成します。
aws ec2 create-key-pair --key-name MyKey --query "KeyMaterial" --output text > MyKey.pem
ここで作成される MyKey.pem は秘密鍵ファイルです。取り扱い注意。
セキュリティグループの作成
SSH用の22番ポートを開けるために、セキュリティグループを作成します。
aws ec2 create-security-group --group-name MySG --description "SSH access"
aws ec2 authorize-security-group-ingress --group-name MySG --protocol tcp --port 22 --cidr 0.0.0.0/0
ここでは任意のIPアドレスからの接続を開いていますが(0.0.0.0/0)、特定のIPアドレスに限定するのが望ましいです。
EC2インスタンスの起動
EC2インスタンスを作成し起動します。
aws ec2 run-instances ^
--image-id [AMIのID] ^
--count 1 ^
--instance-type t2.micro ^
--key-name MyKey ^
--security-groups MySG
[AMIのID]は、”ami-01ead1eca9a200e01″ などのAMIごとに振られているIDです。今回は Amazon Linux 2 を使用しました。
インスタンスタイプは最小の t2.micro を使用しています。
実行結果からインスタンスIDを取得しておきます。
EC2インスタンスが立ち上がったら、パブリックIPを取得しておきます。
aws ec2 describe-instances ^
--query "Reservations[*].Instances[*].PublicIpAddress" ^
--output text
表示されたパブリックIPアドレスは、SSH接続で使用します。
SSH接続
PowerShellで次のコマンドを実行します。
ssh -i MyKey.pem ec2-user@<取得したパブリックIP>
接続できました。
, #_
~\_ ####_ Amazon Linux 2
~~ \_#####\
~~ \###| AL2 End of Life is 2026-06-30.
~~ \#/ ___
~~ V~' '->
~~~ / A newer version of Amazon Linux is available!
~~._. _/
_/ _/ Amazon Linux 2023, GA and supported until 2028-03-15.
_/m/' https://aws.amazon.com/linux/amazon-linux-2023/
[ec2-user@ip-172-31-47-103 ~]$
リソースの削除
検証し終えたら、使わないリソースは削除しておきましょう。
作成したEC2インスタンス・セキュリティグループ・キーペアを削除します。
aws ec2 terminate-instances --instance-ids [インスタンスID]
aws ec2 delete-security-group --group-id [セキュリティグループID]
aws ec2 delete-key-pair --key-name MyKey