やりたいこと
AWSを使っているクライアントとやり取りができるようにするためです。特に、
GCPだとこうですがAWSだったらそうのように、GCPのサービスと比較してAWSのサービスをざくばらに把握できるように
VPCネットワーク
シンプルに言うと
シンプルに言うと各仮想インスタンスとつながっている仮想ネットワークのことです。
GCP内でVPCそこまで多く使われていないですが、AWS内で超重要視されている機能です。
プライベートサブネットとパブリックサブネット
VPCの2分類です。
プライベートサブネットは、AWS内のローカルエリアネットワークというイメージを持って大丈夫です。ローカルエリアのネットワークをつながっている端末の間で通信はできますが、つながっていない端末とは通信できないです。つまり、AWS外部との通信ができず、AWS内の通信のために使われる。
逆に、パブリックサブネットは、外部と通信できるネットワークです。パブリックサブネットをつなぐと、スマホがWIFIとつながったイメージを持って大丈夫です。これがあれば、ネットに通信できるため、外部端末とも通信できます。
一般的な設定
redshiftを構築する際に、private subnetに置くのは一般的です。public subnetに置くとセキュリティ的には良くないの為、AWSでは非推奨になります
上記のように、パブリックサブネットとつなぐと、ネット上でアクセスできるようになるたね、AWSはこれを推奨しないです。
基本的には、redshiftはプライベートサブネットとつなげます。
設定方法
https://ap-northeast-1.console.aws.amazon.com/vpcconsole/home?region=ap-northeast-1#Home:
サーチでVPCを検索⇒VPCをクリック⇒VPCを作成をクリック
設定⓵ 名前タグを設定
任意
設定⓶ AZ数、パブリックサブネット数、プライベートサブネット数
デフォルトで2,2,2になるので、このままで問題ないです。
デフォルトの設定では、パブリック&プライベートサブネットが2個ずつ設定されます。
それ以外全部デフォルトのままで大丈夫です。
後は「VPCを作成」をクリックして、VPCを作成します。
VPCのサブネットで、作成されたサブネットを確認できます。
設定⓷ サブネットを追加したい場合
VPC⇒サブネット⇒サブネット作成
サブネットゾーンとサブネット名を設定
AWSの命名規則は、
{vpc network}-{sub network} – {AZ}
のルールになるので、これを従った方がよいと思います。
サブネットCIDRブロックを設定
これ以外はデフォルトで大丈夫です。
設定⓸ プライベートサブネットとパブリックサブネットの転換
ルートテーブルを理解しておく必要があります。
- サブネットとプライベート用のルートテーブルとつなぐと、プライベートサブネットになる
- サブネットとパブリック用のルートテーブルとつなぐと、パブリックサブネットになる。
ルートテーブルは、VPCを作成した時、デフォルトで2個のプライベート用と1個のパブリック用が作られています。
名前を見ればprivate/publicが分かりますが、任意のルートテーブルIDをクリックして分類ロジックを確認できます
例えば、このルートテーブルの0.0.0.0/0のステータスがブラックホールになっているのため、インターネットとの通信がブロックされているという意味です。
このルートテーブルの0.0.0.0/0がアクティブになっているので、インターネットと接続可能なパブリック用になります。
なので、サブネットをパブリックからプライベート(または逆)を変更する場合、ルートテーブルを変更すればよいです。
ここでプライベート用とパブリック用を変更すれば良いです
設定⓹ セキュリティグループを作成
VPC⇒セキュリティグループをクリックして、Redshift用とglue用のセキュリティグループを作成しておく
- Redshift用
インバウンドのみ設定
- Glue用
インバウンド、アウトバウンド両方設定