1. Yuki_BB3

    Posted

    Yuki_BB3
Changes in title
+[AWS]コマンドラインからVPCを作成してみよう!その1[AWSCLI]
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,156 @@
+
+気温上がりましたね・・・暑いの苦手です。吉田です。
+前回までリファレンスを書いてきました。じゃあ実際に作るのはどうすりゃいいんじゃ!
+ってことでやっていきます。
+前の投稿でも書きましたが、regionは適宜指定してください。
+
+---
+###awscliでVPC環境を構築しよう!
+今回のゴールはこちら
+
+![150713-0002.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/5034b23b-e1ab-e222-0c15-d3e3183223b0.jpeg)
+
+
+publicサブネットを1つ持つ一般的なVPCを作成します。
+本投稿の目標は
+
+![150713-0003.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/f4260638-7036-9b77-616f-6a62164863af.jpeg)
+
+
+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など|
+
+
+---
+
+```bash:サンプル
+aws ec2 create-vpc --cidr-block 10.0.0.0/16
+```
+
+
+VPCのCIDRを指定して作成します。
+コマンドライン上でサンプルコードを実行してください。
+東京リージョンに10.0.0.0/16の範囲を持つVPCが一つ作成されます。
+成功すると以下のように出力が帰ってくるのでVpcIdを控えておいて下さい。後ほど使用します。
+
+```json:表示
+{
+ "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を指定します。
+
+```bash:サンプル
+aws ec2 create-tags --resources vpc-XXXXXXXX --tags Key=Name,Value=testVPC
+```
+
+VPCidを先ほど作成したvpcのidに指定して作成してください。
+成功しても何も帰ってこないのでできたか確認してみましょう。
+
+####[describe-tags]コマンド
+```bash:確認
+aws ec2 describe-tags --filters "Name=resource-id,Values=vpc-xxxxxxxx"
+
+```
+
+```json:表示
+{
+ "Tags": [
+ {
+ "ResourceType": "vpc",
+ "ResourceId": "vpc-xxxxxxxx",
+ "Value": "testVPC",
+ "Key": "Name"
+ }
+ ]
+}
+
+```
+
+このように表示されれば無事VPCにタグ付けがされています。
+マネジメントコンソールでもtestVPCが確認できますよ!
+
+
+
+##2.IGWを作成する
+
+###[create-internet-gateway]コマンド
+次にIGWを作成していきます。
+
+```bash:サンプル
+aws ec2 create-internet-gateway
+
+```
+このコマンドは特にオプションは必要ないのでそのまま実行してください。
+強いて言えばregionの指定くらいです。
+
+```json:表示
+{
+ "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 |
+
+```bash:サンプル
+aws ec2 attach-internet-gateway --internet-gateway-id igw-XXXXXXXX --vpc-id vpc-xxxxxxxx
+
+```
+
+上記サンプルを自分のメモに沿って修正し実行してください。
+特に何も表示されなければ大丈夫です。
+
+---
+
+どうでしょうか?
+VPCの作成からIGWのアタッチまでをCLIで実行することができました。
+フィルターやjqを使って取得したidを変数化しておけばこれらの操作を自動化することもできますよ♪
+
+次回はサブネットの作成なんかを見ていきたいと思います!