※以下は個人的なメモです。最新の正確な情報はAWSの公式ドキュメントを参照してください。
Virtual Private Cloud (VPC) は、AWS アカウント専用の仮想ネットワーク。以下のコンポンーネントがある。
- VPCに使うアドレスレンジ
- VPCに設定するアドレスは既に使っている、もしくは使うであろうネットワークアドレスを避けるのがポイント
- 推奨: 172.31.0.0/16 RFC1918レンジ、/16 (65,534アドレス)
- 作成後変更はできないので注意が必要
- VPCあたりのサブネット作成上限数はデフォルト200個
- CIDRに/16 を設定した場合の各サブネット数と使えるIPアドレス数
サブネット
ホストアドレス |
用途 |
.0 |
ネットワークアドレス |
.1 |
VPCルータ |
.2 |
Amazonが提供するDNSサービス |
.3 |
AWSで予約 |
.255 |
ブロードキャストアドレス (VPCではブロードキャストはサポー トされていない) |
アベイラビリティゾーン(AZ)
- AZは1つ以上のデータセンターで構成される
- 1リージョン内にAZが複数存在
- AZはお互いに地理的・電源的・ネットワーク的に分離
- 2つのAZを利用した冗長構成を容易に構築
- リージョン内のAZ間は高速専用線で接続(リージョン間はインターネット経由)
ネットワークACL と セキュリティグループ
ネットワークACL |
セキュリティグループ |
サブネットレベルで効果 |
サーバレベルで効果 |
Allow/DenyをIN・OUTで指定可能 (ブラックリスト型) |
AllowのみをIN・OUTで指定可能 (ホワイトリスト型) |
ステートレスなので、戻りのトラフィックも明示的に許可設定する |
ステートフルなので、戻りのトラフィックを考慮しなくてよい |
番号の順序通りに適用 |
全てのルールを適用 |
サブネット内のすべてのインスタンスがACLの管理下に入る |
インスタンス管理者がセキュリティグループを適用すればその管理下になる |
- VPC内と外のどちらにリソースや エンドポイントが存在するかサービスによって異なる
- VPCからAWSクラウドへのリソースはIGW経由の通信となる
- プライベートサブネットからは→NATゲートウェイ
- S3であればVPCエンドポイントの利用も可能
- パブリックサブネットからは→自動割当てまたはEIPのパブリックIPから直接アクセス
- S3へのアクセスはVPCエンドポイント利用 可能
- 2つのVPC間でトラフィックのルーティングが可能
- 同一のAWSアカウントはもちろん、異なるAWSアカウント間(クロス アカウント)のVPC間をピア接続することも可能
- 単一障害点や帯域幅のボトルネックは存在しない
- 以下の点に注意
- MTU (VPC Peering 1,500byte)
- 直接PeeringしているVPCとのみ
- 通信可能(2HOPは不可)
- リージョンは跨げない
- Amazonが提供するDNSサービス
- 以下の2つのアドレスが利用可能
- VPCのネットワーク範囲(CIDR)のアドレスに+2したIP(10.0.0.0/16の場合は10.0.0.2)
- 169.254.169.253
- VPC内のEC2インスタンスからのみ参照可能 (VPNや専用線経由では参照できない)
- Enable DNS resolution
- 基本はyesとする
- NoにするとVPCのDNS機能が無効となる
- Enable DNS hostname
- TrueにするとDNS名が割り当てられる
- “Enable DNS resolution”をtrueにしないと有効にならない
機能 |
RFC |
Pre-shared キーを使用して、IKE セキュリティ接続を 確立する |
RFC2409 |
トンネルを論理インターフェイスに結合する (経路ベースのVPN) |
- |
トンネルモードで、IPsec セキュリティ接続を確立する |
RFC4301 |
暗号化前に IP パケットをフラグメント化する |
RFC4459 |
AES 128 ビット暗号化または AES 256 ビットの暗号 化機能を使用する |
RFC3602 |
(オプション)BGP ピアを確立する |
RFC4271 |
SHA-1 または SHA-256 のハッシュ機能を使用する |
RFC2404 |
VPN トンネルに入る TCP パケットの最大セグメントサ イズを調整する |
RFC4459 |
Diffie-Hellman Perfect Forward Secrecy を使用しま す。以下のグループがサポートされます。 フェーズ 1 グループ: 2,14~18,22,23,24 フェーズ 2 グループ: 1,2,5,14~18,22,23,24 |
RFC2409 |
パケットの "フラグメント化しない" フラグをリセット する |
RFC791 |
IPsec Dead Peer Detection の利用 |
RFC3706 |
専用線(Direct Connect)接続構成
- AWSとお客様設備を専用線で ネットワーク接続
- 相互接続ポイントへ専用線を敷設 し、AWSのルータと相互接続
- 日本の相互接続ポイントは以下の2つ
- 東京(Equinix TY2)
- 大阪(Equinix OS1)
- ルーティングはBGPのみ
- 接続先は以下の2つ
- VPNよりも一貫性がある
- 帯域のパフォーマンスも向上
- ネットワークコストも削減
VPCからオンプレミスへのルート設定
- VPCからオンプレミスへの通信をするためには各サブネットのルートテーブルの設定が必要
- 宛先: オンプレミスのIP
- ターゲット:VGWのID
- ルートテーブルで”ルート伝達 (プロパゲート)”を有効にするとVGWで受信したルート情報をルートテーブルに自動的に伝達(頻繁にオンプレのルートが更新 される場合はこちらを利用)
|
インターネットVPN |
専用線 |
コスト |
安価なベストエフォート回線も利用可能 |
キャリアの専用線サービスの契約が必要 |
リードタイム |
即時~ |
数週間~ |
帯域 |
暗号化のオーバーヘッドにより制限あり |
~10Gbps |
品質 |
インターネットベースのため経路上のネットワーク状態の影響を受ける |
キャリアにより高い品質が保証されている |
障害時の切り分け |
インターネットベースのため自社で保持している範囲以外での切り分けが難しい |
エンドツーエンドでどの経路を利用しているか把握できているため比較的容易 |
VPC Flow Logs
- ネットワークトラフィックをキャプチャ し、CloudWatch LogsへPublishする機能
- ネットワークインタフェースを送信元/ 送信先とするトラフィックが対象
- セキュリティグループとネットワークACL のルールでaccepted/rejectされた トラフィックログを取得
- キャプチャウインドウと言われる時間枠 (約10分間)で収集、プロセッシング、 保存
- RDS, Redshift、ElasticCache WorkSpacesのネットワークインタフェーストラフィックも取得可能
- 追加料金はなし(CloudWatch Logsの標準料金は課金)
- Flow Log レコードの項目
フィールド |
説明 |
version |
VPC flow logsのバージョン |
account-id |
flow logを取得したAWSアカウント |
interface-id |
ログストリームが適用されているネットワークインタフェースのID |
srcaddr |
送信元アドレス(※) |
dsraddr |
送信先アドレス(※) |
srcport |
送信元ポート |
dsrport |
送信先ポート |
protocol |
IANAで定義されたプロトコル番号 |
packets |
キャプチャウインドウの中で取得したパケット数 |
bytes |
キャプチャウインドウの中で取得したバイト数 |
start |
キャプチャウインドウ開始時のUNIX時間 |
end |
キャプチャウインドウ終了時のUNIX時間 |
action |
トラフィックのアクション(ACCEPT/REJECT) |
log-status |
ログステータス(OK/NODATA/SKIPDATA) |
- S3、CloudFront、WAF、Route53、VPC、ALBがIPv6対応
|
IPv4 |
IPv6 |
アドレス体系 |
32bit |
128bit |
VPCでの利用 |
デフォルトで適用 |
オプトイン(自動適用ではなく任意) |
CIDRブロックサイズ |
16~28bitで選択 自分で任意のアドレスを設定可能 |
56bit固定 かつ自動で56bit CIDRが アサインされる(選べない) |
サブネットブロックサイズ |
16~28bitで選択 |
64bit固定 |
パブリックIP/ プライベートIP |
それぞれ存在 (NATを介してパブリックIPをプライマリプライベートIPにMAP) |
パブリックのみ (プライベートにするにはEgress-only Internet Gatewayを利用) |
インスタンスタイプ |
全てのインスタンスタイプ |
M3、G2を除く全ての現行世代の インスタンスタイプでサポート |
アマゾン提供DNS |
プライベートIP、Elastic IPに対する それぞれのDNSホスト名を受信 |
提供されるDNSホスト名はなし |
閉域接続 |
VPN、DirectConnect |
DirectConnectのみ |
代表的なVPCのリミット
リソース |
数 |
リージョン当たりの VPC の数 |
5 |
VPC 当たりのサブネットの数 |
200 |
AWS アカウント当たり、1 リージョン内の Elastic IP 数 |
5 |
ルートテーブル当たりのルートの数 |
100 |
VPCあたりのセキュリティグループの数 |
500 |
セキュリティグループあたりのルール数(In/Out) |
50 |
ネットワークインタフェースあたりのセキュリティグループ |
5 |
VPC当たりのアクティブなVPCピア接続 |
125 |
VPCあたり(仮想プライベートゲートウェイ)のVPN接続数 |
10 |
用語
- CIDR(Classless Inter-Domain Routing)
- CIDR表記