多くのAWSアプリケーションが、EC2インスタンス にトラフィックを分散する為に Elastic Load Balancingを使用しています。このタイプのアーキテクチャは、インスタンスの追加、削除、交換を安全に実施することが可能で非常にスケーラブルです。ロードバランサを使用することで、一部のインスタンスに問題が発生した場合にも、アプリケーションの実行を継続することができます。
今日、私達はさらに便利な2つの新機能として、全てのポートに対する負荷分散とアクセスログに新たなフィールドを追加しました。
全ポートのサポート
新しいロードバランサを作成する際、1つ以上のリスナーを設定する必要があります。各リスナーは、特定のポートで接続要求を受け入れます。今までは、ウェルノウンポート(25、80、443、465、および687)の低位番号の小さなセットと、エフェメラルポート(1024-65535)の大きなセットの設定を行う必要がありました。
今日からは、VPC内で稼働するロードバランサは、どのようなポート(1-65535)に対してもリスニングが可能となります。これにより、低位のポート番号で動作する必要があるサービスに対してロードバランサを柔軟に構築することができます。
これは、従来の方法(ELB API、AWSコマンドラインインターフェース(CLI) / AWS Tools for Windows PowerShell、CloudFormationテンプレート、AWSマネジメントコンソール)で設定することができます。ここでは、ポート143(IMAPプロトコル)に対するロードバランサを定義する方法を紹介します。
詳細は、Elastic Load Balancing ドキュメントの”ロードバランサーのリスナー” を参照ください。
アクセスログの追加フィールド
既に、ロードバランサを通過するトラフィックのログを S3に記録する機能は存在しています。
より詳細にトラフィックについて知るため、また構成変更を検討する際に参考となる情報を得るために、現在、アクセスログには特定のプロトコルについていくつかの追加情報が含まれています。
- ユーザーエージェント - この値は、HTTPおよびHTTPSポートで受信したTCP要求が記録されます。
- SSL暗号とプロトコル - これらの値は、HTTPSとSSLポートで受信したTCP要求が記録されます。
あなたが特定のWebブラウザ、暗号、またはSSLプロトコルのサポートを追加または削除するとき、これらの情報に基づいて意思決定を行うことができます。サンプル・ログ・エントリは次の通りです。
2015-05-13T23:39:43.945958Z my-loadbalancer 192.168.131.39:2817 10.0.0.1:80 0.000086 0.001048 0.001337 200 200 0 57 "GET https://www.example.com:443/ HTTP/1.1" "curl/7.38.0" DHE-RSA-AES128-SHA TLSv1.2
また、この情報を表示、分析するために、AWSパートナーのツールを使用することができます。例えば Splunkではこのように表示できます。
そして Sumo Logicではこのように表示できます。
アクセスログの詳細については、開発者ガイドの"Elastic Load Balancing アクセスログを使用してロードバランサーを監視する"を参照下さい。
これらの両方の機能が利用可能となり、今日から使用を開始することができます!
-- Jeff (翻訳は辻正史が担当しました。原文はこちらです。)