Amazon Aurora PostgreSQL 互換エディションの DB クラスターで Amazon シンプルストレージソリューション (Amazon S3) 統合機能を有効にしたいと考えています。
簡単な説明
Amazon S3 バケットに保存されているデータを Aurora PostgreSQL と互換性のある DB クラスターのテーブルにインポートできます。まず、Aurora の PostgreSQL と互換性のある aws_s3 エクステンションをインストールします。このエクステンションは、S3 バケットからデータをインポートするために必要な機能を提供します。データは、カンマ区切り値 (CSV) ファイル、テキストファイル (txt)、または圧縮 (gzip) ファイルに保存できます。Amazon S3 から Aurora PostgreSQL 互換にインポートするには、データベースで PostgreSQL バージョン 10.7 以降を実行している必要があります。
Aurora DB クラスターを S3 バケットと統合するには:
- aws_s3 エクステンションをインストールします
- S3 バケットへのアクセス権をセットアップします
- Aurora クラスターにオプションを追加します
- psql クエリを使用して、データベースからデータをインポートまたはエクスポートします
解決方法
aws_s3 エクステンションをインストールします
データベースに接続できる aws_s3 拡張をインストールするには、次のコマンドを実行します。
postgres=> CREATE EXTENSION aws_s3 CASCADE;
aws_s3 がインストールされていることを確認するには、psql\ dx メタコマンドを使用します。または、任意の DB クライアントツールからこのクエリを使用できます:
select * from pg_available_extensions where installed_version is not null;
S3 バケットへのアクセス権をセットアップします
Aurora PostgreSQL と互換性のあるクラスターに Amazon S3 へのアクセスを許可するには、AWS アイデンティティおよびアクセス管理 (IAM) ポリシーを作成します。このポリシーは、DB クラスターが S3 バケットにアクセスできるようにするバケットとオブジェクトのアクセス許可を提供します。
作成する IAM ポリシーには、次の必須アクションを含めてください。これらのアクションにより、S3 バケットから DB クラスターにファイルを転送できます。
- s3:GetObject
- s3:ListBucket
- s3:PutObject
- s3:AbordMultipartUpload
詳細については、「Amazon S3 バケットへのアクセスを設定する」を参照してください。
Aurora クラスターにオプションを追加します
Amazon Relational Database Service (Amazon RDS) コンソールまたは AWS Command Line Interface (AWS CLI) (AWS コマンドラインインターフェイス (AWS CLI)) のいずれかを使用して、クラスターに IAM ロールを追加します。
コンソールの使用
- Amazon RDS コンソールにログインします。
- ナビゲーションペインから、変更する PostgreSQL クラスターを選択します。
- [Connectivity & security] (接続とセキュリティ) タブを選択します。
- [IAM ロールの管理] セクションの [このインスタンスに IAM ロールを追加] で、追加するロールを選択します。
- [機能] で [s3Export] を選択し、[ロールの追加] を選択します。
データベースからデータをインポートまたはエクスポートする
S3 バケットから PostgreSQL クラスターにデータをインポートするか、PostgreSQL クラスターから S3 バケットにデータをエクスポートします。
詳細については、「Amazon S3から Amazon Aurora PostgreSQL へのデータのエクスポートとインポート」を参照してください。
これらの手順を完了したら、 aws_s3.table_import_from_s3 を使用して Amazon S3 から Aurora PostgreSQL 互換クラスターにデータをインポートします。aws_s3.query_export_to_s3 関数を使用して Aurora PostgreSQL 互換クラスターから Amazon S3 にデータをエクスポートできます。