

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

# ステップ 1: インフラストラクチャと AWS Glue ジョブをブートストラップする
<a name="S3-tutorial-step1"></a>

このステップでは、 CLI `keyspaces-bulk-cli` を使用して、Amazon Keyspaces テーブルの Amazon S3 バケットへの自動データエクスポートに必要なすべての AWS リソースを作成して設定します AWS Glue。`bootstrap` コマンドは、すべてのセットアップタスクを 1 つのステップで実行します。

`bootstrap` コマンドは、次のタスクを自動化します。

1. を使用して **Amazon S3 バケット**と **IAM サービスロール**を作成します CloudFormation。

1. [Apache Spark Cassandra コネクタ](https://repo1.maven.org/maven2/com/datastax/spark/)、[SigV4 認証プラグイン](https://repo1.maven.org/maven2/software/aws/mcs/aws-sigv4-auth-cassandra-java-driver-plugin/)、および [Apache Spark 拡張機能をダウンロードします](https://repo1.maven.org/maven2/uk/co/gresearch/spark/)。

1. Maven を使用して [Keyspaces 再試行ポリシー](https://github.com/aws-samples/amazon-keyspaces-java-driver-helpers)ヘルパーをダウンロードして構築します。

1. すべての JAR ファイルと`keyspaces-application.conf`設定ファイルを Amazon S3 バケットにアップロードします。

1. エクスポート (Amazon S3 へのテーブルのエクスポート）、インポート (Amazon S3 からテーブルへのデータのインポート）、カウント (テーブル内の行数) の 3 つの AWS Glue ジョブをデプロイします。

1. 後続のコマンドで使用できるように、スタック設定をローカル`.keyspaces-bulk-cli.json`ファイルに保存します。

**インフラストラクチャと AWS Glue ジョブをブートストラップするには**

1. GitHub の [aws-glue](https://github.com/aws-samples/amazon-keyspaces-examples/tree/main/scala/datastax-v4/aws-glue) リポジトリからローカルマシンにファイルをクローンします。

   ```
   $ git clone https://github.com/aws-samples/amazon-keyspaces-examples.git
   $ cd amazon-keyspaces-examples/scala/datastax-v4/aws-glue
   ```

1. `bootstrap` コマンドを実行します。次の例では、デフォルトのスタック名を使用し`aksglue`、デプロイされたジョブのデフォルトとしてキースペースとテーブルを指定します。これらの値は、`export`、、 `import`などの個々のコマンドを実行するときに上書きできます`count`。

   ```
   $ ./keyspaces-bulk-cli bootstrap --stack {{aksglue}} --keyspace {{catalog}} --table {{book_awards}}
   ```

   次の表は、ブートストラップをカスタマイズするために渡すことができるオプションのパラメータを示しています。


<table>
<thead>
  <tr><th>オプション</th><th>デフォルト</th><th>説明</th></tr>
</thead>
<tbody>
  <tr><td><code>--stack</code></td><td><code>aksglue</code></td><td>CloudFormation スタック名のプレフィックス</td></tr>
  <tr><td><code>--bucket</code></td><td>スタックとアカウントから自動生成</td><td>アーティファクト用の Amazon S3 バケット</td></tr>
  <tr><td><code>--role-name</code></td><td>スタックから自動生成</td><td>IAM サービスロール名</td></tr>
  <tr><td><code>--keyspace</code></td><td><code>mykeyspace</code></td><td>デプロイされたジョブのデフォルトキースペース</td></tr>
  <tr><td><code>--table</code></td><td><code>mytable</code></td><td>デプロイされたジョブのデフォルトテーブル</td></tr>
  <tr><td><code>--s3-uri</code></td><td><code>s3://{bucket}/export</code></td><td>エクスポートされたデータのデフォルトの Amazon S3 パス</td></tr>
  <tr><td><code>--format</code></td><td><code>parquet</code></td><td>デフォルトのデータ形式</td></tr>
  <tr><td><code>--region</code></td><td> AWS 設定から</td><td>AWS リージョン</td></tr>
  <tr><td><code>--profile</code></td><td> AWS 設定から</td><td>AWS 名前付きプロファイル</td></tr>
</tbody>
</table>


   ブートストラップによって作成された Amazon S3 バケットが存在することを確認するには、次の AWS CLI コマンドを使用します。{{YOURACCOUNTID}} を自分の AWS アカウント ID に置き換えます。

   ```
   $ aws s3 ls s3://amazon-keyspaces-bulk-cli-{{aksglue}}-{{YOURACCOUNTID}}
   ```

   コマンドの出力は次のようになります。

   ```
                              PRE conf/
                              PRE jars/
                              PRE scripts/
   ```

    AWS Glue エクスポートジョブがデプロイされたことを確認するには、次のコマンドを使用できます。

   ```
   $ aws glue list-jobs
   ```

   出力には、デプロイされたジョブが一覧表示されます。

   ```
   {
       "JobNames": [
           "AmazonKeyspacesExportToS3-aksglue",
           "AmazonKeyspacesImportFromS3-aksglue",
           "AmazonKeyspacesCount-aksglue"
       ]
   }
   ```

 CloudFormation スタックプロセスが失敗した場合、失敗したスタックに関する詳細なエラー情報を CloudFormation コンソールで確認できます。再試行するには、 を使用して失敗したスタックを削除し`aws cloudformation delete-stack --stack-name {{aksglue}}`、根本的な問題を修正して、ブートストラップコマンドを再度実行します。ブートストラップコマンドはべき等であり、既に存在するリソースをスキップします。

ブートストラップが完了し、すべてのリソースが作成されたら、 に進みます[ステップ 2: エクスポートジョブを実行する](S3-tutorial-step2.md)。