Amazon Web Services ブログ
持続可能な AWS インフラストラクチャの最適化、第三部:ネットワーキング編
このブログは Katja Philipp (Associate Solutions Architect)、 Aleena Yunus (Associate Startup Solutions Architect)、Otis Antoniou (Associate Solutions Architect)、Ceren Tahtasiz (Startup Solutions Architect) によって執筆された内容を日本語化したものです。原文はこちらを参照して下さい。
本シリーズの第一部:コンピュート編と第二部:ストレージ編では、持続可能性のために AWS アーキテクチャのコンピュートおよびストレージレイヤーを最適化するための戦略を紹介しました。
本ブログでは、AWS インフラストラクチャのネットワークレイヤーに注目し、ネットワーク利用を最適化するための概念をご紹介します。
AWS インフラストラクチャのネットワークレイヤーの最適化
アプリケーションをより多くのお客様にご利用いただけるようにすると、ネットワーク上を移動するパケットは増加します。同様に、データのサイズが大きくなればなるほど、またパケットの移動距離が長くなればなるほど、それを伝送するために必要なリソースは増加します。アプリケーションユーザーの増加に伴い、ネットワークトラフィックを最適化することで、ネットワークリソースの消費量が線形的に増えないようにすることができます。
以下のセクションの推奨事項は、ワークロードのネットワークレイヤーに対して、リソースをより効率的に使用するのに役立ちます。
リクエストごとに移動するネットワークの削減
ネットワーク上で送信されるデータを減らし、パケットが通る経路を最適化することで、より効率的なデータ転送を実現できます。次の表は、潜在的なネットワーク最適化の可能性を見つけるのに役立つ、いくつかの AWS サービスに関連するメトリクスを提供します。
サービス | メトリクス/チェック | 参照 |
Amazon CloudFront | キャッシュヒットレート | CloudFront と Lambda@Edge のメトリクスを参照 |
AWS Trusted Advisor のチェック参照 | ||
Amazon Simple Storage Service (Amazon S3) | バケット内外に転送されるデータ | メトリクスとディメンション |
AWS Trusted Advisor のチェック参照 | ||
Amazon Elastic Compute Cloud (Amazon EC2) | NetworkPacketsIn/NetworkPacketsOut | インスタンスで利用可能な CloudWatch のメトリクスの一覧 |
AWS Trusted Advisor | CloudFront コンテンツ配信最適化 | AWS Trusted Advisor のチェック参照 |
ネットワーク利用を最適化するために、以下の概念を推奨します。
ローカルで読み取り、グローバルで書き込む
以下の戦略では、ユーザーが最も近いソースからデータを読み取ることができるため、より少ないリクエストで長距離を移動することができます。
- 単一の AWS リージョンで運用する場合は、ユーザーの大半の近くにあるリージョンを選択する必要があります。ユーザーがリージョンから遠く離れれば離れるほど、データはグローバルネットワークを通じてより遠くへ移動する必要があります。
- ユーザーが複数のリージョンにまたがっている場合は、データの複数のコピーを各リージョンに常駐させるよう設定します。Amazon Relational Database Service (Amazon RDS) と Amazon Aurora では、リージョン間の読み取りレプリカを設定することができます。 Amazon DynamoDB のグローバルテーブルを使用すると、高速なパフォーマンスとネットワーク負荷の軽減が可能です。
コンテンツデリバリーネットワークを利用
コンテンツ配信ネットワーク (CDN) は、エンドユーザーにより近いところでデータを提供します。リクエストに応じて、元のサーバーから静的コンテンツをキャッシュし、ユーザーに配信します。これにより、各パケットの移動距離が短縮されます。
- CloudFront はネットワーク利用を最適化し、CloudFront のグローバルに分散したエッジネットワーク上でトラフィックを配信をします。図1 は、S3 バケットに直接アクセスするグローバルユーザーベースと、エッジロケーションからキャッシュされたデータを提供する場合の比較を示しています。
- Trusted Advisor には、S3 バケットに CDN を使用すべきかどうかを推奨するチェックが含まれています。S3 バケットから転送されるデータを分析し、CloudFront の配信から恩恵を受ける可能性のあるバケットにフラグをつけます。
CloudFront のキャッシュヒット率の最適化
CloudFront は、リクエストヘッダ(例えば、言語、日付、ユーザーエージェントなど)に応じて、オブジェクトの異なるバージョンをキャッシュします。Trusted Advisor のチェックにより、CDN ディストリビューションのキャッシュヒット率(オブジェクトが CDN から提供される回数とオリジンから提供される回数の差)をさらに最適化することができます。これは、オブジェクトに影響を与えないヘッダーを自動的にチェックし、それらのヘッダーを無視し、リクエストをオリジンに転送しない設定を推奨しています。
エッジ指向のサービスの利用
エッジコンピューティングは、データストレージと計算をユーザーに近づけるものです。このアプローチを導入することで、エッジ上でデータの前処理を行ったり、機械学習アルゴリズムを実行したりすることができます。
- ゲートウェイやユーザーデバイスに直接適用されるエッジ指向のサービスは、データをクラウドサーバーに送り返す必要がないため、ネットワークトラフィックを削減します。
- 1 回限りの低遅延タスクは、自動運転車が近くの物体を検出する必要がある場合など、エッジのユースケースに適しています。一般的に、複数の関係者がアクセスする必要のあるデータはクラウドにアーカイブする必要がありますが、デバイスのハードウェアやプライバシー規制などの要因をまず考慮する必要があります。
- CloudFront Functions はエッジロケーションでコンピューティングを実行でき、Lambda@Edge は Regional エッジキャッシュを生成できます。AWS IoT Greengrass は、モノのインターネット (IoT) デバイスのためのエッジコンピューティングを提供します。
データの送信サイズの削減
圧縮ファイルの配信
静的アセットのキャッシュに加え、圧縮ファイルをユーザーに提供することで、ネットワークの利用を最適化できます。CloudFront でオブジェクトを自動的に圧縮するように設定することで、ダウンロードが高速化し、ウェブページの高速レンダリングにつながります。
Amazon EC2 のネットワークパフォーマンスの向上
ネットワークパケットは、送信するデータ(フレーム)と処理オーバーヘッド情報で構成されています。より大きなパケットを使用すると、1 つのパケットでより多くのデータを渡すことができ、処理オーバーヘッドを減らすことができます。
ジャンボフレームは、接続を通過することができる最大の許容パケットを使用します。単一の仮想プライベートクラウド (VPC) の外側、仮想プライベートネットワーク (VPN) またはインターネットゲートウェイ上では、ジャンボフレームを使用しても、トラフィックはより低いフレームに制限されることに注意する必要があります。
API 最適化
ペイロードが大きい場合は、REST API のペイロードのメッセージを圧縮することで、ネットワークトラフィックを減らすためにサイズを小さくすることを検討してください。ユースケースに適したエンドポイントを使用します。エッジ最適化 API エンドポイントは、地理的に分散したクライアントに最も適しています。リージョン API エンドポイントは、接続のオーバーヘッドを減らすことができるため、要求の高いクライアントが数人いる場合に最適です。API レスポンスをキャッシュすることで、ネットワークトラフィックを減少させ、応答性を向上させることができます。
まとめ
組織のクラウド導入が進むにつれ、環境の持続可能性のために AWS インフラストラクチャを最適化する場合、リソースの効率性を知ることが非常に重要になります。可能な限り少ない数のリソースを使用し、それを最大限に活用することが、環境への影響を最小限に抑えることにつながります。
この 3 部構成のブログ投稿シリーズでは、AWS インフラストラクチャのコンピュート、ストレージ、ネットワークレイヤーの以下のアーキテクチャコンセプトとメトリクスについて紹介しました。
- アイドルリソースを削減と使用率を最大化
- 既存の供給に需要を合わせる
- データのライフサイクルを管理
- ストレージの階層を使い分け
- データがネットワークを経由する経路を最適化
- 送信されるデータのサイズを削減
これは網羅的なリストではありません。リソースの環境への影響や、より効率的で持続可能な AWS インフラストラクチャを構築する方法を検討するための出発点となることを期待しています。図2 は、CloudWatch と Trusted Advisor を使用して関連するメトリクスを監視する方法の概要を示しています。
始める準備はできていますか? AWS の持続可能性への取り組みについては、「AWS サステナビリティ」のページをご覧ください。再生可能エネルギーの利用状況や、クラウドを通じた持続可能性に関するケーススタディなどの情報を提供しています。
翻訳はネットアップ合同会社の何氏、監修はソリューションアーキテクトの戸塚 智哉が担当しました。
本シリーズの他のブログ記事
- 持続可能な AWS インフラストラクチャの最適化、第一部:コンピュート編
- 持続可能な AWS インフラストラクチャの最適化、第二部:ストレージ編
- 持続可能な AWS インフラストラクチャの最適化、第四部:データベース編
関連情報
TAGS: Optimizing your AWS Infrastructure for Sustainability Series, Sustainability