クラウド同上

AWS Redshift から GCP BigQuery にデータをマイグレーションしてみた(GUI で簡単)

Author
Toru
Lv:24 Exp:94647

クラウドエースの IoT 大好きなテニスプレイヤー

1. BigQuery の転送(マイグレーション)機能に AWS の Redshift が追加されました


AWS の Redshift にあるデータを、AWS S3 で .gz でまとめて、GCP の BigQuery に転送します。もちろん、データは Redshift にもあるので消えることはありません。方法は以下のサイト(チュートリアル)を参考に実施すれば GUI だけで転送できます。AWS と GCP を触ったことがある方であれば30分でテストが完了します。テスト完了後、 Redshift のクラスターなど課金が発生する部分はすみやかに削除しましょう。

Migrating data from Amazon Redshift
Amazon Redshift の使用開始

Redshift は「ステップ 5: サンプルクラスターへの接続とクエリの実行まで」実施するだけで大丈夫です。

2.前提条件 / 作業手順


上記のチュートリアルのとおり進めれば良いのですが「悩むかもしれない箇所」を Tips として本記事に記載します。AWS と GCP 両方の画面を追加しているので、上手くいかない場合は参考にしてみてください。

前提条件


1. GCP のアカウントがあり、プロジェクトを作成していること
 (無料利用枠を使って実施可能)
2. AWS のアカウントがあること
 (無料利用枠を使って実施可能)

作業手順


1. GCP の BigQuery Data Transfer Service API を有効にする。
2. GCP の BigQuery にリソース(スキーマ)を作成する。
3. AWS の S3 バケットを作成し、アクセスキーとシークレットアクセスキーを取得する。
4. AWS IAM で必要な権限をユーザーに追加する。
5. AWS Redshift を起動する。
 (VPC は Redshift を起動中に作成可能。事前に VPC を準備する必要はない)
6. AWS Redshift にデータを挿入する。
 (チュートリアルのとおり実施)
7. AWS VPC にあるセキュリティグループで GCP が指定する IP とポート番号を追加する。
8. GCP の BigQuery 転送(BigQuery Data Transfer Service)に転送情報を入力する。
9. GCP の BigQuery で Redshift にあるデータが追加されていることを確認する。
10. 作業が完了したら AWS と GCP の各サービスを削除または停止する。
 (課金されないため)

3.GCP の BigQuery Data Transfer Service API を有効にする


Migrating data from Amazon Redshift のとおり、有効すると以下の画面となります。

4.GCP の BigQuery にリソース(スキーマ)を作成する


Migrating data from Amazon Redshift のとおり、BigQueryデータセットを作成します。テーブルを作成する必要はありません。今回は以下の画像のとおり、データセットを作成してみました。

5.AWS の S3 バケットを作成し、アクセスキーとシークレットアクセスキーを取得する


ここが少し悩むところかもしれませんが、S3 バケットだけを作ります。フォルダを作成しても作成しなくても問題ありません。RedShift から BiqQuery に転送した後、フォルダが自動的に作られ .gz ファイルが作成されます。これは転送の際に作成されたものです。

次にS3 バケットにアクセスするためのアクセスキーとシークレットアクセスキーを AWS IAM の「ユーザー追加」で取得しましょう。シークレットアクセスキーは1回しか取得できないので注意してください。以下の2つの画面を参考にしてみてください。

6.AWS IAM で必要な権限をユーザーに追加する


AWS IAM で「ユーザー」に権限を付与しましょう。これはチュートリアルのとおりです。以下の画面で問題ないかどうか確認してみてください。

7.AWS Redshift を起動する


いよいよ AWS Redshift クラスターを起動します。これもチュートリアルとおり非常に簡単に起動はできますが注意点を以下に記載します。

  1. BigQuery の設定時に必要な情報「マスターユーザー名」「マスターユーザーのパスワード」は記録しておくこと。
  2. VPC は Redshift クラスター設定時に作成できます。(AWS に新しいアカウントでログインした場合、デフォルトの VPC がないためです。AWS を既に使っている皆様は VPC を作成しているので混乱しないようにしましょう)
  3. IAM ロールを選択ができない場合は、IAM の設定が間違っています。(以下の画面が該当する部分です)

Redshift クラスターが起動完了するまで時間がかかるので次のステップに進みましょう。クラスターの起動が完了すると以下の画面のとおり詳細な情報が参照できます。そして、見にくいですが画面最下段にある「 JDBCのURL」は BigQuery の設定時に必要な情報なので記録しておきましょう。

8.AWS Redshift にデータを挿入する


これは非常に簡単です。チュートリアルのとおりコピー&ペーストすれば問題ありません。以下のような画面になるはずです。Redshift Query editor は便利ですね。これで Redshift の設定はすべて完了しました。

9.AWS VPC にあるセキュリティグループで GCP が指定する IP とポート番号を追加する


AWS の設定はこれで最後です。非常に重要ですので落ち着いて設定しましょう。Migrating data from Amazon Redshift の記載とおり、GCP が指定するグローバル IP アドレスを「アウトバウンドのルール」に追加する必要があります。今回は「東京リージョン」を使っていますので下図の IP を追加します。そして、Redshift が使うポート番号「5439」も追加します。設定完了後、「タイプ」が自動的に “Redshift” となります。

GCP が指定しているグローバル IP アドレス

AWS VPC セキュリティグループの設定画面

参考:「インバウンドのルール」のポート番号も Redshift 用の 5439 に変更しておきました。これでも今回のテストは成功します。セキュリティレベルを少しでも向上させる試みとしてトライしてみました。

10.GCP の BigQuery 転送(BigQuery Data Transfer Service)に転送情報を入力する


AWS の設定がすべて完了したので、後は GCP の設定だけです。Migrating data from Amazon Redshift の記載とおり進めれば問題ないのですが「Amazon S3 URI」の設定で悩むかもしれないのでわかりやすく記載します。

BiqQuery 転送(BigQuery Data Transfer Service)その1


AWS の Redshift と Amazon S3 URI の情報を入力します。

BiqQuery 転送(BigQuery Data Transfer Service)その2


Amazon S3 URI の記述ルールは「s3://[バケット名】/任意のキー」です。任意のキーは Prefix ですので好きな文字を入力すれば問題ありません。Redshift のスキーマやテーブル名は AWS のコンソール画面で何度も確認できます。すべてを入力した後に「保存」ボタンを押しましょう。今回は「通知オプション」は割愛しました。

11.GCP の BigQuery で Redshift にあるデータが追加されていることを確認する


Redshift から BigQuery への転送が開始し、数分後に完了します。時間についてはデータ量と相関します。以下の実行履歴及び転送構成の画面を参考にしてみてください。少し時間がかかりますが BigQuery に Redshift からの転送された情報を GUI で確認することができます。

実行履歴

転送構成の詳細

Redshift -> BigQuery 転送結果(GUI)

12.作業が完了したら AWS と GCP の各サービスを削除または停止する


これで Redshift から BigQuery への転送ができることを確認しました。最後に Redshift にはデータはあるのか? S3 バケットの中はどうなっているのかを確認しながら、AWS 及び GCP の各サービスを停止しましょう。特に Redshift クラスターは「削除」です。停止にする方法もありますが Google 検索で調べてみてください。先駆者の皆様が情報提供してくれています。本当にありがたいですね。

Redshift の確認

S3 バケットの確認

まとめ


 本記事は画面が多いため「作業量が多いなぁ~。面倒だなぁ~。」と思うかもしれませんが、実際にやってみると30分程度で完了します。AWS と GCP に慣れていない方でも1時間あれば完了するように丁寧に記載しました。あとは本記事の最上段に記載している AWS と GCP のチュートリアルを参考にトライしてみましょう。Redshift から BigQuery に DWH 基盤を移行する際に非常に便利なサービスです。

 弊社では GCP のコンサルティングから導入・運用支援サービスを提供しておりますので、ご興味のある方はお問い合わせください。
 また、エンジニアだけでなく、あらゆる職種で仲間も募集しています。Google Cloud Platform に関わる仕事をしてみたい方、ぜひ一緒にクラウドエースで働きませんか!
 ご応募、お待ちしています。

次の記事を読み込んでいます
次の記事を読み込んでいます
次の記事を読み込んでいます