AWS CLI勉強中の内容をまとめていきます。
PREV:0.5から始めるAWS CLI入門 - ③VPCの構築
hiroshik1985さんの0から始めるAWS入門②:EC2編の内容をAWS CLIで行います(若干違うとこもあります)。
#事前準備
キーペアの作成、セキュリティグループの作成
##キーペアの作成
~/.ssh/にキーペア作成
$ aws ec2 create-key-pair --key-name Test-key --query 'KeyMaterial' --output text > ~/.ssh/Test-key.pem
そのままだと使用するときに怒られるので権限の変更
$ chmod 400 ~/.ssh/Test-key.pem
##セキュリティグループの作成
vpc-idは前回作成したVPCを使用
セキュリティグループの作成
$ aws ec2 create-security-group --group-name Test-SG --description "Test-SG" --vpc-id vpc-@@@@@@@@
{
"GroupId": "sg-GGGGGGGG"
}
ネームタグをつける
$ aws ec2 create-tags --resources sg-GGGGGGGG --tags Key=Name,Value=Test-SG
このままだとインバウンドの通信が全て拒否されている。
自身のIPの確認と、自身からのSSHとVPC内のHTTP(HTTPS)通信のみ許可する。
IPの確認
$ curl http://checkip.amazonaws.com/
***.***.***.***
ホワイトリスト登録
$ aws ec2 authorize-security-group-ingress --group-id sg-GGGGGGGG --protocol tcp --port 22 --cidr ***.***.***.***/32
$ aws ec2 authorize-security-group-ingress --group-id sg-GGGGGGGG --protocol tcp --port 80 --cidr 10.0.0.0/16
$ aws ec2 authorize-security-group-ingress --group-id sg-GGGGGGGG --protocol tcp --port 443 --cidr 10.0.0.0/16
#EC2インスタンス作成・接続
いよいよインスタンスの作成
##EC2インスタンス作成
今回使うのはAmazon Linux AMI 2015.09.2 (HVM), SSD Volume Type
image-idを確認しておく
subnet-idは前回作成したsubnetを使用
$ aws ec2 run-instances --image-id ami-59bdb937 --count 1 --instance-type t2.micro --key-name Test-key --security-group-ids sg-GGGGGGGG --subnet-id subnet-AAAAAAAA --associate-public-ip-address
################出力略################
"VpcId": "vpc-@@@@@@@@",
"StateTransitionReason": "",
"InstanceId": "i-HHHHHHHH",
######################################
ネームタグをつける
$ aws ec2 create-tags --resources i-HHHHHHHH --tags Key=Name,Value=Test-Server01
##EC2インスタンス接続
前々回で触れた--queryを使ってパブリックIPアドレスを調べてみます。
$ aws ec2 describe-instances --instance-id i-HHHHHHHH --query 'Reservations[].Instances[].PublicIpAddress'
[
"***.***.***.***"
]
上記のIPで接続
ssh -i ~/.ssh/Test-key.pem ec2-user@***.***.***.***
間違い、改善点等ありましたらご指摘お願いします。