

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

# 複数のプライマリノードを持つ Amazon EMR クラスターの起動
<a name="emr-plan-ha-launch"></a>

このトピックでは、複数のプライマリノードを持つ Amazon EMR クラスターを起動するための設定の詳細と例を示します。

**注記**  
Amazon EMR は、複数のプライマリノードを持つすべてのクラスターに対して自動終了保護を有効にし、クラスターの作成時に提供した自動終了設定をオーバーライドします。複数のプライマリノードを持つクラスターをシャットダウンするには、まずクラスター属性を変更して、終了保護を無効にする必要があります。手順については、「[複数のプライマリノードを持つ Amazon EMR クラスターの終了](#emr-plan-ha-launch-terminate)」を参照してください。

## 前提条件
<a name="emr-plan-ha-launch-config"></a>
+ パブリックおよびプライベート VPC サブネットの両方で、複数のプライマリノードを持つ Amazon EMR クラスターを起動できます。**EC2-Classic** はサポートされません。パブリックサブネットで複数のプライマリノードを持つ Amazon EMR クラスターを起動するには、コンソールで **[IPv4 の自動割り当て]** を選択するか、次のコマンドを実行して、このサブネットのインスタンスがパブリック IP アドレスを受け取ることができるようにする必要があります。{{22XXXX01}} をサブネット ID に置き換えます。

  ```
  aws ec2 modify-subnet-attribute --subnet-id subnet-{{22XXXX01}} --map-public-ip-on-launch					
  ```
+ 複数のプライマリノードを持つ Amazon EMR クラスターで Hive、Hue、または Oozie を実行するには、外部メタストアを作成する必要があります。詳細については、「[Hive の外部メタストアの設定](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-metastore-external-hive.html)」、「[Amazon RDS でのリモートデータベースと Hue の使用](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/hue-rds.html)」、または「[Apache Oozie](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-oozie.html)」を参照してください。
+ クラスターで Kerberos 認証を使用するには、外部 KDC を設定する必要があります。詳細については、「[Amazon EMR 上の Kerberos の設定](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos-configure.html)」を参照してください。

## 複数のプライマリノードを持つ Amazon EMR クラスターの起動
<a name="emr-plan-ha-launch-examples"></a>

インスタンスグループまたはインスタンスフリートを使用する場合、複数のプライマリノードを持つクラスターを起動できます。複数のプライマリノードを持つ*インスタンスグループ*を使用するときは、プライマリノードインスタンスグループにインスタンスカウント値 `3` を指定する必要があります。複数のプライマリノードで*インスタンスフリート*を使用する場合、プライマリインスタンスフリートには `3` の `TargetOnDemandCapacity`、`0` の `TargetSpotCapacity` を、そしてプライマリフリート用に設定する各インスタンスタイプには `1` の `WeightedCapacity` を指定する必要があります。

 次の例は、インスタンスグループとインスタンスフリートの両方にデフォルト AMI またはカスタム AMI を使用してクラスターを起動する方法を示します。

**注記**  
 AWS CLIを使用して複数のプライマリノードを持つ Amazon EMR クラスターを起動するときに、サブネット ID を指定する必要があります。次の例の {{22XXXX01}} および {{22XXXX02}} は、お使いのサブネット ID と置き換えてください。

------
#### [ Default AMI, instance groups ]

**Example 例 – デフォルト AMI を使用した、複数のプライマリノードを持つ Amazon EMR インスタンスグループクラスターの起動**  

```
aws emr create-cluster \
--name "ha-cluster" \
--release-label emr-6.15.0 \
--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \
--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark
```

------
#### [ Default AMI, instance fleets ]

**Example 例 – デフォルト AMI を使用した、複数のプライマリノードを持つ Amazon EMR インスタンスフリートクラスターの起動**  

```
aws emr create-cluster \
--name "ha-cluster" \
--release-label emr-6.15.0 \
--instance-fleets '[
    {
        "InstanceFleetType": "MASTER",
        "TargetOnDemandCapacity": 3,
        "TargetSpotCapacity": 0,
        "LaunchSpecifications": {
            "OnDemandSpecification": {
                "AllocationStrategy": "lowest-price"
            }
        },
        "InstanceTypeConfigs": [
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.xlarge"
            },
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.2xlarge"
            },
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.4xlarge"
            }
        ],
        "Name": "Master - 1"
    },
    {
        "InstanceFleetType": "CORE",
        "TargetOnDemandCapacity": 5,
        "TargetSpotCapacity": 0,
        "LaunchSpecifications": {
            "OnDemandSpecification": {
                "AllocationStrategy": "lowest-price"
            }
        },
        "InstanceTypeConfigs": [
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.xlarge"
            },
            {
                "WeightedCapacity": 2,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.2xlarge"
            },
            {
                "WeightedCapacity": 4,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.4xlarge"
            }
        ],
        "Name": "Core - 2"
    }
]' \
 --ec2-attributes '{"InstanceProfile":"EMR_EC2_DefaultRole","SubnetIds":["subnet-22XXXX01", "subnet-22XXXX02"]}' \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark
```

------
#### [ Custom AMI, instance groups ]

**Example 例 – カスタム AMI を使用した、複数のプライマリノードを持つ Amazon EMR インスタンスグループクラスターの起動**  

```
aws emr create-cluster \
--name "custom-ami-ha-cluster" \
--release-label emr-6.15.0 \
--instance-groups InstanceGroupType=MASTER,InstanceCount=3,InstanceType=m5.xlarge InstanceGroupType=CORE,InstanceCount=4,InstanceType=m5.xlarge \
--ec2-attributes KeyName=ec2_key_pair_name,InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-22XXXX01 \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark \
--custom-ami-id ami-MyAmiID
```

------
#### [ Custom AMI, instance fleets ]

**Example 例 – カスタム AMI を使用した、複数のプライマリノードを持つ Amazon EMR インスタンスフリートクラスターの起動**  

```
aws emr create-cluster \
--name "ha-cluster" \
--release-label emr-6.15.0 \
--instance-fleets '[
    {
        "InstanceFleetType": "MASTER",
        "TargetOnDemandCapacity": 3,
        "TargetSpotCapacity": 0,
        "LaunchSpecifications": {
            "OnDemandSpecification": {
                "AllocationStrategy": "lowest-price"
            }
        },
        "InstanceTypeConfigs": [
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.xlarge"
            },
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.2xlarge"
            },
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.4xlarge"
            }
        ],
        "Name": "Master - 1"
    },
    {
        "InstanceFleetType": "CORE",
        "TargetOnDemandCapacity": 5,
        "TargetSpotCapacity": 0,
        "LaunchSpecifications": {
            "OnDemandSpecification": {
                "AllocationStrategy": "lowest-price"
            }
        },
        "InstanceTypeConfigs": [
            {
                "WeightedCapacity": 1,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.xlarge"
            },
            {
                "WeightedCapacity": 2,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.2xlarge"
            },
            {
                "WeightedCapacity": 4,
                "BidPriceAsPercentageOfOnDemandPrice": 100,
                "InstanceType": "m5.4xlarge"
            }
        ],
        "Name": "Core - 2"
    }
]' \
--ec2-attributes '{"InstanceProfile":"EMR_EC2_DefaultRole","SubnetIds":["subnet-22XXXX01", "subnet-22XXXX02"]}' \
--service-role EMR_DefaultRole \
--applications Name=Hadoop Name=Spark \
--custom-ami-id ami-MyAmiID
```

------

## 複数のプライマリノードを持つ Amazon EMR クラスターの終了
<a name="emr-plan-ha-launch-terminate"></a>

複数のプライマリノードを持つ Amazon EMR クラスターを終了するには、次の例に示すように、クラスターの終了前に終了保護を無効にする必要があります。{{j-3KVTXXXXXX7UG}} をクラスター ID に置き換えます。

```
aws emr modify-cluster-attributes --cluster-id {{j-3KVTXXXXXX7UG}} --no-termination-protected
aws emr terminate-clusters --cluster-id {{j-3KVTXXXXXX7UG}}
```