LOADコマンドを使用して、Amazon S3上のデータファイルからAmazon RDS for Db2 データベースのテーブルにロードが可能です。
当記事ではS3上のCSVファイルをAmazon RDS for Db2 データベースのテーブルにロードするための設定を説明します。
公式ドキュメント:「Amazon S3 からデータをロードして移行する」の内容に基づいています。
一度設定すればよい設定です。
設定1: IAM ポリシーを作成する
1-1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます
1-2. ナビゲーションペインで、[ポリシー] を選択し、[ポリシーの作成] を選択し、[JSON] を選択します
1-3. ポリシーの設定
Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合→ステップ 1: IAM ポリシーを作成する を参考にポリシーをJSONで入力します。(ビジュアル画面でやっても問題ないです)
以下は一例です。
<バケット名>にはCSVを置くバケット名を入れます。 この例ではAWS Key Management Serviceは使ってないのでkmsのアクセス許可は入っていません
- <バケット名>記載例
- arn:aws:s3:::bucketxxxx/*
- arn:aws:s3:::bucketxxxx
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "s3rds",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:AbortMultipartUpload",
"s3:ListBucket",
"s3:DeleteObject",
"s3:GetObjectVersion",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::<バケット名>/*",
"arn:aws:s3:::<バケット名>"
]
}
]
}
1-4. 入力が完了したら[次へ] を選択します
1-5. [ポリシー名] にこのポリシーの名前を入力し、必要に応じてその他の情報を入力し、完了したら「ポリシーの作成」を選択します
設定2: IAM ロールを作成して IAM ポリシーをアタッチ
2-1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます
2-2. ナビゲーションペインで、[ロール] を選択し、[ロールを作成] を選択します
2-3. [信頼されたエンティティタイプ] で、[AWS サービス] を選択します
2-4. [サービスまたはユースケース] で、[RDS] を選択し、[RDS - Add Role to Database] を選択し、最後に[次へ]をクリックします
2-5. [アクセス許可ポリシー] で、作成した IAM ポリシーの名前を検索して選択し、[次へ]をクリックします
2-6. [ロール名]に、ロールの名前を入力し、必要に応じてその他の情報を入力し、完了したら「ロールを作成」を選択します
設定3: RDS for Db2 DBインスタンスにIAMロールを追加
3-1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。
3-2. ナビゲーションペインで、[データベース] を選択し、対象のRDS for Db2 DB インスタンス名を選択します
3-3. 接続性とセキュリティ」 タブで、ページ下部の「IAM ロールを管理する」 セクションまでスクロールダウンします。
3-4. [このインスタンスに IAM ロールを追加] で、作成したロールを選択し、[機能] で、[S3_INTEGRATION] を選択し、最後に[ロールの追加] を選択します。
[このインスタンスの現在の IAM ロール]に追加されます。最初はステータスは「保留中」ですが、しばらくすると「アクティブ」に変わります。
設定4: Amazon S3 用の VPC ゲートウェイエンドポイントを作成
4-1. 使用するするRDS for Db2のVPC名を調べておきます
4-2. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。
4-3. ナビゲーションペインで、「エンドポイント」を選択します。
4-3. [エンドポイントを作成] を選択します。
4-5.「サービスカテゴリ」で、「AWSのサービス」 を選択します。
4-6.サービス で、検索窓にタイプ=Gateway
を入力し、com.amazonaws.region .s3 を選択します。
4-7.「VPC」 で、エンドポイントを作成するRDS for Db2の VPC を選択します。
4-8.「ルートテーブル」で、エンドポイントで使用するルートテーブルを選択します。
4-9.「ポリシー」で 「フルアクセス」 を選択
4-10. 一番下の「エンドポイントを作成」 を クリックします。
設定5: セキュリティグループにアウトバウンドルールを追加する
5-1. 使用するするRDS for Db2のセキュリティグループを表示します
5-2. アウトバウンドルールに、S3エンドポイントへのHTTP および HTTPS トラフィックを許可
「アウトバウンド」タブをクリックし、「アウトバウンドのルールを編集」をクリック
タイプ「HTTP」および「HTTPS」に 送信先 s3でフィルターし、プレフィックスリストからs3のエンドポイントを選択し設定する。
以上です。
あとは「Amazon RDS for Db2: S3からデータをロード」に進んでください。