Amazon Web Service の ELB の背後にある Web アプリケーションの基本的なセットアップが 2 つあります。
レイアウト A:
+-----+
+---+ ELB +----+
| +-----+ |
| |
| |
+---v-----+ +-----v---+ +---------------+
| EC2/EIP | | EC2/EIP +----+----> | HTTP RESPONSE |
+---------+ +---------+ | +---------------+
|
| +------------------+
+----> | EXTERNAL WEBSITE |
| +------------------+
|
| +-----+
+----> | API |
+-----+
レイアウト B:
+-----+
+---+ ELB +----+
| +-----+ |
| |
| |
+--v--+ +--v--+ +-----+ +---------------+
| EC2 | | EC2 +--+ NAT +--+----> | HTTP RESPONSE |
+-----+ +-----+ +-----+ | +---------------+
|
| +------------------+
+----> | EXTERNAL WEBSITE |
| +------------------+
|
| +-----+
+----> | API |
+-----+
どちらのアーキテクチャにも長所と短所があると思います。
レイアウト A:
- Web サーバーは http 応答を ELB に送り返しますか? それが直接ユーザーに送られる場合、パフォーマンスの応答は得られますか?
- HTTP ポートの送信トラフィックをセキュリティ グループのみに制限しても、セキュリティ上の脅威はありますか?
レイアウト B:
- この設計は、別のレイヤーの障害点 (NAT) を作成していますか?
- Oauth 通信で動作しますか?
- サードパーティの CI およびオーケストレーション ツール (jenkins、chef) と連携できますか?
どちらの設計もうまく機能しますが、パフォーマンスとセキュリティを考慮したインフラストラクチャのベスト プラクティスはどちらの設計でしょうか。
ありがとう