[セッションレポート]Amazon VPCの基本とベストプラクティス #reinvent
この記事は AWS re:Invent 2014、PFC304-JT - Effective Interprocess Communications in the Cloud: The Pros and Cons of Micro Services Architectures - Japanese Trackのレポートです。
スピーカーはAWSのBrett Hollman。
レポート
このセッションではVPCの基本とベストプラクティスを話したい。
VPCとは?AWS上に作る仮想的なプライベートネットワーク。 仮想的なデータセンタをAWSに作るということ。
VPCを何のために使うか?例えばパブリックなWebアプリケーション。 プライベートなアプリケーションなら、VPCとオンプレをVPNにつなぐ。 ハイブリッドネットワークなら、オンプレミスとVPCをDirect Connectで繋ぐ。 災害対策としてオンプレにある仕組みをVPC上に同一で構成する。
VPCであれば、オンプレのようにネットワーク配線に悩まされることもありません。
VPCとは?Virtual Private Cloud。 可用性を高めるために複数のAZをVPCの中に含めることができる。 Default VPCはAWSが提供する最初のVPC。
IPサブネットはVPCのIPレンジの中に作ることができ、AZの中に配置する。 IPサブネットは細かく分断した設計をすることができる。 またアクセスコントロールをIPサブネットレベルで行うこともできる。 Default VPCには最初からサブネットが作られている。
Internet Gatewayはサブネットからインターネットに出る通路となる。 Virtual Private GatewayをVPNを接続するための経路。 Customer gatewayは物理的なネットワーク装置、オンプレ側に配置されるもの。
VPCの中のIPサブネットはVirtual Routerによって通信される。 DHCPサービスは.1のIPアドレスで提供される。
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とインスタンス間で制御される。
ベストプラクティス。
VPCに対するコントロール。IAMでVPCアドミングループの作成。 ポリシーで、特定のタグについてのみ操作可能など、様々なコントロールが可能。
VPCどういったネットワーク構成を行うべきか? 拡張性を考えてIPサブネット設計をすべき。 あとで変更をするのは難しい。 既存のIPサブネットが大量にあるような企業の場合、オーバーラップしないように気をつけなくてはならない。
サブネットプランニング。 マルチAZ構成をサポートしたほうがいい。 オンプレミスとの親和性を考慮すべき。 サブネットのアクセスコントロールはNACLで展開することができる。 VPC Peeringを使う場合は相互のサブネットで通信が可能なIP体系である必要がある。
NACLとセキュリティグループはどちらがいいのか? セキュリティグループのほうが親しみやすいかもしれない。 どういったときにNACLが良いのか? IPサブネットに対してベースラインのセキュリティ設定を与えるとき。 例えば通したくない、TFTPやNetBIOSなどは必ず塞ぐとか。
すべてのサブネットはルートテーブルが設定されている必要がある。 主要なルートテーブルはそのままシンプルな、基本的なルートだけをもたせておけばいい。
Enhanced network。VPCだけをサポートしている。
ENIを有効活用して欲しい。eth0以外は切り離しができる。同じサブネットでは再利用ができる。 例えばデュアルホーム化したい場合、eth1を別のネットワークに配置するとか。 Floating interface patternではENIを使いまわす。 少ないタウンタイムで別のインスタンスにIPを引き継げる。
すべてにタグを付けよう。タグによって制御が分けられる。 課金データもタグで分けられる。 タグによって権限を分けることもできる。
IAMによるVPCに対するアクセスコントロール。 例えばEC2を本番環境に対してのみ操作が可能だとか。
VPCからインターネットからどうやってアクセスするのか?
パブリックルートとパブリックIPアドレスが必要。
あるいはNATを使う。
VPCをあなたの会社につなげるためには?VPNを使う。VPNは並列的に接続が可能。 BGP対応のデバイスを使い、2つのトンネルを冗長的に扱える。 スタティックルートだと冗長化ができる自前でヘルスチェックをしなくてはならない。
冗長化されたVPNの構成例。
どんな場合にVPCが使えるのか?なんでも。 更に厳密にネットワークを分離したい場合は、アカウントも分けてしまう場合もあるだろう。
複数のVPCを接続する場合には?VPC peering。冗長性が高いソリューション。
VPCとの接続をアップグレードするのは?DirectConnect。
マーケットプレイスの活用。様々なネットワークアプライアンスが提供されている。 1クリックでWAFやIDSが導入できる。とても便利。
まとめ
VPCの基本が一通り抑えられたセッションだと思いました。