[セッションレポート]Amazon VPCの基本とベストプラクティス #reinvent

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

この記事は AWS re:Invent 2014、PFC304-JT - Effective Interprocess Communications in the Cloud: The Pros and Cons of Micro Services Architectures - Japanese Trackのレポートです。

DSC_0011

スピーカーはAWSのBrett Hollman。

DSC_0013

レポート

このセッションではVPCの基本とベストプラクティスを話したい。

VPCとは?AWS上に作る仮想的なプライベートネットワーク。
仮想的なデータセンタをAWSに作るということ。

VPCを何のために使うか?例えばパブリックなWebアプリケーション。
プライベートなアプリケーションなら、VPCとオンプレをVPNにつなぐ。
ハイブリッドネットワークなら、オンプレミスとVPCをDirect Connectで繋ぐ。
災害対策としてオンプレにある仕組みをVPC上に同一で構成する。

DSC_0014

VPCであれば、オンプレのようにネットワーク配線に悩まされることもありません。

DSC_0015

VPCとは?Virtual Private Cloud。
可用性を高めるために複数のAZをVPCの中に含めることができる。
Default VPCはAWSが提供する最初のVPC。

IPサブネットはVPCのIPレンジの中に作ることができ、AZの中に配置する。
IPサブネットは細かく分断した設計をすることができる。
またアクセスコントロールをIPサブネットレベルで行うこともできる。
Default VPCには最初からサブネットが作られている。

DSC_0016

Internet Gatewayはサブネットからインターネットに出る通路となる。
Virtual Private GatewayをVPNを接続するための経路。
Customer gatewayは物理的なネットワーク装置、オンプレ側に配置されるもの。

VPCの中のIPサブネットはVirtual Routerによって通信される。
DHCPサービスは.1のIPアドレスで提供される。

DSC_0019

Route Tableは通信経路を制御する。それぞれのIPサブネットには1つのRouteが必要。

VPN connection。IPSecトンネルで構成され、VPGとCGWを繋ぐもの。

Elastic IPは静的なIPアドレス。
ENIはEC2にアタッチされる仮想ネットワークインターフェース。
NCAL。サブネットレベルでアクセスをコントロールする。
ステートレスで、インバウンドとアウトバウンドのルールを個別に持っている。

Security Groupはネットワークではなくインスタンスに対して設定される。
一つのEC2には5つのセキュリティグループが定義される。
セキュリティグループはステートフル。

VPCのセキュリティコントロールについて。
NACLはRoute TableとSubnetの間で、バーチャルルータが制御する。
セキュリティグループはSubnetとインスタンス間で制御される。

DSC_0021

ベストプラクティス。

VPCに対するコントロール。IAMでVPCアドミングループの作成。
ポリシーで、特定のタグについてのみ操作可能など、様々なコントロールが可能。

DSC_0024

VPCどういったネットワーク構成を行うべきか?
拡張性を考えてIPサブネット設計をすべき。
あとで変更をするのは難しい。
既存のIPサブネットが大量にあるような企業の場合、オーバーラップしないように気をつけなくてはならない。

DSC_0025

サブネットプランニング。
マルチAZ構成をサポートしたほうがいい。
オンプレミスとの親和性を考慮すべき。
サブネットのアクセスコントロールはNACLで展開することができる。
VPC Peeringを使う場合は相互のサブネットで通信が可能なIP体系である必要がある。

DSC_0026

NACLとセキュリティグループはどちらがいいのか?
セキュリティグループのほうが親しみやすいかもしれない。
どういったときにNACLが良いのか?
IPサブネットに対してベースラインのセキュリティ設定を与えるとき。
例えば通したくない、TFTPやNetBIOSなどは必ず塞ぐとか。

DSC_0027

すべてのサブネットはルートテーブルが設定されている必要がある。
主要なルートテーブルはそのままシンプルな、基本的なルートだけをもたせておけばいい。

DSC_0028

Enhanced network。VPCだけをサポートしている。

DSC_0029

ENIを有効活用して欲しい。eth0以外は切り離しができる。同じサブネットでは再利用ができる。
例えばデュアルホーム化したい場合、eth1を別のネットワークに配置するとか。
Floating interface patternではENIを使いまわす。
少ないタウンタイムで別のインスタンスにIPを引き継げる。

DSC_0030

すべてにタグを付けよう。タグによって制御が分けられる。
課金データもタグで分けられる。
タグによって権限を分けることもできる。

DSC_0032

IAMによるVPCに対するアクセスコントロール。
例えばEC2を本番環境に対してのみ操作が可能だとか。

DSC_0033

VPCからインターネットからどうやってアクセスするのか?

DSC_0035

パブリックルートとパブリックIPアドレスが必要。

DSC_0036

あるいはNATを使う。

DSC_0037

VPCをあなたの会社につなげるためには?VPNを使う。VPNは並列的に接続が可能。
BGP対応のデバイスを使い、2つのトンネルを冗長的に扱える。
スタティックルートだと冗長化ができる自前でヘルスチェックをしなくてはならない。

DSC_0038

冗長化されたVPNの構成例。

DSC_0039

どんな場合にVPCが使えるのか?なんでも。
更に厳密にネットワークを分離したい場合は、アカウントも分けてしまう場合もあるだろう。

DSC_0040

複数のVPCを接続する場合には?VPC peering。冗長性が高いソリューション。

DSC_0041

VPCとの接続をアップグレードするのは?DirectConnect。

DSC_0042

マーケットプレイスの活用。様々なネットワークアプライアンスが提供されている。
1クリックでWAFやIDSが導入できる。とても便利。

DSC_0044

まとめ

VPCの基本が一通り抑えられたセッションだと思いました。