AWS再入門 Amazon VPC編
はじめに
ども、大瀧です。当エントリはDevelopers.IOでの弊社AWSチームによる『AWS サービス別 再入門アドベントカレンダー 2015』2日目のエントリです。昨日1日目は八幡の『Amazon S3』でした。 このアドベントカレンダーの企画は、普段AWSサービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。 本日2日目のテーマは『Amazon VPC』です。
目次
Amazon VPCとは
クラウドに仮想ネットワークを構築
Amazon VPC(Virtual Private Cloud)は、その名の通りユーザー専用のプライベートなクラウド環境を提供するサービスです。ここで言う"ユーザー専用"というのはEC2インスタンス同士を接続する仮想ネットワークのことであり、仮想マシン自体は特別なオプション *1を指定しない限り、他のユーザーと同じ物理ホストを共有する構成になります。
AWSの様々なサービスを評価する際には、VPCに対応しているかを確認することをおすすめします。VPCに対応するサービスはプライベートネットワーク内にノードが配置できるため外部ネットワークとのセキュリティ設計がしやすい一方、後述のアドレス設計時にノードが使用するアドレス数のカウント・確保をしておく必要があります。一方VPC非対応のサービスは、グローバルIPをエンドポイントとしてインターネット経由で利用するため、VPC内のノードとの経路やセキュリティ設計を検討する必要があります。
手っ取り早くVPCを試してみたい、という場合はミニマム構成のチュートリアルを紹介する記事がオススメです。
↑ 上記記事はAWS Management Consoleのスクリーンショットが古い点にご注意ください
自在なネットワーク設計
VPC内は自由にIPv4ネットワークを構築することができ、上述のスライドのようにオンプレミスと同様のネットワークが設計できます。AWSが提供するコンポーネントや固有名詞もあるので、基本概念については以下のシリーズ記事を参照するのが良いでしょう。
また、実際のアドレス設計時の考慮事項は以下の記事にまとまっています。
2つのセキュリティ機能
Amazon VPCには、追加料金なしで利用できる標準のセキュリティ機能が2つあります。
- セキュリティグループ
- ネットワークACL(NACL)
どちらもファイヤーウォール機能として、EC2インスタンスなどVPC内のノードと他のホストとの通信を制限できます。どちらを利用するかは自由に選択できますが、使い勝手や各パラメータの設定上限からセキュリティグループをメイン機能、NACLをサブ機能として設計するのが良いでしょう。
いずれの機能もAWS API経由で動的に制御できるので、他のシステムとの連携もできます。NACLとの連携例として以下を挙げます。
ユースケース
Amazon VPCは、その用途(ユースケース)によって外部ネットワークとの組み合わせが変わってきます。
1. インターネット向けシステム
インターネットを経由するシステムを提供します。インターネットからの接続を待ち受ける各インスタンスには、グローバルIP(Elastic IP or Public IP)を設定しますが、必ずしもVPC内の全インスタンスに付与する必要はありません。ELB(Elastic Load Balancing)から複数のEC2にトラフィックを転送する構成が良く用いられますが、Elastic IPの付け外しも高可用性システム実現のためのデザインパターンとしてしばしば利用できるので覚えておくと良いでしょう。
また、EC2からインターネットへの接続には、デフォルトでSMTP制限がかかっているので注意が必要です。
2. オンプレミス向けシステム
オンプレミスのネットワークの延長としてVPCを相互接続し、データセンターのサーバーや企業の拠点PC向けシステムを提供します。相互接続としてはインターネットVPN(IPsec)もしくは専用線(Amazon Direct Connect)が利用できます。それぞれ設計・構成のポイントがあるので、以下の記事が参考になるでしょう。
- インターネットVPN
- Amazon Direct Connect
3. インターネット兼オンプレミス向けシステム
1と2の組み合わせもできます。インターネットとオンプレミスとの両方の接続をVPCに設定する構成です。こうなるとデータセンターネットワークにおけるサービス系/運用管理系のセグメント分けのように設計したくなるところですが、1インスタンスのマルチホーム構成はVPCでは推奨されません。ルーティングテーブルおよびセキュリティ設定で対応しましょう。
高度な設定
Amazon VPCは他のAWSサービスと同様、頻繁にアップデート、機能追加が行われます。最近追加された高度な設定がいくつかあります。必須の設定ではありませんが、ケースによっては便利に使える機能と言えるでしょう。
ピア接続
ピア接続はVPC同士の相互接続を行います。リージョンはまたげませんが、他のAWSアカウントのVPCとは接続可能です。既存VPCの拡張や異VPCのシステム間連携などに活用できます。
Flow Logs
VPC内のトラフィックログを取得する機能です。トラフィックのヘッダデータのダンプなので、あとから検索・解析する用途で活用できます。
- 【新機能】VPC Flow LogsでVPC内のIPトラフィックを監視することができるようになりました! | Developers.IO
- VPC Flow LogsをElasticsearch + Kibana4で可視化する | Developers.IO
ClassicLink
VPC以前のEC2のネットワーク環境をEC2 Classicと呼びます。Classic環境で作成したEC2にVPCへのネットワーク接続を追加するのがClassicLinkです。 VPC移行時のデータマイグレーションに活用できます。
- [AWS] ClassicLinkでClassic EC2インスタンスをVPCに相互接続する | Developers.IO
- Amazon EC2-ClassicのElastic IPをVPCに移行する | Developers.IO
VPC移行についてのドキュメントも目を通しておくと良いでしょう。
あわせて読みたい公式情報
- Amazon Virtual Private Cloud(VPC)ドキュメント | アマゾン ウェブ サービス(AWS 日本語)
- AWS Black Belt Techシリーズ Amazon VPC
- AWS Black Belt Techシリーズ AWS Direct Connect
さいごに
以上、AWS サービス別 再入門アドベントカレンダー 2015 2日目のAmazon VPC編でした。AWSのネットワークのメインになるサービスですので、バリバリ設計・構築して使っていきましょう! 明日(12/3)は清水のCloudFrontです。お楽しみに!
脚注
- Dedicated HostsおよびDedicated Instance ↩