RDS Aurora MySQL Snapshot to OCI HeatWave on AWSを試してみた

目次

はじめに

皆さん、実はAmazon S3のデータをHeatWave on AWSから直接アクセスできることはご存知でしょうか。

以前投稿したブログ記事のRDS Aurora MySQL Snapshot to OCI HeatWave Lakehouseを試してみたでは、Amazon AuroraのスナップショットデータをAmazon S3バケットからOCI Object Storageに一度コピーしてからHeatWave Lakehouseにインポートする必要がありました。

そこで、今回はAmazon S3にエクスポートしたAmazon Auroraのスナップショットデータを直接HeatWave on AWSにインポートする方法をご紹介いたします。

前提

本ブログ記事の前提条件は以下の通りです。

  • HeatWave on AWSのDBインスタンスが既に作成されていること
  • Amazon S3にAmazon RDSまたはAmazon AuroraにDBスナップショットがエクスポートされていること
    ※エクスポート方法については、以前投稿した記事をご参照ください。

手順

1. AWSでIAMポリシーとIAMロールを作成する

HeatWave on AWS上からAmazon S3上のエクスポートデータに直接アクセスする権限を設定します。
今回は AWS CLIコマンドを使って、IAMポリシーとIAMロールを作成します。

1-1. IAMポリシーの作成

必要な情報は以下の2つで、事前にAWS上で確認しておきます。

  • Amazon S3のバケットネーム
  • (Amazon S3内のオブジェクトをKMSキーで暗号している場合)KMSキーのARN

IAMポリシー作成コマンドは以下の通りです。
Amazon S3に対するIAMポリシーの作成についてドキュメントに記載されていますので、詳細はこちらをご覧ください。
https://dev.mysql.com/doc/heatwave-aws/en/heatwave-aws-creating-iam-policy.html

ここでは、S3MappingPolicyKNDというポリシー名で、ss-knd-test-bucketというAmazon S3バケットに対するデータインポートの許可とKMSキーに対するアクセス許可を設定しています。

実行すると以下の実行結果が表示され、IAMポリシーが作成されます。このあと、IAMロールにポリシーをアタッチするため、ARNを確認しておきます。また、ARNはOCI上で設定する際にも使用します。

1-2. IAMロールの作成

続いて、Amazon S3 バケットにアクセスするためのIAMロールの作成を行います。
IAMロール作成についてドキュメントに記載されていますので、詳細はこちらをご覧ください。
https://dev.mysql.com/doc/heatwave-aws/en/heatwave-aws-creating-iam-role.html

今回、IAMロール作成に必要なOCI情報は以下の2つで、事前にOCI上で確認しましょう。

  • テナンシのOCID
  • (特定のDB システムへのアクセスを許可する場合)HeatWave on AWSのリソースID

IAMロール作成コマンドは以下の通りです。
ここでは、s3-mapping-role-kndというロール名で、テナンシ内の特定のDBシステムへアクセス許可を設定しています。
< テナンシのOCID >/< HeatWave on AWSのリソースID >は、事前に確認した値で置き換えてください。

実行するとIAMロールが作成されます。このあとIAMロールにポリシーをアタッチするため、ロール名を確認しておきます。

1-3.IAMポリシーをIAMロールにアタッチする

以下のコマンドを実行します。
ここでは、ロール名:s3-mapping-role-kndに対して、ポリシー名:S3MappingPolicyKNDをアタッチしています。

以上でAWS側の設定は完了です。

2.HeatWave on AWSにIAMロールを設定する

続いて、OCI上でHeatwave on AWSに設定を行います。
HeatWave on AWSのDBインスタンスに接続し、「DBシステムの詳細画面」で「Edit DB System」をクリックします。

IAM roles項目の設定をします。
ここで「Custom Lakehouse role」を選択し、さきほど作成したAmazon S3アクセス用のIAMロールのARNを指定します。

3.AWS S3から直接HeatWave on AWSにスナップショットデータをインポートする

左側メニューから「Data Management」を選択し、画面上部で「Lakehouse Mapping」を選択します。

「Create Lakehouse Mapping画面」で以下のように設定し、HeatWave Lakehouseにスナップショットデータをインポートします。
今回はworldスキーマのcountryテーブルをインポートしてみます。

スナップショットデータが問題なくロードできると、インポート対象のテーブル定義と必要となるメモリー量の見積りが表示されます。

インポートが開始されると「Data Management画面」にデータのロード状況が表示されます。
下記のようにLoaded欄が100になれば、無事にインポート成功です。

念のため、きちんとインポートできているかどうかクエリを実行して確認してみます。
クエリ実行結果からもデータがインポートされていることが分かります。

まとめ

今回、Amazon S3のエクスポートデータを直接HeatWave on AWSへインポートできることを確認できました。

AWSにはAmazon Redshiftがありますが、今回ご紹介した手順で費用対効果/性能で優位性のあるHeatWave Lakehouseでデータ分析を行うことが可能になります。
こちらに関連した弊社ブログ記事で、Oracle社が公開する TPC-H 派生ベンチマークを基にHeatWaveとAmazon Redshiftを比較検証してみた記事もありますので、ぜひご参照いただければ幸いです。

この機会に、HeatWave on AWSとHeatWave Lakehouseをお試しください!

スマートスタイルTECHブログについて

スマートスタイルTECHブログでは、日頃OCIのサポート業務に従事している有資格者で構成された技術サポートチームがOCIに関する技術情報を発信しています。データベースのお困りごとはお気軽にご相談下さい。

よかったらシェアしてね!
  • URLをコピーしました!
目次