AWS Hands-on for Beginners Network編#1 AWS上にセキュアなプライベートネットワーク空間を作成する
#aws #AWSセミナー
https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Network1-2020-reg-event-CP_143.html
Amazon VPCでプライベートネットワークを構築する
https://gyazo.com/975395c71ada2d1e84f26c8fa9a4a944
ネットマスクの範囲は16 ~ 28 bit
サブネットはAvailability Zoneをまたげない
Internet Gateway
03 Amazon VPCの作成とインターネット接続環境の構築 〜Amazon VPC構築ハンズオン〜
https://gyazo.com/a4201cf00a032db7f785189033602409
デフォルトVPC、デフォルトサブネット
アカウント作成時にデフォルトVPCが必ず用意されている
VPC作成
サブネット作成
インターネットゲートウェイ作成
作成直後はどのVPCにも紐付けられていないのでDetached状態
作成したVPCにアタッチする
1つのVPCに1つのInternet Gatewayしかアタッチできない
デフォルトVPCはすでに別のインターネットゲートウェイがアタッチされているので紐付けられない
Public / Privateはどう設定する?
ルートテーブルの作成と関連付けで設定する
パブリックサブネットの定義
ルーティングテーブルにインターネットゲートウェイへのエントリがあり、インターネットとインバウンド/アウトバウンドのアクセスが可能
プライベートサブネットの定義
ルーティングテーブルにインターネットゲートウェイへのエントリはなく、インターネットから直接アクセスできな
Route table
ネットワークトラフィックの経路を決定するRouteと呼ばれる一連のルールが定義されたテーブル情報
各サブネットにルートテーブルを関連付けることにより、サブネットのネットワークルーティングが決定する
https://gyazo.com/e5f8c625edfe716a0e98c93b2c4ad996
04 Amazon VPCの作成とインターネット接続環境の構築 〜Public SubnetとPrivate Subnet〜
VPCの各サブネットには必ず1つのRoute tableが紐付けられている
サブネット作成時にデフォルトで存在する
デフォルトの設定ではVPC内の通信経路しか持っていない
https://gyazo.com/2fc04bcf212d63077de3e37788380a52
1つのルートテーブルに複数のサブネットを関連付けることができる
ルートテーブル has_many サブネットであり、逆の方向で複数持つことはできない
インターネットへの経路をつくることでPublic subnetとなる
0.0.0.0/0 Internet Gateway
デフォルトゲートウェイ (すべての接続先)はInternet Gatewayの先にある、という設定を行う
ルーティングの優先度
ルートテーブル内に定義された最も具体的なルートが優先される
最長プレフィックス一致、Longest match
ネットマスクの数字が大きい方
10.0.0.0/16 local
0.0.0.0/0 Internet Gateway
のような設定があった際に 10.0.10.111 のトラフィックを受信した場合、ターゲットはlocalが選択される
ルートテーブルの作成
ルートの追加
デフォルトルートテーブルのrename
サブネットの関連付けの編集
いずれのルートテーブルとも明示的に関連付けられていないサブネットはメインルートテーブルに関連付けられる
メインルートテーブルはデフォルトで作成された private route table になっている
明示的に関連付けをしておくと良い
メインルートテーブルはなるべくセキュアにしておくほうがよい
05 ルートテーブルによる経路設定を理解する
EC2インスタンスをPublic subnetに配置する
EC2インスタンス作成時
ネットワークを指定
Apacheをインストールして起動させる
パブリックIPにアクセス出来ることを確認
Apacheの画面が見える
プライベートサブネット用のルーティングテーブルを割り当てるとアクセスできなくなる
06 プライベートサブネットからインターネットへのアクセス方法
EC2インスタンスをPrivate subnetに配置する
よくある要件
Inbound (インターネットからのアクセス) は拒否したいが、Outbound (インターネットへのアクセス) は許可したい
外部から情報を取得するようなシステム
NATで解決
NAT instance
EC2インスタンスをPublic subnetに配置し、NAT変換を行う
Private subnetのルーティングテーブルでは 0.0.0.0/0 NAT instanceのnic(ENI) を指定
NAT Gateway
後発のサービス、こちらがおすすめ
EC2インスタンスの運用がいらず、マネージド
NATゲートウェイをPublic subnetに配置し、NAT変換を行う
Private subnetのルーティングテーブルでは 0.0.0.0/0 NAT Gateway を指定
複数のインスタンスを1つのNAT Gatewayに紐付けることもできる
AWS Systems Managerで動作確認
SSMはVPCの外側にあるので、プライベートサブネットにいるインスタンスにSSMで接続するにはNAT Gatewayが必要
ルーティングテーブルでは 0.0.0.0/0 NAT Gateway のエントリを削除するとSSMでの接続ができなくなる
07 VPC外サービスへの接続方法 〜VPC Endpoint〜
VPC外のAWSマネージドサービスに接続する
ここまでのハンズオンではAWSのサービスであってもVPCの外に出るにはInternet Gatewayを通らないといけない
セキュアなシステムではPrivate subnetのみ構成し、VPCからインターネットに接続性を持たせたくないケースもある
VPC内Subnet上で稼働するサービスから、Internet Gateway、NAT Gateway、NAT Instanceを経由せずにVPC外サービスと直接通信させることができる
VPC Endpoint
Gateway型
S3、DynamoDBとの接続方式
AWS PrivateLink
Interface型
多数サービスとの接続方式
https://gyazo.com/975db29e9ebb0e14b26e30e44ddb5c2c
08 VPC外サービスへの接続方法 〜VPC Endpoint(Interface型)ハンズオン〜
DNSホスト名を有効化
ルーティングテーブルからNAT Gatewayへのエントリを削除
VPC Endpointを3つ作成し、SSMで接続できることを確認
Interface型はサブネットにENIを接続口として設ける
09 VPC外サービスへの接続方法 〜VPC Endpoint(Gateway型)ハンズオン〜
Gateway型は経路的に接続口を設ける
S3に接続するためのVPC Endpointを作り、ルーティングテーブルにVPC Endpointのエントリを追加する
発展資料
AWS Black Belt Online Seminar Amazon VPC 資料及び QA 公開
Amazon VPC の料金
Amazon VPC のよくある質問