AWS Glue は、サーバーレスのデータ統合サービスであり、ユーザーが複数のソースからのデータを簡単に検出し、準備、移動、統合して、分析、機械学習、アプリケーション開発を支援することを目的としています。データ検出、最新のETL、データクレンジングと変換、そして一元化されたカタログといった包括的なデータ統合機能を単一のサービスで提供します。AWS Glueはインフラ管理が不要で、ETL、ELT、ストリーミングなど多様なワークロードをサポートし、あらゆるデータサイズやタイプに合わせてオンデマンドで拡張できます。
本記事ではOceanBaseクラウドデータベースを使用します。データはあるOceanBaseインスタンスから別のOceanBaseインスタンスへ移行します。増分移行を行う場合は、ETLスクリプトを作成し、スケジュールタスクと組み合わせる必要があります。
注意
- AWS GlueはパブリックIPアドレス経由でデータソースに接続できず、ネットワーク要件が非常に厳格です。そのため、AWS Glueを使用する際は、ネットワーク設定においてGlueタスクとOceanBaseインスタンスを同一のサブネットに配置する必要があります。キーとエンドポイントも同一ノード上に配置する必要があります。
- AWS Glueの使用はAWSの料金規則に従い、それに伴う費用が発生する可能性があります。続行する前に、公式Webサイトをご覧いただくか関連ドキュメントを確認し、その料金体系を確認・同意してください。同意しない場合は、操作を続けないでください。
Glueを使用してOceanBaseデータベースに接続する
以下の手順に従って、Glueを使用してOceanBaseデータベースに接続します:
EC2インスタンスを作成します。
AWS S3 VPCゲートウェイエンドポイントを設定します。
AWS GlueはパブリックIPアドレスを介してデータソースに接続できないため、本記事ではプライベートIPアドレスを使用してOceanBaseデータベースに接続します。GlueサブネットがAmazon S3 VPCゲートウェイエンドポイント、またはサブネットルーティングテーブル内のNATゲートウェイのルートを持っていることを確認してください。以下の手順に従って、AWS S3 VPCゲートウェイエンドポイントを設定します:
Amazon VPCコンソールを開きます。ナビゲーションウィンドウで、エンドポイントを選択します。
エンドポイントの作成を選択します。

サービス名には
com.amazonaws.us-east-1.s3を選択します。タイプ列がゲートウェイを示していることを確認します。注意
us-east-1は、選択したAWSリージョンに置き換えてください。
VPCでは、エンドポイントを作成するVPCを選択します。
ルーティングテーブルの設定では、システムがS3 VPCエンドポイントへのルートを自動的に追加します。

ポリシーでは、デフォルトのオプションである完全アクセスを維持します。
エンドポイントの作成を選択します。
エンドポイントの作成が完了すると、エンドポイントの詳細およびサブネット情報を確認できます。
Glue接続をテストします。
- AWS Glueコンソールを開き、JDBCを選択します。
- JDBCはプライベートIPを使用します。
- Network Optionsを設定します。サブネット情報には、2番目の手順でエンドポイント設定時に使用したサブネットからS3 VPCへのリンクを使用します。
- Nextをクリックして作成を完了します。
- 接続をテストします。
Glue ETLタスクの使用
以下の手順に従って、Glue ETLタスクを使用し、OceanBaseインスタンスに接続してデータを変換します。
OceanBaseソースデータベースを追加します。
- Connectionsをクリックし、JDBCタイプを選択します。
- OceanBaseデータソース情報を入力します。
- 作成を完了します。
- 接続をテストします。
OceanBaseターゲットデータベースを追加します。
本記事では、Crawlersを使用してターゲットデータベースのマッピングを行います。
- Crawlers->Create Crawlerをクリックします。
- Crawler情報を入力します。
- データソースを追加します。
- JDBC接続タイプとデータベーステーブルを選択します。
- Nextをクリックしてユーザーを実行します。
- テーブルマッピングの場所を追加します。
- データベースを選択して完了し、次へをクリックしてCrawlerの作成を完了します。
- ターゲットデータベースに事前にテーブルを作成します。
- Crawlerを実行し、テーブルマッピング情報を確認します。
ETLタスクを作成します。
- Visual ETLをクリックしてジョブを作成します。
- SourceタイプはMySQLを選択します。
- MySQLノードをクリックし、JDBC SourceとTable Nameを選択してデータをプレビューします。
- Targetsをクリックし、TargetタイプはMySQLを選択します。
- タスクを保存して実行します。
- 実行結果を確認します。