適切なサイズの Windows ワークロード - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

適切なサイズの Windows ワークロード

概要

適切なサイジングは、最も強力なコスト削減ツールの 1 つです。 は、AWS 最適化とライセンス評価 (AWS OLA) を使用して潜在的なワークロードを確認することから、 を使用して既存のワークロードを確認することまで、適切なサイジング情報を収集するためのさまざまな方法 AWS を提供しますAWS Cost Explorer

このセクションでは、 AWS Compute Optimizerを使用して Amazon EC2 の適切なサイジングの機会を特定する方法について説明します。Compute Optimizer は、次のタイプの AWS リソースの過剰プロビジョニングと過少プロビジョニングを防ぐのに役立ちます。

コスト最適化シナリオ

適切なサイジングの有効性を測定するのは難しい場合があります。これは、適切なサイジングの取り組みを特定のアプリケーション、チーム、または組織全体に向けることができるためです。たとえば、数千のインスタンスを に移行し AWS、フリートの 90% が Windows ワークロードで構成される組織を考えてみましょう。組織は Compute Optimizer を使用してフリートを分析し、アカウントと 全体で大幅なオーバープロビジョニングを検出できます AWS リージョン。その後、AWS Systems Manager 自動化を使用して、複数のメンテナンスウィンドウを通じてフリートのサイズを適正化できます。その結果、組織はフリートの 70% で適切なサイズのインスタンスタイプを調整し、35% のコスト削減を実現します。

次のダッシュボードは、このサンプル組織が Compute Optimizer の適切なサイジングレコメンデーションを戦略的に実装したため、数か月間に達成された削減額を示しています。その目的は、コロケーションデータセンターからの停止した移行を契約終了間近に再開するために、既存のワークロードを可能な限り効率的に運用することでした。

適切なサイジングによるコスト削減

コスト最適化の推奨事項

Compute Optimizer を使用してコストを最適化するには、次のステップを実行することをお勧めします。

  • Compute Optimizer を有効にする

  • Windows ノードのメモリメトリクス収集を有効にする

  • Compute Optimizer のレコメンデーションを使用する

  • 適切なサイジングのためにインスタンスにタグを付ける

  • AWS 請求ツールを操作するためにコスト配分タグを有効にする

  • Automation を使用して適切なサイジングレコメンデーションを実装 AWS Systems Manager する

  • 代替のサイズ変更方法を検討する

  • Cost Explorer でコストの前後を確認する

Compute Optimizer を有効にする

Compute Optimizer は、組織レベルまたは単一アカウントレベルで有効にできます AWS Organizations。組織全体の設定では、すべてのメンバーアカウントのフリート全体の新規および既存のインスタンスの継続的なレポートが提供されます。これにより、適切なサイジングをpoint-in-timeアクティビティではなく定期的なアクティビティにすることができます。

組織レベル

ほとんどの組織では、Compute Optimizer を使用する最も効率的な方法は組織レベルです。これにより、マルチアカウントとマルチリージョンで組織を可視化し、レビューのためにデータを 1 つのソースに一元化できます。組織レベルでこれを有効にするには、以下を実行します。

  1. 必要なアクセス許可を持つロールを使用して Organizations 管理アカウントにサインインし、この組織内のすべてのアカウントをオプトインすることを選択します。組織で、すべての機能が有効になっている必要があります。

  2. 管理アカウントを有効にしたら、アカウントにサインインし、他のすべてのメンバーアカウントを表示して、そのレコメンデーションを参照できます。

注記

Compute Optimizer の委任管理者アカウントを設定するのがベストプラクティスです。これにより、最小特権の原則を適用できます。これにより、組織全体のサービスへのアクセスを提供しながら、組織の管理アカウントへのアクセスを最小限に抑えることができます。

単一アカウントレベル

コストの高いアカウントをターゲットにしているが、 にアクセスできない場合は AWS Organizations、そのアカウントとリージョンで Compute Optimizer を有効にできます。オプトインプロセスの詳細については、Compute Optimizer ドキュメントの「 の開始方法 AWS Compute Optimizer」を参照してください。

Windows ノードのメモリメトリクス収集を有効にする

メモリメトリクスは、組織内で適切に情報に基づいた適切なサイジングのレコメンデーションを行うために必要な必須メトリクスを Compute Optimizer に提供します。これは、レコメンデーションを提供する前に CPU、メモリ、ネットワーク、ストレージの分析が行われているためです。

Windows EC2 インスタンスから Compute Optimizer にメモリメトリクスを渡すには、CloudWatch エージェントを有効にし、60 秒ごとにメモリメトリクスを収集するように設定する必要があります。CloudWatch でメモリメトリクスを使用する場合、追加料金はかかりません。

CloudWatch エージェントを有効にしてメモリメトリクスを設定する

ComputeOptimize.yml ファイルをダウンロードします。このファイルを使用して、アカウント内のすべてのインスタンスのメモリ収集を有効にできます。テンプレートファイルは、次のコンポーネントを生成します。

重要

このテンプレートを実行すると、インスタンスの既存の CloudWatch 設定が上書きされます。

次に、以下の手順を実行します。

  1. にサインイン AWS Management Console し、CloudFormation コンソールを開きます。

  2. ナビゲーションペインで、[Stacks] を選択します。

  3. [スタックの作成] を選択し、[既存のリソースを使用 (リソースのインポート)] を選択します。

  4. [次へ] を選択します。

  5. テンプレートリソースで、テンプレートファイルをアップロードを選択します。

  6. ファイルを選択し、ComputeOptimize.ymlファイルをアップロードします。

  7. [次へ] を選択します。

  8. スタックの詳細を指定ページで、スタック名にスタックの名前を入力し、次を選択します。

  9. リソースの特定 ページで、インポートするリソースの識別子値を入力します。

  10. リソースのインポートを選択します。

  11. スタックがデプロイされたら、出力タブを選択して、関連付けのキー、値、説明を見つけます。

関連付けの進行状況をモニタリングする

  1. CloudFormation スタックのデプロイが完了したら、Systems Manager コンソールを開きます。

  2. ナビゲーションペインのノード管理セクションで、ステートマネージャーを選択します。

  3. 関連付けページで、関連付けの関連付け ID を選択します。

  4. [Execution history (実行履歴の表示)] タブを選択します。

  5. 実行 ID 列で、関連付けの実行 ID を選択します。ステータスは Success である必要があります。

CloudWatch でメトリクスを表示する

メトリクスが CloudWatch に入力されるまで、少なくとも 5 分間待つことをお勧めします。

  1. CloudWatch コンソールを開きます。

  2. ナビゲーションペインで、メトリクスセクションを展開し、すべてのメトリクスを選択します。

  3. メトリクスが CWAgent 名前空間の下に表示されることを確認します。

注記

新しいインスタンスに設定を適用するには、関連付けを再実行します。

Compute Optimizer のレコメンデーションを使用する

1 つのアカウントと 1 つのリージョン内で適切なサイズ変更を行うことに焦点を当てた例を考えてみましょう。この例では、Compute Optimizer はすべてのアカウントで組織レベルで有効になっています。適切なサイジングは破壊的なプロセスであり、ほとんどの場合、数週間にわたるスケジュールされたメンテナンス期間中にアプリケーション所有者が正確に実行することに注意してください。

組織の管理アカウント内 (次の手順を参照) から Compute Optimizer に移動する場合は、調査するアカウントを選択できます。この例では、 us-east-1リージョンの 1 つのアカウントで 6 つのインスタンスが実行されています。6 つのインスタンスすべてが過剰にプロビジョニングされています。目標は、Compute Optimizer からの推奨事項に基づいてインスタンスのサイズを変更することです。

過剰にプロビジョニングされたインスタンスを特定し、レコメンデーションの詳細をエクスポートする

  1. にサインイン AWS Management Console し、Compute Optimizer コンソールを開きます。

  2. ナビゲーションペインで、ダッシュボードを選択してください。

  3. ダッシュボードページの検索ボックスに、Region=US East (N. Virginia) と入力します。次に、「Findings=Over-provisioned」と入力します。これらのフィルターを使用すると、us-east-1リージョン内のオーバープロビジョニングされたインスタンスをすべて表示できます。

  4. 過剰にプロビジョニングされた EC2 インスタンスの詳細なレコメンデーションを確認するには、EC2 インスタンスカードまで下に スクロールし、レコメンデーションの表示を選択します。

  5. エクスポートを選択し、後で使用するためにファイルを保存します。

  6. S3 バケットには、エクスポートファイルの送信先とする Amazon S3 バケットの名前を入力します。

    注記

    今後のレビューの推奨事項を保存するには、Compute Optimizer が各リージョンで に書き込むことができる S3 バケットが必要です。詳細については、Compute Optimizer ドキュメントの「 の Amazon S3 バケットポリシー AWS Compute Optimizer」を参照してください。

  7. フィルターのエクスポートセクションで、組織内のすべてのメンバーアカウントのレコメンデーションを含めるチェックボックスをオンにします。

  8. リソースタイプで、EC2 インスタンスを選択します。

  9. 含める列セクションで、すべて選択チェックボックスをオンにします。

  10. [エクスポート] を選択します。

レコメンデーションに基づいてインスタンスを選択する

インスタンスのレコメンデーションは、Compute Optimizer によって収集および分析されたパフォーマンスメトリクスに基づいています。最適なインスタンスを選択するには、インスタンスで実行されているワークロードに注意することが重要です。この例では、最新世代の Amazon EC2 R6iR5、および T3 インスタンスから選択できることを前提としています。T3 インスタンスはバースト可能で、ネットワーク帯域幅性能が低くなります。R5 インスタンスと R6 インスタンスは 1 時間あたりのコストが同じで、ほぼ同じです。ただし、R6 インスタンスはネットワーク帯域幅容量が大きく、最新世代のインテルプロセッサを搭載し、R5 と同じコンピューティングフットプリントを提供します。この例では、R6 はサイズ変更に最適なオプションです。

  1. Compute Optimizer コンソールで、ナビゲーションバーから EC2 インスタンスのレコメンデーションを選択します。このページでは、現在のインスタンスタイプと置き換える推奨オプションの比較を示します。

  2. 適切なサイズにするインスタンスの ID を取得するには、管理アカウントから Amazon S3 コンソールを開きます AWS Organizations。

  3. ナビゲーションペインでバケットを選択し、エクスポートした結果の保存に使用するバケットを選択します。

  4. オブジェクトタブで、オブジェクトリストからエクスポートファイルを選択し、ダウンロードを選択します。

  5. ファイルからインスタンス情報を抽出するには、Microsoft Excel のデータタブのテキストから列へのボタンを使用します。

    注記

    インスタンス IDs は Amazon リソースネーム (ARNs。必ず区切り文字を「/」に設定し、インスタンス ID を抽出します。または、スクリプトを記述するか、統合開発環境 (IDE) を使用して ARN をトリミングすることもできます。

  6. Excel で、OVER_PROVISIONED インスタンスのみを表示するように検出結果列をフィルタリングします。これらは、適切なサイジングの対象となるインスタンスです。

  7. 後で簡単にアクセスできるように、インスタンス IDsをテキストエディタに保存します。

適切なサイジングのためにインスタンスにタグを付ける

ワークロードのタグ付けは、 でリソースを整理するための強力なツールです AWS。タグを使用すると、コストをきめ細かく可視化し、チャージバックが容易になります。 AWS リソースにタグを追加するための戦略と方法の詳細については、 AWS AWS 「 リソースのタグ付けのベストプラクティス」を参照してください。この例では、AWS タグエディタを使用して、メンテナンスウィンドウ中にサイズ変更の対象となる過剰にプロビジョニングされたインスタンス間でタグ付けを調整することができます。このタグを使用して、変更前後のコストを表示することもできます。

  1. にサインイン AWS Management Console し、サイズ変更の対象となるインスタンスを含むアカウントのAWS Resource Groups コンソールを開きます。

  2. ナビゲーションバーのタグ付けセクションで、タグエディタを選択します。

  3. リージョンの場合は、ターゲットリージョンを選択します。

  4. リソースタイプで、AWS::EC2::Instance を選択します。

  5. [リソースを検索] を選択します。

  6. リソース検索結果ページで、適切なサイズにするすべてのインスタンスを選択し、選択したリソースのタグの管理を選択します。

  7. [タグを追加] を選択します。

  8. タグキーに、「ライツサイジング」と入力します。タグ値には、有効と入力します。次に、「レビュー」を選択し、タグの変更を適用します。

    注記

    チームやビジネスユニットなどの追加のメタデータを含めると、後で Cost Explorer でフィルタリングできます。

ユーザー定義タグを作成してリソースに適用した後、アクティベーションのためにタグがコスト配分タグページに表示されるまでに最大 24 時間かかる場合があります。アクティベーション用にタグを選択すると、タグがアクティブになるまでにさらに 24 時間かかる場合があります。

上級ユーザーの場合、ターゲットアカウントとリージョンAWS CloudShell内で を使用して複数のインスタンスにタグを付けることができます。例:

bash #!/bin/bash # Set variables TAG_KEY="rightsizing" TAG_VALUE="type-m5" # Get a list of instance IDs INSTANCE_IDS=$(aws ec2 describe-instances —query "Reservations[].Instances[].InstanceId" —output text) # Loop through each instance ID and add the tag for INSTANCE_ID in $INSTANCE_IDS; do aws ec2 create-tags —resources $INSTANCE_ID —tags Key=$TAG_KEY,Value=$TAG_VALUE done

AWS 請求ツールを操作するためのコスト配分タグを有効にする

ユーザー定義のコスト配分タグをアクティブ化することをお勧めします。これにより、 AWS 請求ツール (Cost Explorer や など) で Rightsizing タグが認識され、フィルタリングできるようになります AWS Cost and Usage Report。これを有効にしない場合、タグフィルタリングオプションとデータは使用できなくなります。コスト配分タグの使用の詳細については、 ドキュメントの「ユーザー定義のコスト配分タグのアクティブ化」を参照してください。 AWS Billing and Cost Management

  1. にサインイン AWS Management Console し、 AWS Billing コンソールを開きます。

  2. ナビゲーションペインの請求セクションで、コスト配分タグを選択します。

  3. ユーザー定義のコスト配分タグタブで、「ライツサイジング」と入力します。

  4. 適切なサイズ設定タグキーを選択し、アクティブ化を選択します。

24 時間後、Cost Explorer にタグが表示されます。

Systems Manager Automation を使用して適切なサイジングレコメンデーションを実装する

サイズ変更は、インスタンスを停止して開始する必要があるシナリオです。このシナリオでは、メンテナンスウィンドウでこの中断を処理し、独自のサイズ変更を処理するために異なるチームが必要になる場合があります。インスタンスタイプを変更する前に、Amazon EC2 ドキュメントの互換性のあるインスタンスタイプの考慮事項を確認してください。

このセクションのステップ例では、AWS-ResizeInstance という Systems Manager Automation ドキュメントを使用して、アカウントとリージョンごとに適切なサイジングレコメンデーションを実装します。このアプローチは、ほとんどの組織がさまざまな目的で異なるインスタンスタイプを必要とするため、ほとんどの組織で一般的です。同じAWS-ResizeInstanceオートメーションドキュメントを使用して、単一アカウントおよびマルチアカウントのデプロイをターゲットにすることもできます。

  1. にサインイン AWS Management Console し、Systems Manager コンソールを開きます。

  2. ナビゲーションペインの共有リソースセクションで、ドキュメントを選択します。

  3. 検索バーで AWS-ResizeInstance と入力し、検索結果から AWS-ResizeInstance を選択します。

  4. [Execute automation (自動化の実行)] を選択してください。

  5. 「オートメーションランブックの実行」ページで、「シンプル実行」を選択します。

  6. 入力パラメータセクションで、InstanceIdInstanceType を入力します。残りのデフォルト値はそのままにしておきます。

  7. 実行を選択し、オートメーションがインスタンスタイプを変更するステップを実行するのを 待ちます。

代替のサイズ変更方法を検討する

起動テンプレートを使用してインスタンスをデプロイする場合は、起動テンプレートを適切なサイズのインスタンスタイプで更新し、インスタンスの更新を実行してインスタンスを適切なサイズのバージョンに置き換えることができます。

複数のアカウントとリージョンで適切なサイジングプロセスを使用する場合は、カスタム Systems Manager Automation ドキュメントを作成する必要があります。このドキュメントでは、複数のインスタンスをパラメータとしてフィードし、ターゲットインスタンスを同じ送信先インスタンスタイプに移行できます (たとえば、ソースインスタンスタイプに関係なく、t3a.medium に移行するすべてのインスタンス)。

Cost Explorer でコストの前後を確認する

リソースのサイズが適切になったら、Cost Explorer を使用して、適切なサイズ設定タグを使用してコストの前後を表示できます。リソースタグを使用してコストを追跡できることを思い出してください。複数のタグレイヤーを使用することで、コストをきめ細かく可視化できます。このガイドで説明する例では、ライツサイジングタグを使用して、すべてのターゲットインスタンスに汎用タグを適用します。次に、チームタグを使用してリソースをさらに整理します。次のステップでは、アプリケーションタグを導入して、特定のアプリケーションを運用する際のコストへの影響をさらに示します。

次の図は、組織のタグ構造を示しています。

組織のタグ構造

運用チームが所有する本番稼働用ウェブサーバーのサイズに適したビジネスの例を考えてみましょう。Cost Explorer では、ライツサイジングタグは有効に設定され、チームタグはオペレーションに設定されます。この例では、適切なサイジング作業により、運用コストが 1 時間あたり 0.89 セントから 0.28 セントに削減されます。1 か月あたり 744 時間と仮定すると、適切なサイジング前の年間コストは 7,945.92 USD です。適切なサイジングの後、年間コストは 2,499.84 USD に削減されます。これにより、年間ワークロードコストが 68.5% 削減されます。これを大規模な組織全体に与えた影響を想像してみてください。これはサンプル環境で行われ、インスタンスはほとんどアイドル状態であることに注意してください。実稼働環境では、10~35% の節約ができます。

次に、エンジニアリングチームが所有する本番踏み台ホストの適切なサイジングの影響を検討してください。Cost Explorer では、ライツサイジングタグは有効に設定され、チームタグはエンジニアリングに設定されます。この例では、適切なサイジング作業により、コストが 1 時間あたり 0.75 セントから 0.44 セントに削減されます。1 か月あたり 744 時間と仮定すると、適切なサイジング前の年間コストは 6,696.00 USD です。適切なサイジングの後、年間コストは 3,928.32 USD に削減されます。

複数のタグを使用する場合は、データを詳細なコスト詳細に絞り込むことができます。この例では、チームタグはノイズを減らし、チームレベルで影響を表示できるようにします。Rightsizing タグが有効になっているため、そのタグが有効な値を持つインスタンス、または値が存在しないインスタンスをフィルタリングすることもできます。これにより、特に Cost Explorer レベルで管理アカウント (支払者) に表示される場合、適切なサイジング作業のグローバルビューを提供できます。このビューでは、すべてのアカウントとインスタンスを表示できます。

Rightsizing タグが有効に設定されている単一アカウントレベルでの例を考えてみましょう。  運用コストは 1 時間あたり 1.64 USD から 1 時間あたり 0.72 USD に減少します。1 か月あたり 744 時間と仮定すると、適切なサイジング前の年間コストは 14,641.92 USD です。適切なサイジングの後、年間コストは 6,428.16 USD に削減されます。これにより、このアカウントのコンピューティングコストが 56% 削減されます。

適切なサイジングジャーニーを開始する前に、次の点を考慮してください。

  • AWS には、コスト削減のための多くのオプションが用意されています。これには AWS OLA が含まれます。 は、移行する前にオンプレミスインスタンス AWS を確認します AWS。 AWS OLA は、適切なサイジングの推奨事項とライセンスガイダンスも提供します。

  • Savings Plans を購入する前に、適切なサイジングをすべて完了してください。これにより、Savings Plans コミットメントでの購入超過を回避できます。

レコメンデーション

次のステップを実行することをお勧めします。

  1. 既存のランドスケープを確認し、Amazon EBS gp2 ボリュームを gp3 ボリュームに変換することを検討してください。

  2. Savings Plans を確認します。

追加リソース