【AWS】AWS CLIでEC2構築

よし、Infrastructure as Code的なことを目指して、Cloud FormationでVPCからEC2まで一気に構築してみよう!と思いましたが、サンプルテンプレートを見てみてちょっと情報量の多さにゲロ吐きそうだったので、まずは、1行1行進められるAWS CLIでEC2構築までやってみようと思います。

基本的に公式の以下のリンクをなぞっていますが、

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-subnets-commands-example.html

公式は情報量が多いので、
簡単に読み切れるように情報量を最低限にしています。

では始めます。

VPCを作る

aws ec2 create-vpc --cidr-block 10.0.0.0/16

VpcIdが返ってくるのでメモ

サブネットを作る

aws ec2 create-subnet --vpc-id VPCのID --cidr-block 10.0.1.0/24

作成したサブネットをパブリックサブネット(インターネットに出れる)にする

そのためにInternetGatewayを作成する

aws ec2 create-internet-gateway

InternetGatewayIdが返ってくるのでメモる

VPCにInternetGatewayをアタッチ

aws ec2 attach-internet-gateway --vpc-id VPCのID --internet-gateway-id InternetGatewayのID

VPCのルートテーブルを作成する

aws ec2 create-route-table --vpc-id VPCのID

RouteTableIdが返ってくるのでメモる

インターネットに出れるようにルートテーブルを編集する

aws ec2 create-route --route-table-id RouteTableのID --destination-cidr-block 0.0.0.0/0 --gateway-id InternetGatewayのID

サブネットとルートテーブルを関連付ける

そのために、サブネットIDを調べる

aws ec2 describe-subnets --filters "Name=vpc-id,Values=VPCのID" --query 'Subnets[*].{ID:SubnetId,CIDR:CidrBlock}'

返ってくる サブネットID(subnetで始まる)をメモる

サブネットとルートテーブルを関連付ける

aws ec2 associate-route-table  --subnet-id サブネットのID --route-table-id RouteTableのID

サブネット内で起動したインスタンスにパブリックIPがふられるようにする

aws ec2 modify-subnet-attribute --subnet-id サブネットのID --map-public-ip-on-launch

サブネット内にEC2インスタンスを起動しssh接続する

まず、EC2にsshする時に使う鍵を作成する、作成後はchmod 400にする

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

ssh許可するセキュリティグループを作成する

aws ec2 create-security-group --group-name SSHAccess --description "Security group for SSH access" --vpc-id VPCのID

作成したセキュリティグループのID(sgから始まる)が返ってくるのでメモる
※下のコマンドは0.0.0.0/0でどっからでもsshできる設定だから要注意!

aws ec2 authorize-security-group-ingress --group-id セキュリティグループID --protocol tcp --port 22 --cidr 0.0.0.0/0

それでは、EC2立ち上げていきます。

作成したセキュリティグループと鍵を使って起動します。

aws ec2 run-instances --image-id AMIのID --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids セキュリティグループID --subnet-id サブネットID

インスタンスIDが返ってくるのでメモる

インスタンスのIPを調べる

aws ec2 describe-instances --instance-id インスタンスのID

PublicIpAddressをメモる

SSH接続してみましょう!

ssh -i "MyKeyPair.pem" ec2-user@IPアドレス

つながったでしょうか?

これでAWS CLIからEC2を立ち上げることができました。

お疲れ様でした。

じゃなくって、ちゃんと作成したリソースたちを削除しましょう

お金かかっちゃいますから

EC2のterminate
aws ec2 terminate-instances --instance-ids インスタンスのID
セキュリティグループ削除
aws ec2 delete-security-group --group-id セキュリティグループID
サブネット削除
aws ec2 delete-subnet --subnet-id サブネットID
ルートテーブル削除
aws ec2 delete-route-table --route-table-id RouteTableのID
インターネットゲートウェイの取り外しと削除
aws ec2 detach-internet-gateway --internet-gateway-id InternetGatewayのID --vpc-id VPCのID
aws ec2 delete-internet-gateway --internet-gateway-id InternetGatewayのID
VPCの削除
aws ec2 delete-vpc --vpc-id VPCのID

これでマッサラになったと思います。

不安な人はマネジメントコンソールからの確認も忘れずに。

ではまた

Please share this page:

コメントを残す