web-dev-qa-db-ja.com

AmazonのAWS Virtual Private Cloud(VPC)を使用する必要がありますか

現在、別のVPSプロバイダーからAmazon EC2に移行しています。一般的なWebサーバー/データベースサーバーのニーズがあります。データベースサーバーの前にあるWebサーバー。データベースサーバーは、インターネットから直接アクセスできません。

インスタンスを作成し、セキュリティグループを使用してそれらをファイアウォールで保護するのではなく、これらのサーバーをAWS Virtual Private Cloud(VPC)に入れる理由があるかどうか疑問に思います。

私たちは、典型的なWebアプリのような派手なことは何もしていません。

VPCを使用する理由、またはVPCを使用しない理由

ありがとう。

51
spicer

注:AWSの新しいアカウントは、「デフォルトVPC」をすぐに有効にして起動し、「EC2-Classic」を使用不可にします。そのため、この質問と回答は2012年8月よりもあまり意味がありません。「EC2-Classic」とVPC製品ラインの違いを理解するのに役立つため、回答はそのままにします。詳細については AmazonのFAQ を参照してください。

はい。セキュリティを重視している場合、CloudFormationユーザーが重い場合、または自動スケーリングを完全に制御したい場合(Beanstalkとは対照的に、特定の側面を抽象化する一方で、スケーリングパラメーターに完全にアクセスできる)、VPCを使用します。これ ブログ投稿 は、長所と短所の両方をまとめた素晴らしい仕事です。ブログ投稿のいくつかのハイライト( kiip.me によって書かれた):

EC2の何が問題になっていますか?

すべてのノードはインターネットでアドレス可能です。これは、グローバルインターネット上に存在する理由がないノードにはあまり意味がありません。たとえば、データベースノードにはパブリックインターネットホスト名/ IPを含めないでください。

すべてのノードは共有ネットワーク上にあり、相互にアドレス指定可能です。つまり、ユーザー「Bob」によって起動されたEC2ノードは、ユーザー「Fred」によって起動されたEC2ノードのいずれにもアクセスできます。デフォルトでは、セキュリティグループはこれを許可しませんが、特にカスタムセキュリティグループ。

パブリックインターフェイスとプライベートインターフェイスはありません。パブリックホスト名のすべてのトラフィックを無効にしたい場合でも、できません。ネットワークインターフェイスレベルでは、各EC2インスタンスには1つのネットワークインターフェイスしかありません。パブリックホスト名とElastic IPは、「プライベート」ネットワークにルーティングされます。

VPCのすばらしいところ

何よりもまず、VPCはEC2と比較して信じられないほどの量のセキュリティを提供します。 VPC内で起動されたノードは、グローバルインターネット、EC2、または他のVPCを介してアドレス指定することはできません。これは、セキュリティについて忘れることができるという意味ではありませんが、EC2と比べて非常に安全な出発点となります。さらに、プライベートノードは単に「プライベートネットワークからのトラフィックを許可する」と言うことができるため、ファイアウォールルールがはるかに簡単になります。ノードの起動からWebサーバーの完全稼働までの時間は、20分から約5分に短縮されました。ファイアウォールの変更の伝播を回避するために時間を節約できるためです。

DHCPオプションセットを使用すると、VPC内で新しいノードを起動するときに使用するドメイン名、DNSサーバー、NTPサーバーなど)を指定できます。これにより、カスタムDNSの実装がはるかに容易になります。 EC2では、同じ効果を得るために、新しいノードを起動し、DNS構成を変更してからネットワークサービスを再起動する必要があります。Kiipで独自のDNSサーバーを実行して、内部ノードを解決します。ブラウザに10.101.84.22ではなくeast-web-001と入力する方がはるかに適切です)。

そして最後に、VPCはより現実的なサーバー環境を提供するだけです。 VPCはAWS独自の製品であり、AWSに「ロックイン」しているように見えますが、VPCが採用するモデルは、独自の専用ハードウェアの実行を開始する場合により似ています。事前にこの知識を持ち、それを取り巻く実世界の経験を構築することは、自分のハードウェアに移行する必要がある場合に非常に貴重です。

投稿には、VPCのいくつかの問題も記載されていますが、それらはすべてルーティングに多少関係しています。インターネットゲートウェイまたはVPCからのNATインスタンスの取得、VPC間の通信、VPNのセットアップデータセンター。これらは時々非常にイライラする可能性があり、学習曲線は簡単ではありません。 VPC設定に関しては役立ちます。

56
Christopher

現在、VPCにはEC2よりも次のような便利な利点があります。

  • インスタンスごとに複数のNIC
  • nICごとに複数のIP
  • 「拒否」-セキュリティグループのルール
  • DHCPオプション
  • 予測可能な内部IP範囲
  • インスタンス間でNICおよび内部IPを移動する
  • VPN

おそらくAmazonはこれらの機能のいくつかを使用してEC2をアップグレードするでしょうが、現在はVPCのみです。

13
Martijn Heemels

現在、VPCは内部ロードバランサーを使用する唯一の方法です

2
Delcasda

VPCは、アプリがEC2の外部のサーバーにアクセスする必要がある場合に役立ちます。独自の物理データセンターでホストされ、インターネット経由でアクセスできない共通サービスがある場合。すべてのWebサーバーとDBサーバーをEC2に配置する場合、VPCを使用する理由はありません。

2
gareth_bowles

RDSを選択してデータベースサービスを提供する場合、DBセキュリティグループを設定して、特定のEC2セキュリティグループからのデータベース接続を許可し、動的IPアドレスがEC2クラスターの場合、RDSは接続を許可するファイアウォールルールを自動的に作成しますあなたのインスタンスからのみ。この場合、VPSの利点が減少します。

一方、VPSは、EC2インスタンスがローカルネットワークにアクセスする必要がある場合に優れています。次に、VPSとローカルネットワーク間のVPN接続を確立して、IP範囲、サブネットワーク、ルートを制御します。送信ファイアウォールルールは、あなたが探しているものではないと思います。

また、 Elastic Beanstalk を試すことを強くお勧めします。これにより、PHP用のEC2クラスターを簡単にセットアップできるコンソールが提供されますJavaおよび。 Auto ScalingElastic Load Balancer および自動アプリケーションバージョン管理により、不適切な展開から簡単にロールバックできます。

1

ここで懸念を表明しました。

コストの面で実行可能性に焦点を当てたいと思います...

コスト要因はどうですか?

そのサーバーに対して1時間ごとに料金を支払うことになります。月額20ドルから50ドルのインスタンスを選択した場合でも、サーバーライフの残りを支払うことになります。 VPNサーバーは、古いハードウェアに非常に安価で簡単に設定できるものであり、オープンソースソリューションでは無料です。

既存のAWSサーバーパークにVPNを追加することは理にかなっていますが、AWSに単独のVPNサーバーを設定することは意味がありません。私はそれが最高の費用対効果の高いオプションだとは思わないが、それは私の意見だ。

おかげで、

アリサ

0
Alex Scott