

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

# Amazon EMR の高度なスケーリング
<a name="managed-scaling-allocation-strategy-optimized"></a>

EC2 バージョン 7.0 の Amazon EMR 以降では、Advanced Scaling を活用してクラスターのリソース使用率を制御できます。Advanced Scaling では、ビジネスニーズに応じてリソースの使用率とパフォーマンスレベルを調整するための使用率パフォーマンススケールが導入されています。設定した値は、クラスターの重み付けをリソースの節約にするか、サービスレベルアグリーメント (SLA) の機密性の高いワークロードを処理するためにスケールアップするかを決定します。この場合、迅速な完了が不可欠です。スケーリング値が調整されると、マネージドスケーリングはインテントを解釈し、インテリジェントにスケーリングしてリソースを最適化します。マネージドスケーリングの詳細については、「[Configure managed scaling for Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/managed-scaling-configure.html)」を参照してください。

## 高度なスケーリング設定
<a name="managed-scaling-allocation-strategy-optimized-strategies"></a>

高度なスケーリングに設定した値は、クラスターを要件に合わせて最適化します。値の範囲は ****1～**100 です**。指定できる値は **1**、**25**、**50**、**75**、**100** です。インデックスをこれら以外の値に設定することにより、検証エラーが発生します。

スケーリング値はリソース使用率戦略にマッピングされます。以下のリストでは、これらのいくつかを定義します:
+ **使用率最適化 [1]** – この設定により、リソースのオーバープロビジョニングが防止されます。コストを低く抑え、効率的なリソース使用率を優先する場合は、低い値を使用します。これにより、クラスターのスケールアップが遅くなります。これは、ワークロードの急増が定期的に発生しており、リソースの急激な増加を望まない場合のユースケースに適しています。
+ **バランスを取る [50]** – リソース使用率とジョブパフォーマンスのバランスが取れます。この設定は、ほとんどのステージでランタイムが安定している安定したワークロードに適しています。また、実行時間が短いステージと長いステージが混在するワークロードにも適しています。どちらを選択するかわからない場合は、この設定から始めることをお勧めします。
+ **パフォーマンス最適化 [100]** – この戦略はパフォーマンスを優先します。クラスターは積極的にスケールアップされ、ジョブが迅速に完了し、パフォーマンス目標を達成します。パフォーマンス最適化は、高速実行が重要なサービスレベルアグリーメント (SLA) の機密性の高いワークロードに適しています。

**注記**  
使用可能な中間値は、クラスターの高度なスケーリング動作を微調整するために、戦略間の中間点を提供します。

## Advanced Scaling の利点
<a name="managed-scaling-allocation-strategy-optimized-benefits"></a>

データ量の変更、コストターゲットの調整、SLA 実装など、環境や要件にばらつきがあるので、クラスターのスケーリングは、目標を達成するためにクラスター設定を調整するのに役立ちます。その他の主な利点には以下が含まれます:
+ **きめ細かな制御の強化** – 使用率パフォーマンス設定の導入により、要件に応じてクラスターのスケーリング動作を簡単に調整できます。コンピューティングリソースの需要に合わせてスケールアップすることも、使用パターンに基づいてリソースを節約するためにスケールダウンすることもできます。
+ **コスト最適化の向上** – コスト目標をより簡単に満たす要件に応じて、使用率の低い値を選択できます。

## 最適化の開始方法
<a name="managed-scaling-allocation-strategy-optimized-getting-started"></a>

**セットアップと設定**

以下のステップを使用してパフォーマンスインデックスを設定し、スケーリング戦略を最適化します。

1. 次のコマンドは、使用率最適化 `[1]` スケーリング戦略を使用して既存のクラスターを更新します。

   ```
   aws emr put-managed-scaling-policy --cluster-id 'cluster-id' \
    --managed-scaling-policy '{
     "ComputeLimits": {
       "UnitType": "Instances",
       "MinimumCapacityUnits": 1,
       "MaximumCapacityUnits": 2,
       "MaximumOnDemandCapacityUnits": 2,
       "MaximumCoreCapacityUnits": 2
     },
     "ScalingStrategy": "ADVANCED",
     "UtilizationPerformanceIndex": "1"
   }' \
    --region "region-name"
   ```

   属性 `ScalingStrategy` と `UtilizationPerformanceIndex` は新しく、スケーリングの最適化に関連しています。マネージドスケーリングポリシーの `UtilizationPerformanceIndex` 属性に対応する値 (1、25、50、75、100) を設定することで、さまざまなスケーリング戦略を選択できます。

1. デフォルトのマネージドスケーリング戦略に戻すには、 属性 `ScalingStrategy` と `UtilizationPerformanceIndex` を含めずに `put-managed-scaling-policy` コマンドを実行します。(これはオプションです。) このサンプルでは、これを行う方法を示します:

   ```
   aws emr put-managed-scaling-policy \
   --cluster-id 'cluster-id' \
   --managed-scaling-policy '{"ComputeLimits":{"UnitType":"Instances","MinimumCapacityUnits":1,"MaximumCapacityUnits":2,"MaximumOnDemandCapacityUnits":2,"MaximumCoreCapacityUnits":2}}' \
   --region "region-name"
   ```

**モニタリングメトリクスを使用したクラスター使用率の追跡**

EMR バージョン 7.3.0 以降、Amazon EMR はメモリと仮想 CPU に関連する 4 つの新しいメトリクスを公開します。これらを使用して、スケーリング戦略全体でクラスター使用率を測定できます。これらのメトリクスはあらゆるユースケースで使用できますが、ここで提供される詳細を使用して高度なスケーリングをモニタリングできます。

使用できる便利なメトリクスは以下のとおりです:
+ **YarnContainersUsedMemoryGBSeconds** – YARN によって管理されるアプリケーションによって消費されるメモリの量。
+ **YarnContainersTotalMemoryGBSeconds** – クラスター内の YARN に割り当てられた合計メモリ容量。
+ **YarnNodesUsedVCPUSeconds** – YARN によって管理される各アプリケーションの合計 VCPU 秒。
+ **YarnNodesTotalVCPUSeconds** – YARN の準備が整っていない時間枠を含む、消費されたメモリの合計 VCPU 秒数。

 Amazon CloudWatch Logs Insights を使用してリソースメトリクスを分析できます。機能には、リソースの使用とスケーリングに固有のメトリクスを抽出するのに役立つ専用のクエリ言語が含まれています。

 Amazon CloudWatch コンソールで実行できる次のクエリは、メトリクス計算を使用して、消費メモリ (e2) の実行合計を合計メモリ (e3) の実行合計で割って平均メモリ使用率 (e1) を計算します。

```
{
    "metrics": [
        [ { "expression": "e2/e3", "label": "Average Mem Utilization", "id": "e1", "yAxis": "right" } ],
        [ { "expression": "RUNNING_SUM(m1)", "label": "RunningTotal-YarnContainersUsedMemoryGBSeconds", "id": "e2", "visible": false } ],
        [ { "expression": "RUNNING_SUM(m2)", "label": "RunningTotal-YarnContainersTotalMemoryGBSeconds", "id": "e3", "visible": false } ],
        [ "AWS_EMR_ManagedResize", "YarnContainersUsedMemoryGBSeconds", "ACCOUNT_ID", "793684541905", "COMPONENT", "ManagerService", "JOB_FLOW_ID", "cluster-id", { "id": "m1", "label": "YarnContainersUsedMemoryGBSeconds" } ],
        [ ".", "YarnContainersTotalMemoryGBSeconds", ".", ".", ".", ".", ".", ".", { "id": "m2", "label": "YarnContainersTotalMemoryGBSeconds" } ]
    ],
    "view": "timeSeries",
    "stacked": false,
    "region": "region",
    "period": 60,
    "stat": "Sum",
    "title": "Memory Utilization"
}
```

ログをクエリするには、 AWS コンソールで CloudWatch を選択します。CloudWatch Logs Insights の詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「[Analyzing log data with CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)」を参照してください。

以下の図は、サンプルクラスターのこれらのメトリクスを示しています:

![\[使用率統計を示すグラフ。\]](http://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/images/scaling_graph_EMR.png)


## 考慮事項と制限事項
<a name="managed-scaling-allocation-strategy-optimized-considerations"></a>
+ スケーリング戦略の有効性は、固有のワークロード特性とクラスター設定によって異なります。スケーリング設定を試して、ユースケースに最適なインデックス値を決定することをお勧めします。
+ Amazon EMR の高度なスケーリングは、バッチワークロードに特に適しています。SQL/データウェアハウスおよびストリーミングワークロードの場合、最適なパフォーマンスを得るには、デフォルトのマネージドスケーリング戦略を使用することをお勧めします。
+ Amazon EMR Advanced Scaling は、クラスターでノードラベル設定が有効になっている場合はサポートされていません。クラスター内でアドバンストスケーリングとノードラベル設定の両方が一緒に有効になっている場合、スケーリング動作はデフォルトのマネージドスケーリング設定が有効になっているかのようになります。
+ パフォーマンス最適化スケーリング戦略は、デフォルトのマネージドスケーリング戦略よりも長い期間、高いコンピューティングリソースを維持することで、ジョブの実行を高速化します。このモードでは、リソースの需要に合わせて迅速にスケールアップすることを優先するため、ジョブを迅速に完了できます。これにより、デフォルトの戦略と比較してコストが高くなる可能性があります。
+ クラスターがすでに最適化され、完全に利用されている場合、高度なスケーリングを有効にしても追加の利点が得られない可能性があります。状況によっては、高度なスケーリングを有効にすることにより、ワークロードの実行時間が長くなるため、コストが増加する可能性があります。このような場合は、デフォルトのマネージドスケーリング戦略を使用して、最適なリソース割り当てとコスト効率を確保することをお勧めします。
+ マネージドスケーリングのコンテキストでは、設定がパフォーマンス最適化 [**100**] から使用率最適化 [**1**] に調整されるため、実行時間の経過とともにリソース使用率に重点がシフトします。ただし、ワークロードの性質とクラスターのトポロジによって結果が異なる場合があることに注意してください。ユースケースに最適な結果を得るには、ワークロードでスケーリング戦略をテストして、最適な設定を決定することを強くお勧めします。
+ **PerformanceUtilizationIndex** は、以下の値のみを受け入れます:
  + **1**
  + **25**
  + **50**
  + **75**
  + **100**

  他の値を送信することにより、検証エラーが発生します。