はじめに
AWSの認定試験を受験するにあたって、各AWSのサービスを幅広く理解する必要があったためサービスごとに抑えるべきポイント等をまとめてみました。
今回はVPC、Route53についてです。
※情報は2019年12月31日時点のものになります。ご了承ください。
ちなみにAWS認定試験での勉強方法についてはこちらの記事で紹介しています。
VPC
Amazon VPC(Virtual Private Cloud)とは、AWS上での仮想ネットワーク環境になります。
以下が簡単な特徴になります。
- 料金は発生しない
- リージョンごとに作成可能
- 以下の制限がある
- リージョンあたりのVPCは5まで(制限緩和で100まで引き上げ可能)
- VPCあたりのサブネットの数は200まで
- VPC 当たりの IPv4 CIDR ブロックは5まで(最大50まで引き上げ可能)
- VPC 当たりの IPv6 CIDR ブロックは1まで
- IPアドレスの範囲を/16 〜 /28 のブロックサイズでCIDRブロック形式で指定する必要がある
(例:10.0.0.0/16)
- 10.0.0.0 〜 10.255.255.255
- 172.16.0.0 〜 172.31.255.255
- 192.168.0.0 〜 192.168.255.255
サブネットについての参考
- VPCのIPアドレスの範囲でサブネットを作成する
- サブネットで使用できないホストアドレス
- .0:ネットワークアドレス
- .1:VPCの仮想ルーター
- .2:DNSサービス
- .3:AWSが予約済み(将来何かに使われる?)
- .255:ブロードキャストアドレス
- サブネットはアベイラリティーゾーン単位で作成する
■インターネットゲートウェイ
VPC内のインスタンスとインターネット通信を可能にするもの
■ルートテーブル
VPC内でルーティング設定を行うもの
インターネットゲートウェイへのルーティング設定がされたルートテーブルをアタッチされたサブネットをパブリックサブネット(インターネット通信できるから)
そうでないサブネットをプライベートサブネットという(インターネット通信できないから)
■サブネット内のインスタンスがインターネットに接続するためのステップ
- サブネットAを作成する
- 作成したサブネットAでインスタンスを起動する
- ルートテーブルBを作成する (転送先をインターネットゲートウェイに、宛先を0.0.0.0/0 にする。この設定だとすべてのIPアドレスの宛先がインターネットゲートウェイに転送される)
- サブネットAとルートテーブルBを関連付けする。つまり、インターネットゲートウェイをアタッチする
■NACL(Network ACL)
サブネットのインバウンド、アウトバウンドの通信をコントロールをするもの
(セキュリティグループのサブネット版みたいなもの)
- インバウンドもしくはアウトバウンドの許可、禁止を設定できる
- デフォルトでは、インバウンドもアウトバウンドもすべて許可された状態
■NATゲートウェイ
プライベートサブネット内のインスタンスがインターネットにアクセスしたい場合、NATゲートウェイをプライベートサブネットに配置してNATゲートウェイ経由でインターネットへアクセスを行う。
具体的には、プライベートサブネットに関連づけられているルートテーブルに「転送先をNATゲートウェイに、宛先を0.0.0.0/0 」などとする。この設定だとすべてのIPアドレスの宛先がNATゲートウェイに転送されNATゲートウェイがその先のルーティングを引き受ける。
※NATゲートウェイはアベイラリティーゾーンごとに作成
■【頻出】VPCのプライベートサブネット内のインスタンスがインターネットへのアクセスを有効にする手順
10.0.1.0/24がパブリックサブネット、10.0.2.0/24がプライベートサブネットとする
- VPCにインターネットゲートウェイをアタッチする
- パブリックサブネットのルートテーブルにおいて、通信をインターネットゲートウェイへ接続するように設定する
- パブリックサブネットNATゲートウェイ(またはNATインスタンス)を配置する
- NATのインスタンスに、グローバルに一意なIPアドレス(IPv4アドレス、IPv6アドレス、Elastic IPアドレスのいずれか)が割り当てる
- プライベートサブネットのルートテーブルにおいて「宛先を0.0.0.0/0(すべてのIP)、転送先をNATゲートウェイ」に設定する
- ネットワークアクセスコントロール(NACL)とインスタンスのセキュリティグループルールをインスタンス間の通信を許可するように設定する
■VPCエンドポイント
プライベートサブネット内のインスタンスがAWSのAPI(S3など)にアクセスするときにはVPCエンドポイントを利用する。したがって、同一リージョンならばインターネットを経由せずに通信が完結する。
※VPCエンドポイントを追加するとルートテーブルにAWS APIへのルーティング設定が自動で追加される
VPCエンドポイントには2つの種類があり、すべてのAWSサービスをサポートしているわけではない
- Gateway型 S3、DynamoDB
- Interface型 EC2、SNS、Cloud Watchなど
■VPCピアリング
異なるVPC間で通信する仕組み
- 異なるアカウントのVPCでも通信できる
- 異なるリージョンのVPCでも通信できる
■VPC Flow Logs
VPC内の通信ログをCloudWatchに流す仕組み
■Direct Connect
オンプレ環境とAWSを接続する専用回線
仮想インターフェースと一緒に用いることが多い
- パブリック仮想インターフェース:S3などのパブリックサービスにアクセス
- プライベート仮想インターフェース:VPCへのアクセス
■VPNコネクション
オンプレ環境とAWSを接続する手法の一つ。
ハードウェアVPNを使われることが多いがDirect Connctほどは安定しない
■その他 覚えておくといいこと
- IPv4とIPv6が混在する場合はVPCのデュアルスタックモードを用いる
- プライベートサブネット内のインスタンスからインターネットへのアウトバウンド接続を行う場合、NAT インスタンス上の送信元/送信先チェック属性を無効にする必要性がある
- NATゲートウェイはIPv4のみ
- プライベートサブネットはNATに対してIPv4トラフィックルーティングしていたが、IPv6はルーティングできないので別途Egress-Only インターネットゲートウェイを作って、そこに対してルーティングをする必要がある
Route 53
グローバルに配置されているAWSのDNSサービスになります。
■料金
以下で料金が発生します。
- ホストゾーンの管理:Route 53 で管理した各ホストゾーンに対する月額料金が発生
- DNS クエリへの応答:DNS クエリに対する Amazon Route 53 サービスからの応答に対して料金が発生
ただし、クエリの対象がエイリアスAレコードかつ以下の場合は無料
- Elastic Load Balancing インスタンス
- CloudFront ディストリビューション
- AWS Elastic Beanstalk 環境
- API Gateway
- VPC エンドポイント
- Amazon S3 ウェブサイトバケットにマッピング
- ドメイン名の管理:Route 53 経由で登録された各ドメイン名または Route 53 に転送された各ドメイン名に対して年間料金が発生
■サポートしているDNSレコードタイプ
- A:アドレスレコード ドメインをIPアドレスにする
inu-is-kawaii.jp. IN A 192.168.0.1
www.neko-ha-kami.jp. IN A 192.168.0.1
AAAA:IPv6アドレスコード
CNAME:正規名レコード
ドメインを異なるドメインにする
inu-is-kawaii.jp.jp. IN A 192.168.0.1
www.neko-ha-kami.jp. IN CNAME neko.jp.
MX:メール交換レコード
NS:ネームサーバーレコード
PTR:ポインターレコード
SOA:管理情報の始点レコード
SPF:センダーポリシーフレームワーク
SRV:サービスロケーター
TXT:テキストレコード
エイリアスレコード
■ルーティングポリシー
Route 53ではトラフィックルーティングのルーティングポリシーを定めることができます。
シンプルルーティングポリシー
通常のDNSサーバーと同じ挙動加重ルーティングポリシー
ルーティングする宛先の重み付けをすることができるレイテンシールーティングポリシー
レイテンシーが最も低いリージョンのリソースにルーティングする
フェイルオーバールーティングポリシー
正常なリソースに対してトラフィックをルーティングする複数値回答ルーティングポリシー
DNS クエリに対する応答として複数の値 (ウェブサーバーの IP アドレスなど) を返すように設定できる。
また、各リソースが正常であるかどうかも確認し、その結果を返却することもできる
- 地理的近接性ルーティングポリシー
トラフィックを最も近いアベイラリティーゾーンのリソースにルーティングする(トラフィックフローのみ)
- 位置情報ルーティングポリシー ユーザーの位置に基づいてトラフィックをルーティングする
■その他 覚えておくといいこと
- Route53は、ELBやCloudFrontに対して、 ZoneApexレコードをAレコード で指定することができる