【AWS CLI】EC2の作成から削除までやってみた(前編)

AWS運用自動化サービス「Cloud Automator」

こんにちは。技術4課の福島です。
最近、ゲームオブスローンズ-シーズン7まで見ました。最高です。

最近、AWSマネジメントコンソールを開くのも億劫になっててしまったため、
どうにか、AWS CLIを使いこなしたいと思っております。

そこで今回は、AWS CLIを使いこなす第一歩として、
AWS CLIを使って、EC2の作成から削除まで実施しましたので、
その内容をブログにまとめたいと思います。(前編です。)

はじめに

今回は、以下の流れで作業をしました。

◆流れ
****************** 前編 ******************
①VPCの作成
②サブネットの作成
③IGWの作成&アタッチ
④ルートテーブルの作成&編集&アタッチ
⑤自動割り当てIP設定

****************** 後編 ******************
⑥キーペアの作成
⑦セキュリティグループの作成&設定
⑧EC2の作成&ログイン
⑨リソースの削除

参考)  AWS CLI を使用して IPv4 VPC とサブネットを作成
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-subnets-commands-example.html

参考)AWS CLI Command Reference
https://docs.aws.amazon.com/ja_jp/cli/latest/reference/ec2/index.html

◆補足
AWS CLIのインストールと設定方法は、以下のページを参照ください。

参考)AWS CLI のインストールと設定
https://docs.aws.amazon.com/ja_jp/streams/latest/dev/kinesis-tutorial-cli-installation.html

実行環境

実行環境は、以下の通りです。

①VPCの作成

早速、VPCの作成から行っていきます。

1-1.VPCの確認(作業前の確認)

◆実行コマンド

 →「query」オプションを利用して、SubnetId,CidrBlockの値だけを出力するようにします。

◆実行結果

 →上記の場合、既にVPCが1つ作成されていることが分かります。

1-2.VPCの作成

◆実行コマンド

 →CIDRを「10.0.0.0/16」で作成します。実行結果は省略します。

1-3.VPCの確認(作業後の確認)

◆実行コマンド(作業前と同じコマンドです。)

 →「query」オプションを利用して、SubnetId,CidrBlockの値だけを出力するようにします。

◆実行結果

 →作業前後の内容を比較して、無事に作成できていることが分かります。

また、作成したVPCのIDは、今後利用するので、変数に入れておきます。

 

②サブネットの作成

次にサブネットの作成を行います。

2-1.サブネットの確認(作業前の確認)

◆実行コマンド

 →「filters」オプションを利用して、作成したVPC内に存在するサブネットのみを確認します。
  また、「query」オプションを利用して、SubnetId,CidrBlockの値だけを出力するようにします。

◆実行結果

 →何も表示されていないため、サブネットが存在しないことが分かります。

2-2.サブネットの作成

◆実行コマンド

 →CIDRを「10.0.0.0/24」で作成します。実行結果は、省略します。

2-3.サブネットの確認(作業後の確認)

◆実行コマンド(作業前と同じコマンドです。)

 →「filters」オプションを利用して、作成したVPC内に存在するサブネットのみを確認します。
  また、「query」オプションを利用して、SubnetId,CidrBlockの値だけを出力するようにします。

◆実行結果

 →作業前後の内容を比較して、無事に作成できていることが分かります。

また、作成したサブネットのIDは今後利用するので、変数に入れておきます。

 

③IGWの作成&アタッチ

次にインターネットへの通信ができるようにIGWの作成&アタッチを行います。

3-1.IGWの確認(作業前の確認)

◆実行コマンド

 →「query」オプションを利用して、InternetGatewayIdの値のみ出力します。

◆実行結果

 →IGWが既に1つ存在することがわかります。

3-2.IGWの作成

◆実行コマンド

 →出力結果は、省略します。

3-3.IGWの確認(作業後の確認)

◆実行コマンド(作業前と同じコマンドです。)

 →「query」オプションを利用して、InternetGatewayIdの値のみ出力します。

◆実行結果

 →作業前後の内容を比較して、無事に作成できていることが分かります。

また、作成したIGWのIDは今後利用するので、変数に入れておきます。

 

3-4.VPCにアタッチされているIGWの確認(作業前の確認)

◆実行コマンド

 →「filters」と「query」オプションを利用して、作成したVPCにアタッチされているIGWを確認します。

◆実行結果

 →IGWがアタッチされていないことが分かります。

3-5.VPCにIGWをアタッチ

◆実行コマンド

 →アタッチしたいVPCおよびアタッチするIGWを指定します。実行結果は、省略します。

3-6.VPCにアタッチされているIGWの確認(作業後の確認)

◆実行コマンド(作業前と同じコマンドです。)

 →「filters」と「query」オプションを利用して、作成したVPCにアタッチされているIGWを確認します。

◆実行結果

 →IGWが出力されていれば、作成したVPCにIGWがアタッチされたことが分かります。

④ルートテーブルの作成&編集&アタッチ

次にルートテーブルの作成&編集&アタッチを行います。

ルートテーブルの編集は、インターネットへのアクセスができるよう
全てのトラフィック(0.0.0.0/0)をIGWへルートするように設定を変更します。

また、作成したルートテーブルを先ほど作成したサブネットにアタッチ(関連付け)します。

4-1.ルートテーブルの確認(作業前の確認)

◆実行コマンド

 →「query」オプションを利用して、RouteTableIdの値だけ出力します。

◆実行結果

 →ルートテーブルが既に1つ存在することが分かります。

4-2.ルートテーブルの作成

◆実行コマンド

 →ルートテーブルを作成したいVPCを指定します。実行結果は、省略します。

4-3.ルートテーブルの確認(作業後の確認)

◆実行コマンド(作業前と同じコマンドです。)

 →「query」オプションを利用して、RouteTableIdの値だけ出力します。

◆実行結果

 →作業前後の内容を比較して、無事に作成できていることが分かります。

また、作成したルートテーブルのIDは今後利用するので、変数に入れておきます。

 

4-4.ルートテーブルの設定確認(作業前の確認)

◆実行コマンド

 →作成したルートテーブルを指定するため、「filters」オプションを利用します。
  また、ルートテーブルの設定を見やすいように「output」オプションを利用して、
 「table」形式で出力します。

◆実行結果

 →ルートテーブルの設定が1つ入っていることが分かります。

4-5.ルートテーブルの設定変更

◆実行コマンド

 →設定変更するルートテーブルを指定し、追加するルートを指定します。
  実行結果は、省略します。

4-6.ルートテーブルの設定確認(作業後の確認)

◆実行コマンド(作業前と同じコマンドです。)

 →作成したルートテーブルを指定するため、「filters」オプションを利用します。
  また、ルートテーブルの設定を見やすいように「output」オプションを利用して、
 「table」形式で出力します。

◆実行結果

 →追加した設定が入っていることが分かります。

4-7.作成したサブネットにアタッチされているルートテーブルを確認(作業前の確認)

◆実行コマンド

 →作成したルートテーブルをアタッチしているサブネットを確認します。

◆実行結果

 →作成したルートテーブルをアタッチしているサブネットがないことが分かります。

4-8.作成したサブネットにルートテーブルをアタッチ

◆実行コマンド

 →アタッチするサブネットとアタッチしたいルートテーブルを指定します。
  実行結果は、省略します。

4-9.作成したサブネットにアタッチされているルートテーブルを確認(作業後の確認)

◆実行コマンド(作業前と同じコマンドです。)

 →作成したルートテーブルをアタッチしているサブネットを確認します。

◆実行結果

 →指定したサブネットが表示されていれば、
  無事にルートテーブルをアタッチできたことが分かります。

⑤自動割り当てIP設定

この後作成するEC2に自動でパブリックIPを付与するため、
サブネットの自動割り当てIP設定を行います。

5-1.自動割り当てIP設定の確認(作業前の確認)

◆実行コマンド

 →MapPublicIpOnLaunch(自動割り当てIP設定)の値だけ出力します。

◆実行結果

 →falseになっていることを確認します。

5-2.自動割り当てIPの設定変更

◆実行コマンド

 →実行結果は、省略します。

5-3.自動割り当てIP設定の確認(作業後の確認)

◆実行コマンド(作業前と同じコマンドです。)

 →MapPublicIpOnLaunch(自動割り当てIP設定)の値だけ出力します。

◆実行結果

 →trueになっていることを確認します。

まとめ

前編は、ここまでにしたいと思います。
初めて、AWS CLIでAWSリソースを作成したのですが、慣れないので、
とても大変でしたが、「query」や「filters」を使いこなせれば、設定の確認とかは、
AWSマネジメントコンソールを利用するより楽なのかなーと思いました。

それでは、また後編でお会いしましょ~

後編はこちら
http://blog.serverworks.co.jp/tech/2020/01/10/post-77961/

AWS運用自動化サービス「Cloud Automator」