SAA 03 ネットワーク(VPC・ELB・Route 53・CloudFront)

更新日:

← SAA_02_IAMとセキュリティ(IAM・KMS・Organizations・WAF) / 次 → SAA_04_コンピューティング(EC2・Auto Scaling・Lambda・コンテナ)

SAA で一番つまずきやすく、一番よく出る分野。図で覚える。

VPC の基本形(これを描けるようにする)

図を表示しています…

AWS 公式アイコンで描いた構成図(draw.io で開くと編集できる):

SAA_03_VPC構成図

部品役割
サブネットVPC を区切った範囲。1つの AZ に属する
ルートテーブルサブネットごとの「どこへ送るか」の表
パブリックサブネットルートに IGW 行きがある。ここだけでインターネットと直接通信できる
プライベートサブネットIGW 行きがない。外へ出るときは NAT ゲートウェイ経由
NAT ゲートウェイプライベート → インターネットの片道だけ通す。AZ ごとに置く(1つだけだとその AZ が落ちたら全滅)
Elastic IP固定のパブリック IP
踏み台(Bastion)プライベートの EC2 に SSH するための中継。今は Systems Manager Session Manager で不要にできる

セキュリティグループ と ネットワーク ACL

セキュリティグループ(SG)ネットワーク ACL(NACL)
付ける場所インスタンス(ENI)単位サブネット単位
ルール許可だけ許可と拒否
状態ステートフル(戻りの通信は自動で許可)ステートレス(戻りも明示的に許可。エフェメラルポート 1024-65535)
評価全ルールを評価番号の小さい順に評価し、最初に一致したもの
典型的な使い方「ALB の SG からだけ 80 番を許可」(SG を参照元に指定できる)「特定 IP からの攻撃をサブネットでブロック」

通るのは「NACL も SG も許可」のときだけ

外から EC2 に届くまでに、NACL(サブネットの門)→ SG(インスタンスの門) の2つを順に通る。どちらか一方でも許可がなければ届かない(AND)。

クライアント ─▶ [NACL:サブネットの門] ─▶ [SG:インスタンスの門] ─▶ EC2
                 拒否なら ✕ ここで止まる     許可がなければ ✕ ここで止まる
                 → 両方で許可されたときだけ ○ 届く
NACLSG結果
許可許可○ 通る
許可許可なし✕
拒否許可✕
拒否許可なし✕

戻りの通信で詰まりやすい:SG はステートフルなので戻りは自動で通るが、NACL はステートレスなので アウトバウンド側にもエフェメラルポート(1024-65535)の許可 が要る。
→ 「SG は正しいのに通らない」問題は、だいたい NACL の戻りのルール が原因。

行き:  クライアント ──443──▶ NACL インバウンド(443 を許可)──▶ SG インバウンド(443 を許可)──▶ EC2
戻り:  クライアント ◀─1024-65535── NACL アウトバウンド(これも許可が必要!)◀── SG(自動で通る)◀── EC2

同じ種類のルールが複数あるとき

場面どう決まるか覚え方
NACL と SG(層が違う)両方で許可 が必要AND
1つのインスタンスに SG を複数 付けたどれか1つでも許可 があれば通る(全部の SG のルールを合わせて評価)OR
NACL の中に複数ルール番号の小さい順 に見て、最初に一致したルールで決まる。どれにも一致しなければ最後の * で拒否早い者勝ち

NACL の例(番号の小さい順に見る):

ルール番号送信元許可/拒否
1000.0.0.0/0(全部)許可
200203.0.113.5拒否
*0.0.0.0/0拒否

→ 203.0.113.5 からの通信は ルール100で先に一致するので許可される(200 の拒否は効かない)。止めたいなら 拒否のルールを 100 より小さい番号(例: 90)にする。

VPC の外とつなぐ

AWS のサービスへ(インターネットを通らずに)

ゲートウェイエンドポイントインターフェイスエンドポイント(PrivateLink)
対象S3 と DynamoDB だけほとんどのサービス(SQS、KMS、Secrets Manager…)
仕組みルートテーブルに行を追加サブネットに ENI(プライベート IP)を置く
料金無料時間+データ量の課金

→ 「プライベートサブネットの EC2 から S3 へ、NAT の料金を減らしたい / インターネットを経由させたくない」= S3 ゲートウェイエンドポイント。

VPC 同士

方式特徴
VPC ピアリング1対1 の接続。推移しない(A-B、B-C があっても A-C は通らない)。CIDR が重なると不可
Transit Gatewayハブ&スポーク。多数の VPC・オンプレを1か所でつなぐ
PrivateLink自分のサービスを他の VPC に「1つの窓口だけ」公開する(VPC 全体はつながない)

オンプレミスと

方式特徴キーワード
Site-to-Site VPNインターネット上に暗号化トンネル。すぐ使える・安い「すぐに」「低コスト」
Direct Connect(DX)専用線。帯域が安定・大容量。開通まで数週間かかる「安定した帯域」「大量データ」
DX + VPNDX の上で暗号化(DX 自体は暗号化されない)「専用線で暗号化も」
DX を2本 / DX + VPN をバックアップ冗長化「DX の障害に備える」
Client VPN個人の PC から VPC へ「リモートワークの社員」

通信を調べる

  • VPC フローログ:どの IP からどの IP に通信したか(許可/拒否)を記録。中身(パケット)は見られない
  • Reachability Analyzer:到達できない原因を調べる

ロードバランサー(ELB)

種類層得意なことキーワード
ALB(Application)L7(HTTP/HTTPS)パス・ホスト名でルーティング(/api → A、/img → B)、Lambda をターゲットに、認証(Cognito)「URL パスで振り分け」「マイクロサービス」
NLB(Network)L4(TCP/UDP/TLS)超低遅延・大量接続、固定 IP(Elastic IP) を持てる「静的 IP」「数百万リクエスト/秒」「TCP/UDP」
GWLB(Gateway)L3ファイアウォール等の仮想アプライアンスに通信を通す「サードパーティのセキュリティ機器」
  • ヘルスチェックで異常なターゲットに送らない
  • クロスゾーン負荷分散:AZ をまたいで均等に分散(ALB は常に有効)
  • スティッキーセッション:同じユーザーを同じサーバーへ(本当はセッションを ElastiCache・DynamoDB に外出しするのが正解のことが多い)
  • SSL/TLS 終端:ELB で HTTPS を受けて復号(証明書は ACM)

Route 53(DNS)

ルーティングポリシー

ポリシー動き使いどころ
シンプル1つの宛先を返す普通の Web サイト
加重(Weighted)割合で振り分け(90:10)新バージョンを少しだけ試す(カナリア)
レイテンシー一番遅延の小さいリージョンへ「世界中のユーザーに最速で」
フェイルオーバープライマリがダメならセカンダリへDR(アクティブ・パッシブ)
位置情報(Geolocation)ユーザーの国・地域で決める「国ごとに別の言語のサイト」「配信制限」
地理的近接性(Geoproximity)距離+バイアスで調整「あるリージョンに多めに流したい」
複数値回答(Multivalue)正常な IP を最大8つ返す簡易的な負荷分散
IP ベース送信元 IP の範囲で決める「特定 ISP からはこちらへ」
  • エイリアスレコード:ELB・CloudFront・S3 静的サイトを指せる。ゾーンの頂点(example.com)にも使える(CNAME は不可)。AWS リソース向けの問い合わせは無料
  • ヘルスチェックと組み合わせてフェイルオーバーする

コンテンツ配信と高速化

サービス仕組み使いどころ
CloudFrontエッジでキャッシュして配信(CDN)。HTTP/HTTPS静的・動的コンテンツの配信、S3 の前に置く
Global Accelerator固定のエニーキャスト IP 2つで AWS の高速網に乗せる。キャッシュはしないTCP/UDP(ゲーム・VoIP)、固定 IP が必要、リージョン間の高速フェイルオーバー

CloudFront のよく出る設定

  • OAC(オリジンアクセスコントロール):S3 を CloudFront 経由でしか見られないようにする(旧 OAI)
  • 署名付き URL / 署名付き Cookie:有料会員だけに動画を見せる
  • 地理的制限:特定の国からのアクセスを拒否
  • WAF と Shield を前に付けられる
  • Lambda@Edge / CloudFront Functions:エッジでリクエストを書き換える

よく出るひっかけ

  • NAT ゲートウェイはパブリックサブネットに置く(プライベートに置くと外に出られない)
  • IPv6 で外向きだけ許可したい → Egress-only インターネットゲートウェイ
  • VPC ピアリングは推移しない → 多数をつなぐなら Transit Gateway
  • 「固定 IP を顧客のファイアウォールに登録したい」→ NLB(Elastic IP)か Global Accelerator(ALB は IP が変わる)

確認ポイント

  • パブリック/プライベートサブネットの違いをルートテーブルで説明できる
  • SG と NACL の違い(ステートフル・許可だけ)を言える
  • S3 へプライベートに行く方法(ゲートウェイエンドポイント)を言える
  • VPN と Direct Connect の使い分けを言える
  • ALB と NLB、CloudFront と Global Accelerator の使い分けを言える
  • Route 53 の加重・レイテンシー・フェイルオーバー・位置情報を区別できる

関連ノート