【AWS】RedshiftとAWS Glue接続時のインフラ設定
はじめに
皆様こんにちは。DXソリューション営業本部の金森です。
今回の記事では、RedshiftとAWS Glueを使用したデータ処理のためのインフラ設定についてご説明したいと思います。
AWS Glueについて
AWS Glue は、データの準備をより簡単、迅速、低コストにするサーバーレスデータ統合サービスです。70 を超える多様なデータソースを検出して接続し、一元化されたデータカタログでデータを管理し、ETL パイプラインを視覚的に作成、実行、モニタリングして、データをデータレイクにロードできます。
引用元:AWS Glue(分析用データ抽出、変換、ロード (ETL) )
今回の構成図
赤枠の部分が今回の説明部分になります。
インフラ設定
ネットワーク設定
・VPCには1つのプライベートサブネットを作成
・プライベートサブネットからS3に出力するので、ゲートウェイ型S3エンドポイントを作成
・プライベートサブネットに作成したゲートウェイ型S3エンドポイントへの経路があるルートテーブルを関連付ける
・Glue jobをVPC内で実行する時に利用するENI向けのセキュリティグループ(自己参照ルールを追加)を作成後、GlueからアクセスするRedshiftクラスターにアタッチする
・VPC内にあるデータソース(Redshift)でSparkSQL変換を使用する場合は、データソースを含むVPCにGlue VPCエンドポイントが必要なので作成する
Redshiftクラスター作成
・管理者パスワードは手動で設定
※その他の設定に関しての説明は割愛いたします。
AWS GlueからRedshiftへの接続設定
・Data connectionsを開き、Create connectionで作成したRedshiftクラスターへの接続を設定する
・接続を作成する際にJDBCの設定が自動生成される
Glue jobに関連付けるIAMロール設定
・AWS管理ポリシーであるAWSGlueServiceRoleをアタッチしたIAMロールを作成
独自で用意したS3バケットを使用する場合のIAMロール設定
・AWSGlueServiceRoleのJSON内容をコピーし、自分で用意したS3バケット名に変更したIAMポリシーを作成後、IAMロールにアタッチする
※上記のように設定する理由は、デフォルトでは”arn:aws:s3:::aws-glue-*/*”のバケットに対しての全Action許可設定となっているため、許可対象のバケットARNに変更する必要がある