web-dev-qa-db-ja.com

Amazon EC2インスタンス間の通信のベストプラクティスは何ですか?

今後のプロジェクトのためにAmazon EC2インスタンスを設定しています。これらはすべて、Ubuntu Server 64ビットを実行するマイクロインスタンスです。これが私がこれまでに設定したものです:

  • Webサーバー-Apache
  • データベースサーバー-MySQL
  • 開発サーバー-ApacheとMySQL
  • ファイルサーバー-SVN&Bacula(バックアップはS3バケットに対して行われます)

現在、Webサーバーは1つしかありませんが、最終的にはさらに増えます。

私の最初の質問は、Amazon EC2インスタンスが相互に通信するための最良かつ最も安全な方法は何ですか?現在私はSSHを使用していますが、それが最善の方法ですか?

Amazonによると、Elastic IPアドレスを使用してインスタンス間で通信するインスタンスには、データ転送料金が課金されます。ただし、プライベートIPアドレスを使用して通信するインスタンスは、無料でこれを行うことができます。残念ながら、インスタンスを停止して再起動すると、プライベートIPが変更されるようです。

それが私の2番目の質問です。静的でない場合、AmazonインスタンスのプライベートIPをどのように利用しますか?

インスタンスがおそらく頻繁に停止および開始されないことはわかっていますが、それでも、IPアドレスがさまざまな構成ファイルに含まれている場合、それらすべてを調べて変更するのは面倒です。

私は主に、バックアップを実行するときにデータベースサーバーとファイルサーバーにアクセスする必要があるWebサーバーと、すべてのインスタンスにアクセスする必要があるWebサーバーについて心配しています。

注: Baculaを使用したことがなく、まだ設定していませんが、バックアップするためにクライアントのIPアドレスが必要になると想定しています。

41
ks78

EC2内からでもElastic IPアドレスを使用する方法を説明するEric Hammondの記事をご覧ください。 EC2内からElastic IPアドレスを(名前で)解決するとプライベートIPアドレスが返されるため、この方法では帯域幅料金は発生しません。

http://alestic.com/2009/06/ec2-elastic-ip-internal

より多くのオプションについては、いくつかの選択肢を調べる記事があります:

http://shlomoswidler.com/2010/06/track-changes-to-your-dynamic-cloud-services-automatically.html

29
Shlomo Swidler

EC2インスタンスをAWS Virtual Private Cloud(VPC)にデプロイします。 VPCを構成するときに、CIDRをVPC内のすべてのEC2インスタンスに割り当て、内部IPは静的になります。

6
user188724
  • 最も安全な通信方法

SSHは、異なるサーバー間でデータを転送するための非常に優れた方法ですが、たとえばデータベースへの永続的な接続などを探している場合は、stunnelのようなあらゆる種類の暗号化されたトンネリングソフトウェアを使用できます。

  • 非静的プライベートIP

静的なプライベートIPを使用する方法がないため、このために何らかの種類の自動サーバーデプロイメントを使用できます。mcollective、capistrano、funcなどのツールを使用して、新しいインスタンスを中央の指定サーバーに登録し、複数のアクションを生成できます。それに基づくマシン

2
lynxman