

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

# Amazon EMR Serverless の使用を開始する
<a name="getting-started"></a>

このチュートリアルは、サンプルの Spark または Hive ワークロードをデプロイするときに EMR Serverless の使用を開始するために活用できます。独自のアプリケーションを作成、実行、デバッグします。このチュートリアルのほとんどの部分でデフォルトのオプションを示します。

EMR Serverless アプリケーションを起動する前に、以下のタスクを完了してください。

**Topics**
+ [EMR Serverless を使用するためのアクセス許可を付与する](#gs-permissions)
+ [EMR Serverless 用のストレージを準備する](#gs-prepare-storage)
+ [EMR Studio を作成してインタラクティブワークロードを実行する](#gs-interactive)
+ [ジョブランタイムロールを作成する](#gs-runtime-role)
+ [コンソールから EMR Serverless の使用を開始する](gs-console.md)
+ [の開始方法 AWS CLI](gs-cli.md)

## EMR Serverless を使用するためのアクセス許可を付与する
<a name="gs-permissions"></a>

EMR Serverless を使用するには、EMR Serverless のアクセス許可を付与するポリシーがアタッチされたユーザーまたは IAM ロールが必要です。ユーザーを作成し、作成したユーザーに適切なポリシーをアタッチするには、「[許可を付与する](setting-up.md#setting-up-iam)」の手順に従います。

## EMR Serverless 用のストレージを準備する
<a name="gs-prepare-storage"></a>

このチュートリアルでは、S3 バケットを使用して、EMR Serverless アプリケーションを使用して実行するサンプルの Spark または Hive ワークロードからの出力ファイルとログを保存します。バケットを作成するには、「*Amazon Simple Storage Service コンソールユーザーガイド*」の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)」の手順に従います。`amzn-s3-demo-bucket` への追加の参照は、新しく作成されたバケットの名前に置き換えます。

## EMR Studio を作成してインタラクティブワークロードを実行する
<a name="gs-interactive"></a>

EMR Serverless を使用して EMR Studio でホストされているノートブックを介してインタラクティブクエリを実行する場合は、ワークスペースを作成するには、S3 バケットと [EMR Serverless の最小サービスロール](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-service-role.html#emr-studio-service-role-serverless)を指定する必要があります。セットアップの手順については、「*Amazon EMR 管理ガイド*」の「[EMR Studio の設定](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-set-up.html)」を参照してください。インタラクティブワークロードの詳細については、「[EMR Studio を使用して EMR Serverless でインタラクティブワークロードを実行する](interactive-workloads.md)」を参照してください。

## ジョブランタイムロールを作成する
<a name="gs-runtime-role"></a>

EMR Serverless で実行されるジョブは、実行時に特定の AWS のサービス およびリソースに詳細なアクセス許可を提供するランタイムロールを使用します。このチュートリアルでは、パブリック S3 バケットがデータとスクリプトをホストします。バケット `amzn-s3-demo-bucket` は出力を保存します。

ジョブランタイムロールを設定するには、まず信頼ポリシーを使用してランタイムロールを作成し、EMR Serverless が新しいロールを使用できるようにします。次に、必要な S3 アクセスポリシーを対象のロールにアタッチします。次の手順ではこのプロセスについて説明します。

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

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールに移動します。

1. 左のナビゲーションペインの **[ポリシー]** を選択します。

1. **[ポリシーを作成]** を選択します。

1. 新しいタブで **[ポリシーの作成]** ページが開きます。**ポリシーエディタ**を Json として選択し、以下のポリシー JSON を貼り付けます。
**重要**  
以下のポリシーの `amzn-s3-demo-bucket` を [EMR Serverless 用のストレージを準備する](#gs-prepare-storage) で作成された実際のバケット名に置き換えます。これは S3 アクセスの基本ポリシーです。ジョブランタイムロールのその他の例については、「[Amazon EMR Serverless のジョブランタイムロール](security-iam-runtime-role.md)」を参照してください。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ReadAccessForEMRSamples",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::*.elasticmapreduce",
           "arn:aws:s3:::*.elasticmapreduce/*"
         ]
       },
       {
         "Sid": "FullAccessToOutputBucket",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:ListBucket",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket",
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       },
       {
         "Sid": "GlueCreateAndReadDataCatalog",
         "Effect": "Allow",
         "Action": [
           "glue:GetDatabase",
           "glue:CreateDatabase",
           "glue:GetDataBases",
           "glue:CreateTable",
           "glue:GetTable",
           "glue:UpdateTable",
           "glue:DeleteTable",
           "glue:GetTables",
           "glue:GetPartition",
           "glue:GetPartitions",
           "glue:CreatePartition",
           "glue:BatchCreatePartition",
           "glue:GetUserDefinedFunctions"
         ],
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

1. **[次へ]** を選択して、「`EMRServerlessS3AndGlueAccessPolicy`」や「**Create policy**」などのポリシーの名前を入力します 

1. IAM コンソールのナビゲーションペインで **[ロール]** をクリックします。

1. [**ロールの作成**] を選択してください。

1. ロールタイプには、**[カスタム信頼ポリシー]** を選択し、以下の信頼ポリシーを貼り付けます。これにより、Amazon EMR Serverless アプリケーションに送信されたジョブが AWS のサービス ユーザーに代わって他の にアクセスできるようになります。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "sts:AssumeRole"
         ],
         "Resource": "arn:aws:iam::123456789012:role/EMRServerlessExecutionRole",
         "Sid": "AllowSTSAssumerole"
       }
     ]
   }
   ```

------

1. **[次へ]** を選択して **[アクセス許可の追加]** ページに移動し、**[EMRServerlessS3AndGlueAccessPolicy]** を選択します。

1. **[名前、確認、および作成]** ページで、**[ロール名]** にロールの名前 (例: `EMRServerlessS3RuntimeRole`) を入力します。この IAM ロールを作成するには、**[ロールの作成]** を選択します。

------
#### [ CLI ]

1. IAM ロールに使用する信頼ポリシーが含まれている `emr-serverless-trust-policy.json` という名前のファイルを作成します。ファイルには次のポリシーが含まれます。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "EMRServerlessTrustPolicy",
         "Action": [
           "sts:AssumeRole"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:iam::123456789012:role/EMRServerlessExecutionRole"
       }
     ]
   }
   ```

------

1. IAM ロール (`EMRServerlessS3RuntimeRole`) を作成します。前のステップで作成した信頼ポリシーを使用します。

   ```
   aws iam create-role \
       --role-name EMRServerlessS3RuntimeRole \
       --assume-role-policy-document file://emr-serverless-trust-policy.json
   ```

   出力の ARN に注目してください。ジョブの送信中に新しいロールの ARN を使用します。この後、`job-role-arn` と呼ばれます。

1. ワークロードの IAM ポリシーを定義する `emr-sample-access-policy.json` という名前のファイルを作成します。これにより、パブリック S3 バケットに保存されているスクリプトとデータへの読み取りアクセス権と、`amzn-s3-demo-bucket` への読み取り/書き込みアクセス権が付与されます。
**重要**  
以下のポリシーの `amzn-s3-demo-bucket` を [EMR Serverless 用のストレージを準備する](#gs-prepare-storage) で作成された実際のバケット名に置き換えます。これは Glue AWS および S3 アクセスの基本ポリシーです。ジョブランタイムロールのその他の例については、「[Amazon EMR Serverless のジョブランタイムロール](security-iam-runtime-role.md)」を参照してください。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ReadAccessForEMRSamples",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::*.elasticmapreduce",
           "arn:aws:s3:::*.elasticmapreduce/*"
         ]
       },
       {
         "Sid": "FullAccessToOutputBucket",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:ListBucket",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket",
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       },
       {
         "Sid": "GlueCreateAndReadDataCatalog",
         "Effect": "Allow",
         "Action": [
           "glue:GetDatabase",
           "glue:CreateDatabase",
           "glue:GetDataBases",
           "glue:CreateTable",
           "glue:GetTable",
           "glue:UpdateTable",
           "glue:DeleteTable",
           "glue:GetTables",
           "glue:GetPartition",
           "glue:GetPartitions",
           "glue:CreatePartition",
           "glue:BatchCreatePartition",
           "glue:GetUserDefinedFunctions"
         ],
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

1. **ステップ 3** で作成したポリシーファイルを使用して、`EMRServerlessS3AndGlueAccessPolicy` という名前の IAM ポリシーを作成します。次のステップで新しいポリシーの ARN を使用するため、出力の ARN を書き留めます。

   ```
   aws iam create-policy \
       --policy-name EMRServerlessS3AndGlueAccessPolicy \
       --policy-document file://emr-sample-access-policy.json
   ```

   出力の新しいポリシーの ARN を書き留めます。次のステップで `policy-arn` に置き換えます。

1. IAM ポリシー `EMRServerlessS3AndGlueAccessPolicy` をジョブランタイムロール `EMRServerlessS3RuntimeRole` にアタッチします。

   ```
   aws iam attach-role-policy \
       --role-name EMRServerlessS3RuntimeRole \
       --policy-arn policy-arn
   ```

------