選択 - AWS Well-Architected フレームワーク

選択

PERF 1 どのように最良パフォーマンスのアーキテクチャを選択するのですか?

多くの場合、ワークロード全体での最適なパフォーマンスのためには、複数のアプローチが必要になります。Well-Architected なシステムでは、パフォーマンスを向上させるために複数のソリューションと機能が使用されています。

ベストプラクティス:

  • 利用可能なサービスやリソースを理解する: クラウドで利用できる幅広いサービスやリソースに関する情報を取得し、その内容を理解します。お客様のワークロードに関連するサービスや設定の選択肢を認識した上で、最適なパフォーマンスを実現する方法を理解してください。

  • アーキテクチャにかかわる選択プロセスを決める: クラウドに関する社内の経験と知識、公開されたユースケース、関連ドキュメント、ホワイトペーパーなどの外部リソースを利用して、リソースとサービスを選択するプロセスを決定します。お客様のワークロードで利用できるサービスについて、実験とベンチーマークを促すプロセスを定義するようにしてください。

  • 意思決定においてコスト要件を考慮する : ワークロードには、多くの場合、運用のためのコスト要件があります。社内のコスト管理を使用し、予測されたリソースニーズに基づいて、リソースのタイプとサイズを選択してください。

  • ポリシーやリファレンスアーキテクチャを使用する: 内部ポリシーと既存のリファレンスアーキテクチャを評価し、独自の分析を使用してワークロードのサービスと設定を選択することで、パフォーマンスと効率性を最大化します。

  • クラウドプロバイダー、または適切なパートナーからのガイダンスを利用する: ソリューションアーキテクト、プロフェッショナルサービス、または適切なパートナーなどのクラウド企業のリソースを判断の指針として利用します。それらのリソースはお客様のアーキテクチャにおける最適なパフォーマンスを実現するためのレビューとか改善に役立ちます。

  • 既存のワークロードのベンチマークを実施する: 既存のワークロードのパフォーマンスについてベンチマークを実施し、クラウドでの実行状況を把握します。ベンチマークから収集されたデータを使用して、アーキテクチャ面での判断を導き出します。

  • ワークロードの負荷テストを実施する: 異なるリソースタイプとサイズを使用して、最新のワークロードアーキテクチャをクラウドにデプロイします。デプロイメントをモニタリングして、ボトルネック、または過剰なキャパシティーを特定するパフォーマンスメトリックスを把握してください。このパフォーマンス情報を使用して、お客様のアーキテクチャとリソースの選択を改善します。

PERF 2 コンピューティングソリューションはどのように選択すればよいですか?

ワークロードにとって最適なコンピューティングソリューションは、アプリケーションの設計、使用パターン、設定に応じて異なります。各アーキテクチャでは、コンポーネントごとに異なるコンピューティングソリューションが使用される可能性があるため、パフォーマンスを向上させるための機能も異なります。アーキテクチャに不適切なコンピューティングソリューションを選択すると、パフォーマンス効率が低下する可能性があります。

ベストプラクティス:

  • 使用可能なコンピューティングオプションを評価する: 利用可能なコンピューティング関連オプションのパフォーマンス特性を理解します。インスタンス、コンテナ、および関数の仕組みと、それらがワークロードにもたらすメリットとデメリットを認識します。

  • 利用可能なコンピューティング設定オプションについて理解する: さまざまなオプションがワークロードをどのように補完するか、またシステムにどの設定が最適かを理解します。これらのオプションの例には、インスタンスのファミリー、サイズ、機能 (GPU、I/O)、関数サイズ、コンテナインスタンス、シングルテナンシーとマルチテナンシーなどがあります。

  • コンピューティング関連のメトリクスを収集する: コンピューティングシステムのパフォーマンスを理解する最良の方法の 1 つは、各種リソースの実際の使用率を記録して追跡することです。このデータは、リソース要件についてより正確な判断を行うために使用できます。

  • 適切なサイジングによって必要な設定を決定する: ワークロードのさまざまなパフォーマンス特性と、それらの特性とメモリ、ネットワーク、CPU 使用率との関連を分析します。このデータは、ワークロードのプロファイルに最適なリソースを選択するために使用します。たとえば、メモリ集約型のワークロード (データベースなど) には r ファミリーのインスタンスが最適ですが、バーストするワークロードでは、伸縮自在なコンテナシステムからより多くのメリットを得ることができます。

  • 利用可能な伸縮性のあるリソースを使用する: クラウドは、需要の変化に対応するためのさまざまなメカニズムを通じて、リソースを動的に拡張または縮小する柔軟性を提供します。コンピューティング関連のメトリクスと組み合わせることによって、ワークロードは変化に自動的に対応し、最適な一連のリソースを利用して目標を達成できるようになります。

  • メトリクスに基づいてコンピューティングニーズを再評価する: システムレベルのメトリクスを使用して、ワークロードの経時的な動作と要件を特定します。利用可能なリソースとこれらの要件を比較することによってワークロードのニーズを評価し、ワークロードのプロファイルに最も良く一致するようにコンピューティング環境を変更します。たとえば、時間がたつにつれて、システムが当初の想定よりもメモリ集約型であることがわかる場合があります。このため、別のインスタンスファミリー、またはインスタンスサイズに移行することでパフォーマンスと効率性の両方が向上する可能性があります。

PERF 3 ストレージソリューションはどのように選択すればよいですか?

システムにとって最適なストレージソリューションは、アクセス方法 (ブロック、ファイル、オブジェクト)、アクセスパターン (ランダム、シーケンシャル)、必要なスループットやアクセス頻度 (オンライン、オフライン、アーカイブ)、更新頻度 (WORM、動的)、可用性と耐久性に関する制約によって異なります。優れた設計のシステムでは、複数のストレージソリューションを使用し、さまざまな機能を有効にしてパフォーマンスとリソースの使用効率を高めています。

ベストプラクティス:

  • ストレージ特性と要件を理解する: オブジェクトストレージ、ブロックストレージ、ファイルストレージ、またはインスタンスストレージなど、ワークロードに最適なサービスを選択するために必要なさまざまな特性 (共有可能、ファイルサイズ、キャッシュサイズ、アクセスパターン、レイテンシー、スループット、データの永続性など) を理解します。

  • 利用可能な設定オプションを評価する: さまざまな特性や設定オプションと、それらがストレージにどのように関連するかを評価します。ワークロードのためのストレージ容量とパフォーマンスを最適化するために、プロビジョンド IOPS、SSD、磁気ストレージ、オブジェクトストレージ、アーカイブストレージ、またはエフェメラルストレージをどこでどのように使用するかを理解してください。

  • アクセスパターンとメトリクスに基づいて意思決定を行う: ワークロードのアクセスパターンに基づいてストレージシステムを選択し、ワークロードがどのようにデータにアクセスするかを決定することでそれらを設定します。ストレージの効率を高める場合には、ブロックストレージではなくオブジェクトストレージを選択してください。選択したストレージオプションは、データのアクセスパターンに合わせて設定します。

PERF 4 データベースソリューションはどのように選択すればよいですか?

システムにとって最適なデータベースソリューションは、可用性、整合性、分断耐性、レイテンシー、耐久性、スケーラビリティ、クエリ機能などの要件に応じて異なります。多くのシステムでは、各種サブシステムに異なるデータベースソリューションを使用しているため、パフォーマンスを向上させるために活用する機能も異なります。システムに対して適切でないデータベースソリューションや機能を選択すると、パフォーマンス効率が低下する場合があります。

ベストプラクティス:

  • データの特性を理解する: ワークロード内のデータのさまざまな特性について理解します。ワークロードについて、トランザクションが必要かどうか、データとどのようにやり取りするか、およびパフォーマンス需要が何かを判断します。このデータを使用して、ワークロードに最高パフォーマンスを提供するデータベースアプローチを選択します (リレーショナルデータベース、NoSQL key-value 、ドキュメント、ワイドカラム、グラフ、時系列、またはインメモリストレージなど)。

  • 使用可能なオプションを評価する: ワークロードのストレージメカニズムの一部として利用できるサービスとストレージオプションを評価します。データストレージのために、所定のサービスまたはシステムをいつどのように使用するのかを理解します。プロビジョンド IOPS、メモリとコンピューティングのリソース、およびキャッシングなど、データベースのパフォーマンスと効率性を最適化できる利用可能な設定の選択肢について学びます。

  • データベースのパフォーマンスメトリクスを収集して記録する: データベースのパフォーマンスに関連するパフォーマンスの測定値を記録するツール、ライブラリ、システムを使用します。例えば、1 秒あたりのトランザクション数、実行速度の遅いクエリ、データベースにアクセスする際に生じるシステムレイテンシーなどを測定します。このデータを使用して、データベースシステムのパフォーマンスを把握します。

  • アクセスパターンに基づいてデータストレージを選択する: ワークロードのアクセスパターンを使用して、使用するサービスとテクノロジーを決定します。たとえば、トランザクションを必要とするワークロード、または高スループットを提供するが、必要に応じて結果整合になるという key-value ストアには、リレーショナルデータベースを使用します。

  • アクセスパターンとメトリクスに基づいてデータストレージを最適化する: データの保存方法またはクエリ方法を最適化するパフォーマンス特性とアクセスパターンを使用して、可能な限り最高のパフォーマンスを実現します。インデックス作成、キー分散、データウェアハウス設計、またはキャッシング戦略などの最適化が、システムのパフォーマンスまたは全体的な効率性にどのように影響するかを測定してください。

PERF 5 ネットワーキングソリューションはどのように選択すればよいですか?

ワークロードに最適なネットワークソリューションは、レイテンシー、スループット要件、ジッター、および帯域幅に応じて異なります。ロケーションのオプションは、ユーザーまたはオンプレミスのリソースなどの物理的な制約に左右されます。これらの制約は、エッジロケーションまたはリソースの配置で相殺することができます。

ベストプラクティス:

  • ネットワーキングがパフォーマンスに与える影響を理解する: ネットワーク関連の意思決定がワークロードのパフォーマンスに与える影響を分析し、理解します。例えば、ネットワークレイテンシーは一般にユーザーエクスペリエンスに影響し、誤ったプロトコルを使用すると、過剰なオーバーヘッドによってネットワークキャパシティーが枯渇する可能性があります。

  • 使用可能なネットワーク機能を評価する: パフォーマンスの向上に役立つ可能性のあるクラウドのネットワーク機能を評価します。これらの機能の影響を、テスト、メトリクス、および分析を使って測定してください。たとえば、レイテンシー、ネットワーク距離、またはジッターを低減するために利用できるネットワークレベルの機能を活用します。

  • ハイブリッドワークロード用に適切なサイズの専用接続または VPN を選択する: オンプレミス通信の要件がある場合は、ワークロードパフォーマンスのために十分な帯域幅があることを確認します。帯域幅の要件によっては、単一の専用接続、または単一の VPN では十分でない場合があり、複数の接続間でトラフィックのロードバランシングを有効化する必要があります。

  • ロードバランシングと暗号化のオフロードを活用する: トラフィックを複数のリソースやサービスに分散して、クラウドによって提供される伸縮性をワークロードが活用できるようにします。また、パフォーマンスを向上させ、トラフィックを効率的に管理およびルーティングするために、ロードバランシングを使用して暗号化終了をオフロードすることもできます。

  • パフォーマンスを高めるネットワークプロトコルを選択する: ワークロードのパフォーマンスに対する影響に基づいて、システムとネットワーク間における通信のためのプロトコルを決定します。

  • ネットワーク要件に基づいてワークロードのロケーションを選択する: 利用可能なクラウドロケーションのオプションを使用して、ネットワークレイテンシーを低減したり、スループットを向上させたりします。ネットワークレイテンシーの低減、またはスループットの向上には、AWS リージョン、アベイラビリティーゾーン、プレイスメントグループ、および Outposts、Local Regions、Waveledge などのエッジロケーションを活用します。

  • メトリクスに基づいてネットワーク設定を最適化する: 収集および分析されたデータを使用して、ネットワーク設定の最適化に関する十分な知識に基づいた意思決定を行います。これらの変更の影響を測定して、その影響測定値を将来の意思決定に使用します。