AWS塾 NW編の第1回目は、VPCを構築していきたいと思います。
VPCは仮想NWサービスのため、AWSを使う上で避けては通れないサービスです。
ハンズオン形式で解説していきますので、この機会にぜひ抑えておきましょう。
公式ドキュメント:https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html
では、はりきっていきましょう!
ハンズオンで作る環境がこちら。
ハンズオンでは、以下の環境を作成していきます。
まずは、設計からしていく。
「どんな設定で構築していくのか?」を決めるために、まずは簡単な設計をしていきましょう。
設定の解説もしていくので気軽に読んでもらえると。
本記事で採用する設定値
設定項目 | 設定値 |
---|---|
IPv4 CIDR | 10.0.0.0/8 |
テナンシー | デフォルト |
DHCP設定 | デフォルトのDHCPオプションセット |
enableDnsHostnames | 有効化 |
enableDnsSupport | 有効化 |
Network Address Usage(NAU) メトリクス | 有効化 |
それぞれの設定項目について、解説していきます。
IPv4 CIDR
VPCに割り当てるIPアドレスをCIDRで設定します。
AWSが推奨しているCIDRブロックがあるため、この中から設定していくことが無難です。
10.0.0.0 – 10.255.255.255(10/8 プレフィックス) |
172.16.0.0 – 172.31.255.255(172.16/12 プレフィックス) |
192.168.0.0 – 192.168.255.255(192.168/16 プレフィックス) |
「じゃあ、適当に決めればいいか。」
となりそうですが、残念ながらそうとはならず。
いくつか考える必要があります。
No | 考慮事項 | 理由 |
---|---|---|
1 | VPCピアリングを利用する予定があるか? | ピアリング先と重複するCIDRは許可されない。 |
2 | Direct Connectを利用する予定があるか? | Direct Connectゲートウェイ経由で複数のVPCと接続する場合、重複するCIDRが許可されてない。 |
3 | ELBを利用する予定があるか? | ELB自身がスケールアウトするときに、サブネットからIPを利用する仕様になっている。AWS推奨としては、「/27ビットマスク」以上に設定し、空きのIPを8つ用意しておく。 |
今回の要件はこちらです。
- Direct Connectは利用しない。
- VPCピアリングを使う可能性あり。
- 1つのVPCに複数の環境(本番や開発)やシステムを乗せることはしない。
- 作成するであろうサーバ郡は基本的な構成(WEB/AP/DB/ELBぐらいの構成)を想定。
そのため、大幅に広く値を取ることはせずに「10.0.0.0/24」としたいと思います。
※今後登場するサブネットCIDRでは、5個のIPがAWS側で予約されており使うことができません。そのため、今回使えるIPアドレスの数は「251個(=2の8乗-5)」となります。
テナンシー
テナンシーとは「EC2インスタンスを他のAWSアカウントと共有しているハードウェアで実行するか、自分専用のハードウェアで実行するか。」という設定になります。
EC2を構築する際にも同じ設定があるのですが、VPCで設定するテナンシーは以下の通りです。
設定値 | 解説 |
---|---|
デフォルト | EC2インスタンスのテナンシー属性を利用するかどうか。 |
専有 | EC2インスタンスのテナンシー属性に限らず「専有」で実行する。 |
「なんで専用のハードウェアで実行したいの?」
と思うかもしれませんが、実際の業務では「他のAWSアカウントと同居したくない」というコンプライアンス要件があったりします。
今回はコンプライアンス要件などもないため、「デフォルト」を選択します。
DHCP設定(DHCPオプションセット)
DHCPオプションセットでは、EC2インスタンスが参照するNTPサーバやDNSサーバをカスタマイズすることができます。
デフォルトのDHCPオプションセットでは、
- DNSサーバは「AmazonProvidedDNS」を向いている。
- デフォルトではNTPサーバの設定がされていない。ただ、最新のAmazon Linux2ではTimeSync Serviceが使われている。
要は「AWSが用意しているNTPサーバ/DNSサーバを参照するよ」ということです。
今回はカスタマイズ要件はないため、デフォルトのDHCPオプションセットを選択します。
DNS設定
VPC内のDNSサポートに関する設定です。
以下の2種類の設定があります。
設定値 | 解説 |
---|---|
enableDnsHostnames(DNSホスト名を有効化) | VPCがパブリックIPを持つインスタンスへパブリックDNSホスト名の割り当てをサポートするかどうかの設定。 |
enableDnsSupport(DNS解決を有効化) | VPCがAmazon提供のDNSサーバ(AmazonProvidedDNS)を介したDNS解決策をサポートするかどうかの設定。 |
今回、VPCが割り当てるパブリックIPやDNSホスト名を利用する予定はありません。
しかし、公式ドキュメントの「ルールと考慮事項」に以下の記載があります。
Amazon Route 53 のプライベートホストゾーンで定義されたカスタム DNS ドメイン名を使用する場合や、インターフェイス VPC エンドポイント (AWS PrivateLink) でプライベート DNS を使用する場合は、
enableDnsHostnames
属性とenableDnsSupport
属性の両方をtrue
に設定する必要があります。
この中の「Route53のプライベートホストゾーン」は利用する可能性があります。
そのため、両方の属性を「true」に設定します。
Network Address Usage(NAU) メトリクスの設定
NAUと呼ばれるこのメトリクスでは「ネットワークアドレス使用状況」を確認することができます。
NAUのクォータに引っかかると、IPアドレスを利用するサービス(例:EC2インスタンスなど)を新しく起動できなくなる可能性がでてきます。
(新しいIPアドレスを付与できないため、EC2インスタンスなどを起動することができません。)
無料で利用することができるため、有効化しておきます。
なお、このメトリクスは24時間毎のレポートになるためリアルタイムではないことに注意が必要です。
実際に構築していきましょう!
それでは、上で設計した設定を元に構築していきましょう。
以上で、構築完了です。
コメント