【AWS SAA対策 Udemy】VPC
VPCのVもわかってないので学んでいくぞ...!
VPC = Virtual Private Cloud=パブリッククラウド内に作成される論理的に隔離されたユーザー独自のスペースである
Amazon Virtual Private Cloud (VPC) では、リソースの配置、接続性、セキュリティなど、仮想ネットワーク環境を完全に制御することができます。最初のステップは、VPC を作成することです。次に、Amazon Elastic Compute Cloud (EC2) や Amazon Relational Database Service (RDS) インスタンスなどのリソースを追加できます。最後に、アカウント、アベイラビリティーゾーン (AZ)、リージョンを超えて、VPC 同士の通信方法を定義することができます。この例では、各リージョン内の 2 つの VPC 間でネットワークトラフィックを共有しています。
IPアドレスの基礎
IPアドレスとはネットワーク機器やWebサイトなどの場所を特典する為がIPアドレス
グローバルでのIPアドレスは重複が許されない
ICANという非営利団体が運用している。
IPアドレスはネットワークインターフェイスカードに割り当てられる。
現在、IPv4のIPアドレスが枯渇している。今はIPv6のIPアドレスに移行するようになっている
IPアドレスにはグローバルIPアドレスとプライベートIPアドレスがある
グローバルIPアドレスは重複できない
プライベートIPアドレスは限定エリアだけ使うIPアドレスになっている
限定エリアでは重複できないが、グローバルとして扱う場合は重複可能
設定できるIPアドレスは
10.0.0.0~
172.16.0.0~
192.168.0.0~
サブネットマスクとサブネット
プライベートネットワークはどうやって作るのか?
まずはネットワークの範囲を定義する必要がある
割り当てるIPアドレスは1台なのか?5台なのか?
ネットワークの範囲を定義する事が必要 = IPアドレスの利用可能な範囲
(ex)10.1.0.0/16
/16がサブネットマスクとなっている。
つまりネットワークの利用可能な範囲はIPアドレス (10.1.0.0)+ サブネットマスク(/16)で構成される
サブネットマスクとは?
VPCでネットワークを作る場合は10.1.0.0/16(プライベートIPアドレス+サブネットマスク)を作成して、その中にサブネットを用意する
パブリックサブネット(10.0.1.0/24)
プライベートサブネット(10.0.2.0/24)
/16などの値をCIDRと呼ぶ
CIDRとは、インターネット上のIPアドレスの割り当てと経路選択(ルーティング)を柔軟に運用する仕組み。IPアドレスのクラス分けを廃止し、組織の規模に応じて割り当てるアドレスの数を柔軟に選択できるようにした上で、アドレスブロックをグループ化して経路情報を集約するようにしたもの。ref:https://e-words.jp/w/CIDR.html サブネットマスクの値を設定して、同じネットワークとして扱うIPアドレスの個数を指定できるIPアドレスの設定方法
196.51.xxx.xxx/16
左から16桁(2進数)までが同じネットワーク範囲として指定できる
なので、196.51.1.0と196.51.2.0は同じネットワークで通信ができる
10.0.0.255/8
この場合は左から8桁 = 10がロックされる
10.0.0.255/16
この場合は左から16桁 = 10.0がロックされる
10.0.0.255/24
この場合は左から24桁 = 10.0.0がロックされる
サブネットマスクによって固定される範囲をネットワーク部、利用可能な範囲をホスト部 と呼ぶ
サブネットマスクを作る際は、/16や/24などを使う。
サブネットを大きくすると使える範囲が狭くなってくる
ローカルなネットワークに沢山の危機がつながっていると特定がしずれらい。のでサブネットを作成する
プライベートネットワークの中に更にサブネットマスクによるグループ化されたアドレス範囲内をサブネットと呼ぶ
サブネットマスクを設定し、サブネットを作成する事でグループ化されたネットワークを作り特定の範囲に効率よくデータを送る事ができる。
(AWS)VPCの基礎
VPCはAWSクラウド内に倫理的に分離されたセクションを作りユーザーが定義した仮想ネットワークを構築するサービス
単一のVPCを構築すると、単一のAZの範囲に設定される
同一リージョンではVPCを複数のAZのリソースを含める事ができる
VPCとサブネットの組み合わせでネットワーク空間を構築する。
VPCを構成する際は最低1つのサブネットがAZに構成される。
VPCを作成するとデフォルトで172.31.0.0/16のVPCを作成される。ネットワーク範囲は172.31.xxx.xxとなっている。
各AZにサイズ/20のデフォルトサブネットを作成する。1サブネットあたり、4096個のアドレスが作成される
作成するとデフォルトのアクセスコントロールリストを作られる。
VPCウィザードを利用する事で、頻繁に利用されるVPC構成を瞬時に構成する事ができる
VPCウィザードを使わない場合
code:md
VPCを作成
サブネットを作成
インターネット経路を設定
VPCのトラフィック許可の設定(ネットワークALC)
サブネットマスクは/16~/28で利用できる。
因みに.0、.1、.2、.3、.255はすでに予約済みなので使えない
サブネットはインターネットゲートウェイの有無でサブネットタイプが分かれる。
パブリックサブネット
トラフィックがインターネットゲートウェイにルーティングされるサブネット
プライベートサブネット
インターネットゲートウェイのルーティングがされない
プライベートサブネットからインターネットに接続するにはNATゲートウェイがパブリックサブネットに必要
一般的にVPCにCIDRは/16で設定し、サブネットには/24を設定する
VPCの外側にあるリソースにアクセスする場合は、パブリックのAWSネットワークかエンドポイントを利用する。
S3にアクセスする場合はエンドポイントを設定して外のリソースにアクセスする
インターネットの経路は ルートテーブルで設定ができる
VPCの設計には将来の拡張を考えて設定する。
VPC FLow Logsを使ってモニタリングもできる
VPCを構築する
今回作成するアーキテクチャ
Egress-Only インターネットゲートウェイは IPv6 トラフィックでのみ使用できます。IPv4 を介したアウトバウンドのみのインターネット通信を有効にするには、代わりに NAT ゲートウェイを使用します。
キャリアゲートウェイ → 5G専用のゾーンで利用できる
Elastic IP アドレスでIPアドレスを固定できる
使わないと料金が取られる...
自分のアカウントから他のアカウントを接続する際は、エンドポイントサービスを行う
NAT ゲートウェイ:
ネットワークアドレス変換 (NAT) ゲートウェイを使用して、プライベートサブネットのインスタンスが VPC 外のサービスに接続できるようにしながら、そのような外部サービスがこれらのインスタンスとの接続を開始しないようにすることができます。NAT ゲートウェイには、パブリックとプライベートの 2 種類があります。
ピアリング接続はVPCとVPCを接続する
到達可能性アナライザー
VPC..高性能すぎでは..!?
Transit GatewaysはVPCを多数持っていくさいに管理を行う
VPCウィザードを使って構築していく
https://gyazo.com/487ef411bfcecfd7cf9de06cf35a6b81
次にVPCのサブネットマスクの設定を行うが、このときにElastic IPが必要になる
パブリックサブネットを作成する
パブリックサブネットからインターネットに接続するにはインターネットゲートウェイが必要。その為にルーティングを設定する。作成したサブネットにigwを付与する為、ルートテーブルから変更する
https://gyazo.com/1ffaffc1ed6e9df7c37d8856d2ea37b9
動作確認はどうするんですか...??
プライベートサブネットを作成する
DHCPサーバーがローカル端末に対してプライベートIPアドレスを付与して、接続できるようにしてくれる。
日常だと無線WIFIがそういった役割をしている。
グローバルIPアドレスとプライベートIPアドレスとの対応付けを行うのが NATゲートウェイを設定する
インターネットに接続する際はプライベートIPアドレスをNATゲートウェイを使ってグローバルIPアドレスに変換している。
また複数のプライベートIPアドレスを、1つのグローバルIPアドレスに変換する、IPマスカレードがある。
DHCP、NAT、IPマスカレードがルーターが対応してくれる。
プライベートサブネット内のインスタンスに接続するには踏み台サーバーが必要になる。戻りトラフィックにはNATゲートウェイが必要。
プライベートサブネットの場合はルートテーブルでNatGatewayを指定する
https://gyazo.com/682ea75937dd3e2efc775113e15e03e0
これだけでは設定が完了してなく、まだルートテーブルではデフォルトで作成されたNatがついている。
ので、ルートテーブルから削除する。
https://gyazo.com/97b153bb4b703442ca05ed9d7a4ac1ca
プライベートサブネットは作れたけど、どうさ確認ができてないなぁ~
通常プロトコルとOSI参照モデル
メール送信、ブラウザへのアクセスでは通信プロトコルがある
メールアドレスを行う場合はSMTP(送信)、POP(受信)を行う
SMTPは送信プロトコルで、POPは受信プロトコルになっている。
SMTPは25番、POPは110番、143番がすでに割り当てられている。
プロトコル = 通信を行う際の決まりごと
これらのプロトコルの性質や送信対象に応じて7つの層に分けているのがOSI参照モデルになっている。
セキュリティグループとネットワークALC
セキュリティグループ
インスタンスのトラフィックのアクセス可否を設定するファイヤーウォール機能を提供している。
EC2インスタンスに対するトラフィックを制御する
ネットワークALC
VPC、サブネット単位でトラフィックを制御するファイヤーウォールを提供している
セキュリティグループと、ネットワークALCの違い
セキュリティグループ
サーバー単位
ステートフル
インバウンドの設定すればアウトバウンドも許可する
許可のみをIn/Outで指定
デフォルトでは同じセキュリティグループ
ネットワークALC
VPC、サブネット単位で設定
ステートレス
インバウンドとアウトバウンドをそれぞれを設定する
許可、拒否を指定
デフォルトで全ての通信を許可する設定
上から順番に適用する
ネットワークALCの設定
インバウンドルール、アウトバウンドルールがデフォルトだと全て許可されている
新規で作成すると、全てが拒否されている
https://gyazo.com/087fa4456f296fb6eae6a8b3f35658f2
自宅のPCからアクセスする為にはカスタムTCPルールを設定してあげる必要がある
https://gyazo.com/218ddb2a963eaf1034edb4d1563c80e8
※yamでインスタンスをアップデートする際に、インバウンドルールも設定してあげないといけない
NATゲートウェイの利用
Webサーバーから(パブリックサブネットを通り)、プライベートサブネット内のEC2インスタンスにアクセスを行う
code:md
Web→インターネットゲートウェイ→パブリックサブネット→プライベートサブネット⇔(パブリックサブネット)NATゲートウェイ→インターネットゲートウェイ→Web
パブリックサブネット、プライベートサブネットでECインスタンスに立てる。
パブリックサブネットのEC2からプライベートサブネットのEC2インスタンスに接続、yum updateコマンドを実行
パブリックサブネットにNATゲートウェイを配置位してプライベートサブネットのルールテーブルにNATゲートウェイへのルートを設定
再度、パブリックサブネットのEC2インスタンスからプライベートサブネットのEC2インスタンスに接続してyum updateコマンドを実行する
2021年6月より、NAT ゲートウェイを起動する際にプライベート版を選択できるようになりました。プライベート版のNATゲートウェイはオンプレミス環境とプライベート接続する際に利用するNATゲートウェイとなります。
プライベートサブネットに立てるEC2インスタンスには、自動割り当てパブリック IPが必要なし
パブリックサブネットのEC2からプライベートサブネットのEC2インスタンスにアクセスするには事前にローカルに保存したprivate_keyをコピーして、パブリックサブネットネット内で以下のコマンドを実行する
code:sh
sudo chomod 400 my_private_key.pem
プライベートサブネット内のEC2 インスタンスではインターネットゲートウェイと疎通してない為、コマンドを実行しても疎通ができず失敗する
code:md# yum update -y
# yum update -y
読み込んだプラグイン:extras_suggestions, langpacks, priorities,
: update-motd
One of the configured repositories failed (不明),
# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
16 packets transmitted, 0 received, 100% packet loss, time 15356ms
NATGateWay作成する
https://gyazo.com/9c0211abdec959aee16979b87a4c98bf
作成したNatGateWayは作成したVPCのプライベートサブネットのルールテーブルから適用する
https://gyazo.com/264f9c2da89d8bbe9a0d347ee773ad5b
このあとにプライベートサブネットのEC2インスタンスで、yum update -yを実行するとちゃんとプライベートサブネット内でもインターネットゲートウェイと接続してアップデートができる。
VPCとの接続
VPCを外に接続する際の説明
VPCとオンプレミス接続
VPN接続
安価なベストエフォート回線が利用できる
クラウドで設定できる為即時設定ができる
暗号化のオーバーヘッドにより制限がある。
AWS Direct Connect接続
安価なアウトバウンドトラフィックができる
信頼性が高い
Direct Connect ローケーションがあり、物理的なデバイスを使って接続する
AWS Direct Connect のパートナーまたはネットワークプロバイダーと連携して、ユーザーのデータセンター、オフィス、またはコロケーション環境から AWS Direct Connect ロケーションに接続します。
VPCエンドポイントの利用
VPCエンドポイントはグローバルIPを持つAWSサービスに対して、VPC内から直接アクセスする為の出口
EC2からS3へ接続するときに利用できる。
Natgatewayがある状態だとグローバルのインターネットを使って接続ができてしまっているので、VPCエンドポイントを使ってVPNのプライベートサブネットから直接S3へアクセスを行う
VPNエンドポイントを使ってのアクセスはエンドポイントにリージョンを指定する
code:md
2020-11-03 02:45:01 udemy-admin-***
これでNAT Gatewayを介さずにS3へアクセスする
VPCピアリング接続の構成
2つのVPC間でのトラフィックルーティングが可能
異なるAWSアカウント間のVPC間をピア接続する事が可能
単一障害点やボトルネックは存在しない
https://gyazo.com/5b2a712b07d5be2a5f74b7e54eed2c2c
VPCピアリング接続を行う際は、設定後に承諾を行う
Transit Gatewayの構成
VPC Flow Logs
VPC Flow Logはネットワークトラフィックを取得してCloudWatchでモニタリングができるサービスになっている
セキュリティグループとネットワークACLのルールでaccepted/rejectされたトラフィックログを設定できる
まずはCloudWatchでの設定が必要