週末なので安いチリ産のワインを飲みながら書いています。吉田です。
昨日に引き続きVPCの構築です。
[AWSCLI]VPC周りの簡易コマンドリファレンスその1
[AWSCLI]VPC周りの簡易コマンドリファレンスその3
公式サイト
http://docs.aws.amazon.com/cli/latest/index.html
基本的にサンプルとかは公式から持ってきています。
続きです。
前回の投稿では「create-vpc」コマンドを使いVPCを作成し、「describe」で情報の確認。
「modify」で情報の修正を行いました。
今回はサブネットの作成などを見ていきましょう。
aws ec2 create-subnet
オプション | 意味 | 何を書けばいいか |
---|---|---|
--vpc-id | VPCを指定する | vpc-XXXXXXXX |
--cidr-block | サブネットのCIDR | 10.0.0.0/24 |
--availability-zone | サブネットを所属させるAZ | ap-northeast-1aなど |
aws ec2 create-subnet --vpc-id vpc-XXXXXXXX --cidr-block 10.0.0.0/24 --availability-zone ap-northeast-1a
実例があっても少しイメージしにくいですよね?
そんな時はマネジメントコンソールでの設定を思い出してみましょう。
いつもと同じことをしているだけです。
AZ書かないとマネジメントコンソールの時みたいによしなにしてくれます。
###aws ec2 describe-subnets
VPCの時同様ですね。
つまり今回はサブネットについての描写をさせます。
何を確認したいかというと「サブネットID」こいつは後で使います。
--subnet-ids
をつかってサブネットを指定して情報を確認することももちろん可能です。
しかし、今回はそのIDを取得したいので別のオプションを使用します。
前回のラストで便利と書いた「--filters」オプションです。
aws ec2 describe-subnets --filters "Name=cidrBlock,Values=10.0.0.0/24"
これでしていしたCIDRに当てはまるサブネットの情報を取り出すことができます。
標準出力の内容は前回の最後に書いたように変数に格納できるので汎用性を考えて繰り返し使用する方はぜひ「jq」を使ってフィルタリングしてみてください。
今回は出力されたサブネットIDをメモしておきます。
###awsec2 associate-route-table
associate[他・動]~を関連付ける
まあ、そこにあるルートテーブルをサブネットに紐付けるって意味ですね。
あれ?ルートテーブル作ってねぇよ!?って思うかもしれませんが、マネジメントコンソールを思い出してみてください。サブネット作るとデフォで1個ついてきてます。そいつを使えば良いのです。
オプション | 意味 | 何を書けばいいか |
---|---|---|
--route-table-id | ルートテーブルID | rtb-xxxxxxxx |
--subnet-id | サブネットのID | subnet-xxxxxxxx |
aws ec2 associate-route-table --route-table-id rtb-xxxxxxxx --subnet-id subnet-xxxxxxxx
このようにアタッチ予定のルートテーブルとアタッチ先のサブネットをオプションで指定してあげれば紐付けることができます。
ルートテーブルのIDなんてわからないって?
そうですね。確認していないものを先出ししました。
どうすれば良いと思いますか?
・・・
・・・
・・・
そうです、いつも通り確認なので「describe」です!
###aws ec2 describe-route-tables
このコマンドをつかってルートテーブルのIDを確認します。
こいつはオプションで「--route-table-ids」が使えるのでわかっているルートテーブルに関しての情報取得も可能です。
わかりやすく取るなら例によって「jq」です。
今回は表示されたJSONから目視でIDを控えることとします。
###サブネット作成完了
ここまでで、サブネットの作成することができました。
サブネットは「プライベート」と「パブリック」なものを作成することができますね。
パブリックなサブネットとは、要するに外部との通信ができる「IGW」に対して通信が向いているものを指します。
マネジメントコンソールを思い出すとわかりやすいですが、サブネットだけ作成すると当初のルートテーブルはIGWへ通信が向いていません、
つまり、ここまでの作業で「プライベートサブネット」は作成できたことになります。
次回はこのサブネットを「パブリックサブネット」として利用するための作業を見ていきましょう。