注:AWSの新しいアカウントは、「デフォルトのVPC」をすぐに有効にして起動し、「EC2-Classic」を使用できなくなります。そのため、この質問と回答は、2012年8月よりも意味がなくなりました。「EC2-Classic」とVPC製品ラインのフレームの違いに役立つため、回答はそのままにしておきます。詳細については、 AmazonのFAQを参照してください。
はい。セキュリティを意識している場合、CloudFormationのヘビーユーザーである場合、または自動スケーリングを完全に制御したい場合(Beanstalkは、その特定の側面を抽象化しますが、スケーリングパラメーターへの完全なアクセスを提供します)、VPCを使用します。このブログ投稿は、長所と短所の両方を要約した素晴らしい仕事をしています。ブログ投稿(kiip.meによって書かれた)からのいくつかのハイライト:
EC2の何が問題になっていますか?
すべてのノードはインターネットでアドレス指定できます。これは、グローバルインターネット上に存在する理由がないノードにはあまり意味がありません。例:データベースノードには、パブリックインターネットホスト名/IPを含めないでください。
すべてのノードは共有ネットワーク上にあり、相互にアドレス可能です。つまり、ユーザー「Bob」によって起動されたEC2ノードは、ユーザー「Fred」によって起動されたEC2ノードのいずれかにアクセスできます。デフォルトでは、セキュリティグループはこれを許可していませんが、特にカスタムセキュリティグループを使用している場合は、この保護を簡単に元に戻すことができます。
パブリックインターフェイスとプライベートインターフェイスはありません。パブリックホスト名のすべてのトラフィックを無効にしたい場合でも、できません。ネットワークインターフェースレベルでは、各EC2インスタンスには1つのネットワークインターフェースしかありません。パブリックホスト名とElasticIPは、「プライベート」ネットワークにルーティングされます。
VPCの優れている点
何よりもまず、VPCはEC2と比較して信じられないほどの量のセキュリティを提供します。VPC内で起動されたノードは、グローバルインターネット、EC2、またはその他のVPCを介してアドレス指定できません。これは、セキュリティを忘れることができるという意味ではありませんが、EC2と比較してはるかに安全な出発点を提供します。さらに、プライベートノードは単に「プライベートネットワークからのトラフィックを許可する」と言うことができるため、ファイアウォールルールがはるかに簡単になります。ノードを起動してからWebサーバーが完全に実行されるまでの時間は、ファイアウォールの変更の伝播を回避するために節約された時間だけのために、20分から約5分に短縮されました。
DHCPオプションセットを使用すると、新しいノードがVPC内で起動されたときに使用するドメイン名、DNSサーバー、NTPサーバーなどを指定できます。これにより、カスタムDNSの実装がはるかに簡単になります。EC2では、同じ効果を得るには、新しいノードを起動し、DNS構成を変更してから、ネットワークサービスを再起動する必要があります。内部ノード解決のためにKiipで独自のDNSサーバーを実行しており、DHCPオプションセットを使用すると簡単に実行できます(10.101.84.22ではなくeast-web-001と入力する方がはるかに理にかなっています)。
そして最後に、VPCははるかに現実的なサーバー環境を提供するだけです。VPCはAWS独自の製品であり、AWSに「ロックイン」しているように見えますが、VPCが採用するモデルは、独自の専用ハードウェアの実行を開始することにした場合に似ています。事前にこの知識を持ち、それを取り巻く実際の経験を積み上げることは、自分のハードウェアに移行する必要がある場合に非常に貴重です。
この投稿には、VPCに関するいくつかの問題も記載されています。これらはすべて、多かれ少なかれルーティングに関連しています。VPCからインターネットゲートウェイまたはNATインスタンスを取得する、VPC間で通信する、データセンターへのVPNを設定する。これらは時々非常にイライラする可能性があり、学習曲線は簡単ではありません。それでも、セキュリティ上の利点だけでもおそらく移動する価値があり、Amazonのサポート(お金を払っても構わないと思っている場合)は、VPC構成に関して非常に役立ちます。