PERF04-BP06 ネットワーク要件に基づいてワークロードのロケーションを選択する
ネットワークのレイテンシー短縮、スループット向上、ページの読み込み時間とデータ転送時間の短縮による最適なユーザーエクスペリエンス提供に向けて、リソースプレイスメントのオプションを評価します。
一般的なアンチパターン:
-
すべてのワークロードリソースを 1 つの地理的場所に統合する。
-
ワークロードのエンドユーザーではなく、自分の所在地に最も近いリージョンを選んでいる。
このベストプラクティスを活用する利点: ユーザーエクスペリエンスは、ユーザーとアプリケーションの間のレイテンシーの影響を大きく受けます。適切な AWS リージョンと AWS のプライベートなグローバルネットワークを使用することで、レイテンシーを減らし、リモートユーザーにより良いエクスペリエンスを提供できます。
このベストプラクティスを活用しない場合のリスクレベル: 中
実装のガイダンス
Amazon EC2 インスタンスなどのリソースは、AWS リージョン
Amazon EC2 にはネットワーク用のプレイスメントグループが用意されています。プレイスメントグループは、レイテンシーを減らすためにインスタンスを論理的にグループ化したものです。サポートされているインスタンスタイプを使ったプレイスメントグループと Elastic Network Adapter (ENA) を使用することにより、ワークロードを低レイテンシー、低ジッターの 25 Gbps ネットワークに参加させることができます。プレイスメントグループは、低ネットワークレイテンシー、高ネットワークスループット、またはその両方からメリットを得るワークロードに推奨されます。
レイテンシーの影響を受けやすいサービスは、AWS グローバルネットワークを使用して Amazon CloudFront
エッジサービスを使用してレイテンシーを低減し、コンテンツキャッシングを有効化します。これらのアプローチから最大限のメリットを得るために、DNS と HTTP/HTTPS の両方でキャッシュ制御を正しく設定してください。
実装手順
-
VPC のネットワークインターフェイスとの間で行き来する IP トラフィックに関する情報を把握します。
-
ワークロードのネットワークアクセスパターンを分析して、ユーザーがアプリケーションをどのように使用しているかを特定します。
-
Amazon CloudWatch
や AWS CloudTrail などのモニタリングツールを使用して、ネットワークアクティビティに関するデータを収集します。 -
データを分析して、ネットワークアクセスパターンを特定します。
-
-
以下の主な要素に基づいて、ワークロードのデプロイに適切なリージョンを選択します。
-
データがある場所: 大量のデータを使用するアプリケーション (ビッグデータや機械学習など) では、アプリケーションコードをできるだけデータの近くで実行してください。
-
ユーザーがいる場所: ユーザー向けアプリケーションの場合は、ワークロードのユーザーに近いリージョン (1 つまたは複数) を選択します。
-
その他の制約:「ワークロードのリージョンを選択する際の考慮事項
」で説明されているように、コストやコンプライアンスなどの制約を考慮します。
-
-
ビデオレンダリングなどのワークロードは AWS Local Zones
を使用して実行します。Local Zones では、エンドユーザーの近くにコンピューティングリソースやストレージリソースがあるというメリットが得られます。 -
AWS にデプロイしている他のワークロードとシームレスに連携しながら、オンプレミスに残す必要があるワークロードには AWS Outposts
を使用します。 -
高解像度ライブビデオストリーミング、Hi-Fi 音源、拡張現実および仮想現実 (AR/VR) などのアプリケーションでは、5G デバイス向けに超低レイテンシーが必要です。このようなアプリケーションには AWS Wavelength
を検討します。AWS Wavelength は AWS のコンピューティングおよびストレージサービスを 5G ネットワーク内に組み込み、超低レイテンシーアプリケーションの開発、デプロイ、スケーリングのためのモバイルエッジコンピューティングインフラストラクチャを提供します。 -
ローカルキャッシュまたは AWS キャッシュソリューション
を頻繁に使用するデータに使用すると、パフォーマンスを向上させ、データ移動を削減し、環境への影響を低減できます。 サービス どのようなときに使うか 画像、スクリプト、動画などの静的コンテンツだけでなく、API 応答やウェブアプリケーションなどの動的コンテンツのキャッシュに使用します。
ウェブアプリケーションのコンテンツをキャッシュします。
DynamoDB テーブルにインメモリアクセラレーションを追加します。
-
以下のように、ワークロードのユーザーの近くでコードを実行できるサービスを使用します。
サービス どのようなときに使うか オブジェクトがキャッシュにないときに開始される、コンピューティング負荷の高いオペレーションに使用します。
HTTP(S) リクエストまたはレスポンス操作など、短時間実行の関数で実行できるシンプルなユースケースに使用します。
接続されたデバイスのローカルコンピューティング、メッセージング、データキャッシュを実行します。
-
アプリケーションによっては、最初のバイトのレイテンシーとジッターを低減してスループットを向上することによる、固定エントリポイントまたはより高いパフォーマンスが必要となります。このようなアプリケーションは、静的エニーキャスト IP アドレスおよび TCP ターミネーションをエッジロケーションで提供するネットワーキングサービスの恩恵を受けることができます。AWS Global Accelerator
を使用すると、アプリケーションのパフォーマンスを最大 60% 向上させ、マルチリージョンアーキテクチャの迅速なフェイルオーバーを実現できます。AWS Global Accelerator では、1 つまたは複数の AWS リージョンでホストされるアプリケーションの固定エントリポイントとして機能する静的エニーキャスト IP アドレスを利用できます。このような IP アドレスを使用すると、トラフィックはユーザーのできるだけ近くの AWS グローバルネットワークに入ることができます。AWS Global Accelerator は、クライアントとクライアントに最も近い AWS エッジロケーションの間で TCP 接続を確立することにより、初期接続設定時間を短縮します。TCP/UDP ワークロードのパフォーマンス向上、マルチリージョンアーキテクチャの迅速なフェイルオーバーを実現するには、AWS Global Accelerator の使用を検討します。
リソース
関連するベストプラクティス:
関連ドキュメント:
関連動画:
関連する例: