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


41

今後のプロジェクトのためにAmazon EC2インスタンスをセットアップしています。それらはすべてUbuntuインスタンス64ビットを実行するマイクロインスタンスです。これまでに設定したものは次のとおりです。

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

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

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

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

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

インスタンスはおそらく非常に頻繁に停止および開始されることはありませんが、それでも、IPアドレスがさまざまな構成ファイルにある場合、それらをすべて確認して変更するのは苦痛です。

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

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


2
+1-弾力性のあるプライベートIPが大好きです。また、プライベートIPを介してリージョン間で通信することはできないと思います。
ジョエルK

単一のm1.smallで複数のt1.microよりもはるかに優れたパフォーマンスが得られることがわかると思います。次に、c1.mediumにアップグレードします。次に、複数のc1.mediumの起動を開始するか、さらに大きなインスタンスタイプを使用します。ただし、m1.smallおよびc1.mediumは、64ビットではなく32ビットのみをサポートすることに注意してください。
エリックハモンド

回答:


29

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


御返答いただき有難うございます。私はこれまでにDNSをセットアップしたことはありませんが、ダイナミックDNSが進むべき道であると考えています。あなたはそれを行う方法の詳細なチュートリアルを提供するサイトを知っていますか?
ks78

6

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


これが断然最良のアプローチです。
ceejayoz 14年

2
  • 最も安全な通信方法

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

  • 非静的なプライベートIP

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


私はもともとStackOverflowに同じ質問を投稿していました。そこでDNSサーバーを使用するように提案されたので、プライベートIPが変更されても、DNS提供の名前を使用して通信するため、それは重要ではありません。その解決策についてどう思いますか?
ks78

1
ダイナミックDNSゾーンを最新の状態に保つことができれば悪い解決策ではありませんが、すべてのインスタンスにプライマリDNSサーバーと同様に使用する必要があるため、単一障害点も発生します。そのため、代わりにmcollectiveまたはcapistranoを提案しました。これにより、ノード全体で複雑な操作を実行できるという利点が得られるためです。
lynxman

ありがとう。その解決策に対するあなたの意見はどうなるのだろうと思いました。mcollectiveとcapistranoを調べます。
ks78

古いスレッドを復活させて申し訳ありませんが、プライベートIPはまだec2で非静的ですか?それは私が真新しいec2セットアップで目撃してきたことではありません-サーバーを停止した後、ネットワークインターフェイスは固執し、プライベートIPアドレスはまだ変更されていません。また、必要に応じてセカンダリプライベートIPアドレスを選択できるようです。
icyitscold
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.