こんにちは、Michaelです。
今回は、正式リリースになったフルマネージドETLサービス「AWS Glue」を使ってみます。AWS Glueを使い始めるにはIAMロールの設定など事前の準備が意外と大変なため、今回は準備編として環境設定をしていきます。
AWS Glueの環境設定
AWS Glueの使用にあたっては、以下の2項目について設定をしておく必要があります。
以下の項目は、使用するリソースによって必要な設定は変わりますが、今回はS3やRDS、Redshiftのデータストアに対応できるように設定をしていきます。
1. AWS Glue用のIAM設定
2. データストアアクセスの環境設定
AWS Glue用IAMの設定
IAMの設定は、以下の3つを設定します。
・AWS Glue用のIAMロール
・Notebook serverを使用する場合のIAMロール
・IAMユーザーに対するGlueコンソールへのアクセス権限
まずは、AWS Glue用のIAMロールを作成します。
AWSコンソールからIAMを選択し、左ペインから「ロール」を選択します。
「新しいロールの作成」をクリックし、「AWSサービスロール」の一覧から、「AWS Glue Service Role」を探し、「選択」をクリックします。
「ポリシーのアタッチ」で以下のIAMポリシーを選択します。選択したら「次のステップ」をクリックします。
・AWSGlueServiceRole
・AmazonS3FullAccess
作成するロール名を設定します。今回は「AWSGlueServiceRoleDefault」を設定して、「ロールを作成」をクリックし、IAMロールを作成します。
続いて、AWS GlueでNotebook serverを使用する場合に必要になるNotebook server用のIAMロールを作成します。
AWS Glue用のIAMロールと同じ要領で、以下のポリシーをアタッチしたIAMロールを「AWSGlueServiceNotebookRoleDefault」として作成しておきます。
IAMユーザーに対してAWS Glueのアクセス権限を与える場合には、左ペインの「ユーザー」から権限を与えるユーザーを選択し、以下の4つのポリシーをアタッチしておきます。
・AWSGlueConsoleFullAccess
・CloudWatchLogsReadOnlyAccess
・AWSCloudFormationReadOnlyAccess
・AmazonAthenaFullAccess
以上で、IAMの設定は完了です。
データストアアクセスの環境設定
AWS Glueでは、S3のほかRDS、Redshiftといったデータストアと連携することができます。RDS、RedshiftについてはVPC内にリソースを配置するため、VPC外のS3と連携するには、VPCエンドポイントの設定が必要になります。
ここからは、VPC内外のデータソースとの連携ができるようにVPCの設定を行っていきます。
まずはVPCとS3を接続できるようにVPSエンドポイントを設定します。
AWSコンソールから「VPC」を開き、左ペインから「エンドポイント」を選択します。エンドポイント一覧の右上の「エンドポイントの作成」をクリックします。
「エンドポイントの作成」で以下項目を設定し、S3へアクセスするVPCエンドポイントを作成します。
項目 | 設定値 |
VPC | エンドポイントを設定するVPC |
サービス | com.amazonaws.us-east-1.s3 |
ポリシー | フルアクセス |
サブネット | 設定する対象のサブネットを選択 |
続いて、AWS GlueとVPC内のリソースが通信できるようにセキュリティグループを設定します。
左ペインからセキュリティグループを選択して、VPCのリソースで使用するセキュリティグループを選択します。画面下の「インバウンドのルール」のタブをクリックして、以下のように自身のグループIDを参照するルールを設定します。
タイプ | プロトコル | ポート範囲 | ソース |
全てのTCP | TCP | 0-65535 | セキュリティグループと同じグループID |
また、「アウトバウンドのルール」についてもインバウンドと同様に、以下のような自己参照ルールを追加します。
タイプ | プロトコル | ポート範囲 | ソース |
全てのTCP | TCP | 0-65535 | セキュリティグループと同じグループID |
最後に、DNSの設定を確認します。
左ペインからVPCを選択し、AWS Glueと連携するVPCを選択します。画面下の「概要」で「DNS解決」、「DNSホスト名」がともに「はい」になっていることを確認します。なっていない場合には、選択したVPCを右クリックして「DNS解決の編集」、または「DNSホスト名の編集」で設定を変更しておきます。
以上で、AWS Glueの環境設定は完了となります。
次回は実際にAWS Glueを使っていきたいと思います。
次回もお楽しみに!