ここでは、S3からRedshiftにロードする際の準備を行います。
後編でGlueを使ってS3からRedshiftへのロードを行います。
前編で作成される構成は以下です。
全体の流れ
- VPC作成(既に作成済ならそれでもOK。)
- Redshift接続用EC2作成(既に作成済ならそれでもOK)
- 自己参照セキュリティグループ(自己参照ルールを持つセキュリティグループ)作成
- Redshift作成
VPC作成(既に作成済ならそれでもOK)
作成される構成
VPCの画面から、左側メニューの"VPCダッシュボード"をクリックし、[VPCの作成]をクリック
"パブリックとプライベートサブネットを持つVPC"をクリックし、[選択]をクリック
以下を入力し、[作成]をクリックする
VPC名:demo1-vpc (任意)
アベイラビリティゾーン:ap-northeast-1a (任意)
パブリックサブネット名:demo1-front-1a (任意)
アベイラビリティゾーン:ap-northeast-1a (任意)
パブリックサブネット名:demo1-back-1a (任意)
Elastic IP 割当てID: (適当なEIPを選択。なければ作成しておく)
サービスエンドポイント:com.amazonaws.ap-northeast-1.s3
サブネット:プライベートサブネット
(補足)既に作成されたVPCの場合はここを確認
"DNS解決"、"DNSホスト名"が両方"はい"になっていること
NATGWとVPCEndpointS3を作成した状態で、プライベートサブネットのルートに、NATGWへのルートとVPCEndpointS3があること
Redshift接続用EC2作成(既に作成済ならそれでもOK)
作成される構成
作成したVPCのパブリックサブネットにEC2を作成
セキュリティグループを作成し、22ポートを許可
Redshift接続のためにyum install -y postgresqlしておく
自己参照セキュリティグループ(自己参照ルールを持つセキュリティグループ)作成
自分自身のセキュリティグループIDから通信を許可したセキュリティグループ
後編でGlueが利用するセキュリティグループです。
作成される構成
VPCの画面で、左側メニューのセキュリティグループをクリックし、[セキュリティグループの作成]をクリックする
以下を入力し、[はい、作成する]をクリックする
名前タグ:se2-glue-jikosansho-sg1 (任意)
グループ名:se2-glue-jikosansho-sg1 (任意)
説明:se2-glue-jikosansho-sg1 (任意)
VPC:demo1-vpc (先程作成したやつ、既存のVPC使うならそれを)
作成したセキュリティグループにチェックを入れ、"インバウンドルール"タブをクリックし、[編集]をクリックする
すべてのトラフィックを許可するルールを1つ追加する。この際の送信元を自分のセキュリティグループIDにする。入力したら[保存]をクリックする
※これは自己参照ルールと呼ばれる
※Glueの接続(VPC内リソースにつなぐ定義)を使う場合は必須のルール
タイプ:すべてのトラフィック
ソース:(自分のセキュリティグループのID)
Redshift作成
作成される構成
Redshift用のセキュリティグループ作成
VPCの画面で、左側メニューのセキュリティグループをクリックし、[セキュリティグループの作成]をクリックする
以下を入力し、[はい、作成する]をクリックする。ルールは後で作成する。
名前タグ:se2-gluetest-dwh1-sg-private (任意)
グループ名:se2-gluetest-dwh1-sg-private (任意)
説明:se2-gluetest-dwh1-sg-private (任意)
VPC:demo1-vpc (先程作成したやつ、既存のVPC使うならそれを)
セキュリティグループルール作成
VPCの画面から、左側メニューでセキュリティグループをクリックし、"se2-gluetest-dwh1-sg-private"にチェックを入れ、インバウンドのタブをクリックし、[編集]をクリックする
以下の2つのルールを追加し[保存]をクリックする
Redshift接続用に作成したEC2のIPからの5439ポートの許可
前に作成した自己参照セキュリティグループからのALL TCPポートの許可
サブネットグループ作成
Redshiftの画面で、右側メニューから"セキュリティ"をクリックし、"サブネットグループ"タブをクリックし、[クラスターサブネットグループの作成]をクリックする
以下を入力し、[作成]をクリックする
名前:se2-dwh-sg1
説明:se2-dwh-sg1
VPC:demo1-vpc
アベイラビリティゾーン:ap-northeast-1a
サブネットID:demo1-back-1a を選び[追加]をクリック
クラスタ作成
Redshiftの画面から、[クラスターの起動]をクリックする
以下を入力し、[次へ]をクリックする。
クラスター識別子:se2-gluetest-dwh1
データベース名:db
マスターユーザー名:admin
パスワード:(任意)
次の画面で任意のインスタンスタイプを選び[次へ]をクリックする。(試すだけならそのままでよい)
以下を入力し、[次へ]をクリックする
VPCの選択:demo1-vpc
クラスターサブネットグループ:se2-dwh-sg1
VPCセキュリティグループ:se2-gluetest-dwh1-sg-private
## ※Glueにおける自己参照ルールの補足
こちらも是非
Glueの使い方的な㉕(S3からRedshiftにロード_実行編)
https://qiita.com/pioho07/items/3a07cf6dccb8dfe046ff
JDBC データストアに接続するための VPC の設定
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/setup-vpc-for-glue-access.html
Glueの使い方まとめ
https://qiita.com/pioho07/items/32f76a16cbf49f9f712f