8
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

[AWS]コマンドラインからVPCを作成してみよう!その1[AWSCLI]

気温上がりましたね・・・暑いの苦手です。吉田です。
前回までリファレンスを書いてきました。じゃあ実際に作るのはどうすりゃいいんじゃ!
ってことでやっていきます。
前の投稿でも書きましたが、regionは適宜指定してください。


awscliでVPC環境を構築しよう!

今回のゴールはこちら

150713-0002.jpg

publicサブネットを1つ持つ一般的なVPCを作成します。
本投稿の目標は

150713-0003.jpg

  1. VPCを作成する
  2. IGWを作成する
  3. 作成したIGWをVPCにアタッチする

ところまでやってみたいと思います。

1.VPCの作成

[aws ec2 create-vpc]コマンド

早速VPCを作成していきます。まず使用するのがcreate-vpcコマンド
名前通り、VPCを作成します。
使用するオプションは以下の通りです。

オプション   意味     何を書けば良いか
--cidr-block CIDRを書きます 192.168.0.0/16とか
--region リージョンを書きます ap-northeast-1など

サンプル
aws ec2 create-vpc --cidr-block 10.0.0.0/16 

VPCのCIDRを指定して作成します。
コマンドライン上でサンプルコードを実行してください。
東京リージョンに10.0.0.0/16の範囲を持つVPCが一つ作成されます。
成功すると以下のように出力が帰ってくるのでVpcIdを控えておいて下さい。後ほど使用します。

表示
{
    "Vpc": {
        "InstanceTenancy": "default", 
        "State": "pending", 
        "VpcId": "vpc-xxxxxxxx",  
        "CidrBlock": "10.0.0.0/16", 
        "DhcpOptionsId": "dopt-xxxxxxxx"
    }
}

[aws ec2 create-tags]コマンド

作成したVPCには名前をつけておきましょう。
AWS上のリソースにタグ付けをしておくことは非常に大事です。
CLIで操作する際にタグが付いていると簡単に値を取得できるメリットは大きいですが、やはりそこそこ使っていると「これ、そもそもなんだっけ?必要だっけ?」ってなってきます。名前の管理は大切です。

オプション   意味     何を書けば良いか
--resources タグをつけたいサービスのid vpc-XXXXXXXX

今回はVPCなのでVPCのidを指定します。インスタンスならinstanceidを指定します。

サンプル
aws ec2 create-tags --resources vpc-XXXXXXXX --tags Key=Name,Value=testVPC

VPCidを先ほど作成したvpcのidに指定して作成してください。
成功しても何も帰ってこないのでできたか確認してみましょう。

[describe-tags]コマンド

確認
aws ec2 describe-tags --filters "Name=resource-id,Values=vpc-xxxxxxxx"

表示
{
    "Tags": [
        {
            "ResourceType": "vpc", 
            "ResourceId": "vpc-xxxxxxxx", 
            "Value": "testVPC", 
            "Key": "Name"
        }
    ]
}

このように表示されれば無事VPCにタグ付けがされています。
マネジメントコンソールでもtestVPCが確認できますよ!

2.IGWを作成する

[create-internet-gateway]コマンド

次にIGWを作成していきます。

サンプル
aws ec2 create-internet-gateway

このコマンドは特にオプションは必要ないのでそのまま実行してください。
強いて言えばregionの指定くらいです。

表示
{
    "InternetGateway": {
        "Tags": [], 
        "InternetGatewayId": "igw-xxxxxxxx", 
        "Attachments": []
    }
}

上記の「InternetGatewayId」を控えておいて下さい。後ほど使います。

3.作成したIGWをVPCにアタッチする

[attach-internet-gateway]コマンド

先ほど作ったIGWをVPCにアタッチします。

オプション  意味     何を書けばいいか
--internet-gateway-id IGWのidを指定する igw-XXXXXXXX
--vpc-id IGWをアタッチするVPCを指定する  vpc-xxxxxxxx
サンプル
aws ec2 attach-internet-gateway --internet-gateway-id igw-XXXXXXXX --vpc-id vpc-xxxxxxxx

上記サンプルを自分のメモに沿って修正し実行してください。
特に何も表示されなければ大丈夫です。


どうでしょうか?
VPCの作成からIGWのアタッチまでをCLIで実行することができました。
フィルターやjqを使って取得したidを変数化しておけばこれらの操作を自動化することもできますよ♪

次回はサブネットの作成なんかを見ていきたいと思います!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
8
Help us understand the problem. What are the problem?