

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

# 実行中の Amazon EMR クラスターのサイズを手動で変更する
<a name="emr-manage-resize"></a>

、、または Amazon EMR API を使用して AWS マネジメントコンソール AWS CLI、実行中のクラスター内のコアおよびタスクインスタンスグループとインスタンスフリートからインスタンスを追加および削除できます。クラスターがインスタンスグループを使用する場合、明示的にインスタンス数を変更します。クラスターでインスタンスフリートを使用する場合、オンデマンドインスタンスとスポットインスタンスのターゲットユニットを変更できます。次に、インスタンスフリートは新しいターゲットに合わせてインスタンスを追加または削除します。詳細については、「[インスタンスフリートオプション](emr-instance-fleet.md#emr-instance-fleet-options)」を参照してください。アプリケーションは、インスタンスが利用可能になったらすぐに、新しくプロビジョニングされた Amazon EC2 インスタンスを使用してノードをホストできます。インスタンスを削除すると、Amazon EMR はジョブを中断しない方法でタスクを終了し、データ損失を防止します。詳細については、「[タスクの完了時に終了](emr-scaledown-behavior.md#emr-scaledown-terminate-task)」を参照してください。

## コンソールを使用してクラスターのサイズを変更する
<a name="resize-console"></a>

Amazon EMR コンソールを使用して、実行中のクラスターのサイズを変更できます。

------
#### [ Console ]

**新しいコンソールを使用して既存のクラスターのインスタンス数を変更するには**

1. にサインインし AWS マネジメントコンソール、[https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr) で Amazon EMR コンソールを開きます。

1. 左側のナビゲーションペインの **[EMR on EC2]** で **[クラスター]** を選択し、更新するクラスターを選択します。クラスターは実行中である必要があります。プロビジョニングしているクラスターや終了したクラスターのサイズを変更することはできません。

1. クラスターの詳細ページの **[インスタンス]** タブで、**[インスタンスグループ]** パネルを表示します。

1. 既存のインスタンスグループのサイズを変更するには、サイズを変更するコアインスタンスグループまたはタスクインスタンスグループの横にあるラジオボタンを選択し、**[インスタンスグループのサイズを変更]** を選択します。インスタンスグループの新しいインスタンス数を指定し、**[サイズ変更]** を選択します。
**注記**  
実行中のインスタンスグループのサイズを縮小することを選択した場合、Amazon EMR はデータ損失を最小限に抑えるため、グループから削除するインスタンスをインテリジェントに選択します。サイズ変更アクションをより細かく管理するには、インスタンスグループの **[ID]** を選択し、削除するインスタンスを選択して、**[削除]** オプションを使用します。インテリジェントなスケールダウン動作の詳細については、「[Amazon EMR クラスターのクラスタースケールダウンオプション](emr-scaledown-behavior.md)」を参照してください。

1. サイズ変更アクションをキャンセルする場合は、ステータスが **[サイズ変更中]** のインスタンスグループのラジオボタンを選択し、アクションのリストから **[サイズ変更を停止]** を選択します。

1. ワークロードの増加に応じて 1 つまたは複数のタスクインスタンスグループをクラスターに追加するには、リストアクションから **[タスクインスタンスグループを追加]** を選択します。Amazon EC2 インスタンスタイプを選択し、タスクグループのインスタンス数を入力して、**[タスクインスタンスグループを追加]** を選択すると、クラスターの **[インスタンスグループ]** パネルに戻ります。

------

ノードの数を変更すると、インスタンスグループの [**Status (ステータス)**] が更新されます。変更リクエストが完了すると、[**Status (ステータス)**] が [**Running (実行中)**] になります。

## を使用してクラスターのサイズを変更する AWS CLI
<a name="ResizingParameters"></a>

を使用して AWS CLI 、実行中のクラスターのサイズを変更できます。タスクノードの数は増減することができ、実行中のクラスターのコアノードの数を増やすことができます。 AWS CLI または API を使用して、コアインスタンスグループのインスタンスをシャットダウンすることもできます。そうする場合は、注意が必要です。コアインスタンスグループのインスタンスをシャッドダウンすると、データが失われる可能性があり、インスタンスは自動的に置換されません。

コアグループおよびタスクグループのサイズの変更以外に、 AWS CLIを使用して、実行中のクラスターに 1 つ以上のタスクインスタンスグループを追加することもできます。<a name="IncreaseDecreaseNodesawscli"></a>

**を使用してインスタンス数を変更してクラスターのサイズを変更するには AWS CLI**

コアグループまたはタスクグループにインスタンスを追加でき、 `InstanceCount` パラメータを使用して サブコマンドを使用して AWS CLI `modify-instance-groups`タスクグループからインスタンスを削除できます。コアグループまたはタスクグループにインスタンスを追加するには、`InstanceCount` を増やします。タスクグループのインスタンス数を減らすには、`InstanceCount` を減らします。タスクグループのインスタンス数を 0 に変更すると、すべてのインスタンスが削除されますが、インスタンスグループは削除されません。
+ タスクインスタンスグループのインスタンス数を 3 個から 4 個に増やすには、次のコマンドを入力し、{{ig-31JXXXXXXBTO}} をインスタンスグループ ID に置き換えます。

  ```
  aws emr modify-instance-groups --instance-groups InstanceGroupId={{ig-31JXXXXXXBTO}},InstanceCount={{4}}
  ```

  `InstanceGroupId` を取得するには、`describe-cluster` サブコマンドを使用します。出力は、各インスタンスグループの ID が含まれている、`Cluster` という名前の JSON オブジェクトです。このコマンドを使用するには、クラスター ID が必要です (`aws emr list-clusters` コマンドまたはコンソールを使用して取得できます)。インスタンスグループ ID を取得するには、次のコマンドを入力し、{{j-2AXXXXXXGAPLF}} をクラスター ID に置き換えます。

  ```
  aws emr describe-cluster --cluster-id {{j-2AXXXXXXGAPLF}}
  ```

  では AWS CLI、 `--modify-instance-groups`サブコマンドを使用してコアインスタンスグループのインスタンスを終了することもできます。
**警告**  
`EC2InstanceIdsToTerminate` の指定は注意して行う必要があります。インスタンスは、そこで実行中のアプリケーションのステータスにかかわらず即時削除され、自動的には置き換えられません。これは、クラスターの [**Scale down behavior**] 設定とは無関係です。この方法でインスタンスを削除すると、データ損失や、予測不可能なクラスター動作が発生する可能性があります。

  特定のインスタンスを終了するには、インスタンスグループ ID (`aws emr describe-cluster --cluster-id` サブコマンドによって返されます) とインスタンス ID（`aws emr list-instances --cluster-id` サブコマンドによって返されます）が必要です。次のコマンドを入力し、{{ig-6RXXXXXX07SA}} をインスタンスグループ ID に置き換え、{{i-f9XXXXf2}} をインスタンス ID に置き換えます。

  ```
  1. aws emr modify-instance-groups --instance-groups InstanceGroupId={{ig-6RXXXXXX07SA}},EC2InstanceIdsToTerminate={{i-f9XXXXf2}}
  ```

  での Amazon EMR コマンドの使用の詳細については AWS CLI、「」を参照してください[https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)。

**を使用してタスクインスタンスグループを追加してクラスターのサイズを変更するには AWS CLI**

では AWS CLI、 `--add-instance-groups`サブコマンドを使用して 1～48 個のタスクインスタンスグループをクラスターに追加できます。タスクインスタンスグループは、プライマリインスタンスグループとコアインスタンスグループが含まれるクラスターにのみ追加できます。を使用すると AWS CLI、 `--add-instance-groups`サブコマンドを使用するたびに最大 5 つのタスクインスタンスグループを追加できます。

1. クラスターに 1 つのタスクインスタンスグループを追加するには、次のコマンドを入力し、{{j-JXBXXXXXX37R}} をクラスター ID に置き換えます。

   ```
   1. aws emr add-instance-groups --cluster-id {{j-JXBXXXXXX37R}} --instance-groups InstanceCount={{6}},InstanceGroupType={{task}},InstanceType={{m5.xlarge}}
   ```

1. クラスターに複数のタスクインスタンスグループを追加するには、次のコマンドを入力し、{{j-JXBXXXXXX37R}} をクラスター ID に置き換えます。1 つのコマンドで最大 5 個のタスクインスタンスグループを追加できます。

   ```
   aws emr add-instance-groups --cluster-id {{j-JXBXXXXXX37R}} --instance-groups InstanceCount={{6}},InstanceGroupType={{task}},InstanceType={{m5.xlarge}} InstanceCount={{10}},InstanceGroupType={{task}},InstanceType={{m5.xlarge}}
   ```

   での Amazon EMR コマンドの使用の詳細については AWS CLI、「」を参照してください[https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)。

## サイズ変更を中断する
<a name="interruptible-resize"></a>

Amazon EMR バージョン 4.1.0 以降を使用して、既存のサイズ変更操作中に、サイズ変更を実行できます。さらに、既に提出されたサイズ変更リクエストを中止したり、新規リクエストを提出して先のリクエストの処理が終了するのを待たずに上書きすることもできます。また、既存のサイズ変更をコンソールから中止することも、クラスターのターゲット数を現在の数とした `ModifyInstanceGroups` API 呼び出しを使用して中止することも可能です。

以下のスクリーンショットには、[**Stop**] を選択することで中止することのできる、サイズ変更中のタスクインスタンスグループが示されています。

![サイズ変更または停止のオプションを含むサイズ変更ステータスを示すタスクインスタンスグループ。](http://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/images/resize-stop.png)


**を使用してサイズ変更を中断するには AWS CLI**

を使用して、 `modify-instance-groups`サブコマンドでサイズ変更 AWS CLI を停止できます。インスタンスグループに 6 つのインスタンスがあり、これを 10 に増やしたいとします。そして、その後このリクエストをキャンセルしたいとします:
+ 最初のリクエスト:

  ```
  aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-{{myInstanceGroupId}},InstanceCount=10
  ```

  最初のリクエストを中止する 2 番目のリクエスト:

  ```
  aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-{{myInstanceGroupId}},InstanceCount=6
  ```

**注記**  
この処理は非同期であるため、後から申請したリクエストが反映される前に、以前の API リクエストに関したインスタンスの数の変更が表示される場合があります。サイズを縮小する場合、現行のノードで作業中のインスタンスグループのサイズは、それらのノードにおける作業が完了するまで縮小されないことがあります。

## 停止状態
<a name="emr-manage-resizeSuspended"></a>

新しいクラスターノードを起動しようとしているときに、多数のエラーが発生すると、インスタンスグループが停止状態になります。たとえば、ブートストラップアクションの実行中に新しいノードが失敗した場合、インスタンスグループは *SUSPENDED* 状態になり、新しいノードのプロビジョニングが続行されなくなります。基本となる問題を解決したら、クラスターのインスタンスグループで必要な数のノードをリセットしてください。その後、インスタンスグループはノードの割り当てを再開します。インスタンスグループを変更すると、Amazon EMR は再度ノードをプロビジョニングしようとします。実行中のノードについては再開または終了しません。

では AWS CLI、 `list-instances` サブコマンドは、 `describe-cluster` サブコマンドと同様に、すべてのインスタンスとその状態を返します。Amazon EMR によってインスタンスグループのエラーが検出されると、グループの状態が `SUSPENDED` に変更されます。

**を使用して SUSPENDED 状態のクラスターをリセットするには AWS CLI**

クラスター内のインスタンスの状態を表示するには、`describe-cluster` サブコマンドを入力し、`--cluster-id` パラメータを指定します。
+ クラスター内のすべてのインスタンスとインスタンスグループについての情報を表示するには、次のコマンドを入力し、{{j-3KVXXXXXXY7UG}} をクラスター ID に置き換えます。

  ```
  1. aws emr describe-cluster --cluster-id {{j-3KVXXXXXXY7UG}}
  ```

  出力には、インスタンスグループとインスタンスの状態に関する情報が表示されます:

  ```
   1. {
   2.     "Cluster": {
   3.         "Status": {
   4.             "Timeline": {
   5.                 "ReadyDateTime": 1413187781.245,
   6.                 "CreationDateTime": 1413187405.356
   7.             },
   8.             "State": "WAITING",
   9.             "StateChangeReason": {
  10.                 "Message": "Waiting after step completed"
  11.             }
  12.         },
  13.         "Ec2InstanceAttributes": {
  14.             "Ec2AvailabilityZone": "us-west-2b"
  15.         },
  16.         "Name": "Development Cluster",
  17.         "Tags": [],
  18.         "TerminationProtected": false,
  19.         "RunningAmiVersion": "3.2.1",
  20.         "NormalizedInstanceHours": 16,
  21.         "InstanceGroups": [
  22.             {
  23.                 "RequestedInstanceCount": 1,
  24.                 "Status": {
  25.                     "Timeline": {
  26.                         "ReadyDateTime": 1413187775.749,
  27.                         "CreationDateTime": 1413187405.357
  28.                     },
  29.                     "State": "RUNNING",
  30.                     "StateChangeReason": {
  31.                         "Message": ""
  32.                     }
  33.                 },
  34.                 "Name": "MASTER",
  35.                 "InstanceGroupType": "MASTER",
  36.                 "InstanceType": "m5.xlarge",
  37.                 "Id": "ig-3ETXXXXXXFYV8",
  38.                 "Market": "ON_DEMAND",
  39.                 "RunningInstanceCount": 1
  40.             },
  41.             {
  42.                 "RequestedInstanceCount": 1,
  43.                 "Status": {
  44.                     "Timeline": {
  45.                         "ReadyDateTime": 1413187781.301,
  46.                         "CreationDateTime": 1413187405.357
  47.                     },
  48.                     "State": "RUNNING",
  49.                     "StateChangeReason": {
  50.                         "Message": ""
  51.                     }
  52.                 },
  53.                 "Name": "CORE",
  54.                 "InstanceGroupType": "CORE",
  55.                 "InstanceType": "m5.xlarge",
  56.                 "Id": "ig-3SUXXXXXXQ9ZM",
  57.                 "Market": "ON_DEMAND",
  58.                 "RunningInstanceCount": 1
  59.             }
  60. ...
  61. }
  ```

  特定のインスタンスグループについての情報を表示するには、`list-instances` サブコマンドを入力し、`--cluster-id` および `--instance-group-types` パラメータを指定します。プライマリ、コアまたはタスクグループの情報を表示できます。

  ```
  1. aws emr list-instances --cluster-id {{j-3KVXXXXXXY7UG}} --instance-group-types {{"CORE"}}
  ```

  `modify-instance-groups` 状態のクラスターをリセットするには、`--instance-groups` サブコマンドを使用し、`SUSPENDED` パラメータを指定します。インスタンスグループ ID は、`describe-cluster` サブコマンドによって返されます。

  ```
  1. aws emr modify-instance-groups --instance-groups InstanceGroupId={{ig-3SUXXXXXXQ9ZM}},InstanceCount={{3}}
  ```

## クラスターサイズを縮小する場合の考慮事項
<a name="resize-considerations"></a>

実行中のクラスターのサイズを縮小する場合は、以下の Amazon EMR の動作とベストプラクティスについて考慮してください。
+ 進行中のジョブへの影響を減らすため、Amazon EMR は削除するインスタンスをインテリジェントに選択します。クラスターのスケールダウン動作の詳細については、「Amazon EMR 管理ガイド」の「[タスクの完了時に終了](emr-scaledown-behavior.md#emr-scaledown-terminate-task)」を参照してください。
+ クラスターのサイズをスケールダウンすると、Amazon EMR は削除したインスタンスから残っているインスタンスにデータをコピーします。グループに残っているインスタンスに、このデータを保存するのに十分なストレージ容量があることを確認してください。
+ Amazon EMR は、グループ内のインスタンスの HDFS を廃止しようと試みます。クラスターのサイズを縮小する前に、HDFS への書き込み I/O を最小限に抑えることをお勧めします。
+ クラスターのサイズ縮小時に最も細かく管理するには、コンソールでクラスターを表示して **[インスタンス]** タブに移動します。サイズを変更するインスタンスグループの **[ID]** を選択します。次に、削除する特定のインスタンスに対して **[削除]** オプションを使用します。