Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
VPCについてあらためて考えてみる
Search
da-hatakeyama
October 07, 2023
Technology
1
260
VPCについてあらためて考えてみる
JAWS FESTA 2023 の懇親会LTで使用した資料です
https://jft2023.jaws-ug.jp/
da-hatakeyama
October 07, 2023
Tweet
Share
More Decks by da-hatakeyama
See All by da-hatakeyama
VPC Block Public Accessを触ってみて気づいた色々な勘所
hatahata021
2
230
VPC Block Public AccessとCloudFrontVPCオリジンによって何が変わるのか?
hatahata021
2
640
WernerVogelsのKeynoteで語られた6つの教訓とOps
hatahata021
2
500
サーバレスを本気で理解したいあなたに贈る 「実践力を鍛えるBootcamp」の紹介
hatahata021
2
290
CloudFrontを使ってSPAなWebサイトを公開するときに気をつけること
hatahata021
1
2.4k
「AWSの薄い本」の紹介
hatahata021
1
150
ALBの新機能 Automatic Target Weightsとgray failuresについて考えてみる
hatahata021
0
900
re:Invent Workshop「Advanced Multi-AZ Resilience Patterns」をやってみた
hatahata021
1
260
Transfer Family for SFTPを使ってみよう
hatahata021
2
3.3k
Other Decks in Technology
See All in Technology
[TechNight #90-1] 本当に使える?ZDMの新機能を実践検証してみた
oracle4engineer
PRO
3
140
JSX - 歴史を振り返り、⾯⽩がって、エモくなろう
pal4de
3
1.1k
VISITS_AIIoTビジネス共創ラボ登壇資料.pdf
iotcomjpadmin
0
150
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
380
Agentic DevOps時代の生存戦略
kkamegawa
0
960
原則から考える保守しやすいComposable関数設計
moriatsushi
3
500
~宇宙最速~2025年AWS Summit レポート
satodesu
1
1.2k
2025/6/21 日本学術会議公開シンポジウム発表資料
keisuke198619
2
470
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
3
280
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
180
実践! AIエージェント導入記
1mono2prod
0
140
変化する開発、進化する体系時代に適応するソフトウェアエンジニアの知識と考え方(JaSST'25 Kansai)
mizunori
0
130
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Six Lessons from altMBA
skipperchong
28
3.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Done Done
chrislema
184
16k
Transcript
そのCIDR、ほんとに使って大丈夫? VPCについてあらためて考えてみる JAWS FESTA 2023 懇親会LT
自己紹介 名前: 畠山 大治 業務: AWSを使ったインフラ構築 @某CIre 趣味: Perfumeを追いかける(ファンクラブ 9年目)
読書、映画・アニメを見る 資格: AWS認定全冠、GC認定ACE、失効間近のCCNA JAWS歴: コロナ禍にJAWSデビュー 現在は運営もやってます(OpsJAWS) 好きなAWSサービス: VPC @hatake_book
昨日の記録 ⚫大地のうどん、資さんうどんおいしすぎた
LTのきっかけ いつものようにAWS公式ドキュメントを見ていたら…
LTのきっかけ いつものようにAWS公式ドキュメントを見ていたら… VPCのことは好き。 でも、VPCのこと本当に 理解できてるかな?
話すこと・前提 ⚫VPCを使う前に確認しておきたいことを勝手にまとめました ⚫ついでに、みんな大好き(?)VPCについてちょっとおさらい ⚫ベスプラに沿うように意識してますが、あくまで個人的な まとめです ⚫気になるところあったら懇親会で捕まえてください!!
アジェンダ ⚫VPCについて軽くおさらい ⚫VPC使う時にあらかじめ確認しておきたいこと ⚫デフォルトVPC ⚫CIDR ⚫名前解決 ⚫消費されるIPアドレス ⚫IPアドレスの管理 ⚫IPv6 ⚫おまけ
VPCについて軽くおさらい
VPCとは ⚫VPCはリージョンごとに作成 サブネットはAZごとに作成 ⚫サービス開始は2009年 ⚫EC2のサービス開始よりも後(EC2は2006年) ⚫VPCリリース前のEC2は「EC2-Classic」と呼ばれる (サービス終了済み) ⚫たまにAWSサービスの裏にいる黒子的な存在 論理的に分離されたAWS内部の仮想ネットワーク https://docs.aws.amazon.com/ja_jp/vpc/latest/
userguide/what-is-amazon-vpc.html
VPCとは ⚫関連サービスは多岐にわたる(コンソール画面参考) ⚫ネットワーク系: サブネット、インターネットGW、ルートテーブル、VPN、Transit Gateway、 VPC Lattice … ⚫ セキュリティ系:
ネットワークACL、セキュリティグループ、DNS Firewall、 Network Firewall… ⚫実は、AWS CLIコマンドでは EC2の中に位置する
VPC使う時にあらかじめ 確認しておきたいこと ~デフォルトVPC~
デフォルトVPCの扱い ⚫クオーターの観点 ⚫VPCの上限数はアカウントあたり5個まで ⚫上限緩和可能だが、残しておくメリット が薄いので削除推奨 クオーターとセキュリティの観点から、削除推奨 ⚫セキュリティの観点 ⚫デフォルトVPC内にはパブリックサブネットが 存在する ⚫インターネットGW、セキュリティグループも
デフォルトのものが存在する ⚫デフォルトのサブネット、ルートテーブル、 IGW、SGもまとめて削除しましょう ※デフォルトVPC達は後から再作成も可能です
VPC使う時にあらかじめ 確認しておきたいこと ~CIDR~
使用しないほうがいいCIDR ⚫リンクローカルアドレス:169.254.0.0/29 特殊な意味を持つCIDR グローバルIPを含むCIDR ⚫使用しても良いが、インターネットに抜ける場合などに影響あり ⚫運用者も混乱するはず、よほどのことが無ければ避けるべき (異論あったら教えてください!!) AWSで予約しているCIDR ⚫172.17.0.0/16 ⚫Cloud9、Sage
Makerを使用するとIPアドレスの競合が発生する可能性あり
使用しないほうがいいCIDR ⚫リンクローカルアドレス:169.254.0.0/29 特殊な意味を持つCIDR グローバルIPを含むCIDR ⚫使用しても良いが、インターネットに抜ける場合などに影響あり ⚫運用者も混乱するはず、よほどのことが無ければ避けるべき (異論あったら教えてください!!) AWSで予約しているCIDR ⚫172.17.0.0/16 ⚫Cloud9、Sage
Makerを使用するとIPアドレスの競合が発生する可能性あり そもそも作成不可(エラーになる) 作成は可能 作成は可能
VPC使う時にあらかじめ 確認しておきたいこと ~名前解決~
名前解決関連で確認しておきたいこと ⚫VPCのDNS関連の設定、基本的には有効に ⚫DNS解決(enableDnsSupport) ⚫DNSホスト名(enableDnsHostnames) ⚫ある特定のDNSサーバーを使いたい場合は、DHCPオプションセットを別途作成する ⚫DNSサーバーは必ずオンプレにあるDNSサーバーを使いたい、など ⚫ある特定の名前解決の設定をしたいときは、Route53 Resolver Endpointを使用する ⚫syanai.localだけはオンプレのDNSサーバーで名前解決させたい、など
⚫料金には注意 0.125USD ENI ごと / 1時間 → 90USD / 月 × 2 ENI (ENIは最低2つ必要) = 180USD / 月
VPC使う時にあらかじめ 確認しておきたいこと ~消費されるIPアドレス~
裏側でENIを消費するサービス(一例) ⚫エージェントを使用する場合はENIを4つ使用 ⚫エージェントを使用しなくてもENIを2つ使用 DataSync ⚫ジョブ実行時にENIが追加で1つ必要 Glue パツパツのCIDRにしていると危険 各サービスドキュメントの「ネットワーク要件」を要チェック!
VPC使う時にあらかじめ 確認しておきたいこと ~IPアドレスの管理~
IPアドレスの管理を考える ⚫社内で代々受け継がれるIPアドレス管理表を事前に確認 ⚫CIDRを後で変更するのは絶望的 ⚫IPアドレス管理には IP Address Manager(IPAM) を積極的に活用 ⚫事前にIPAMでIPのプールを作っておくことで、VPC作成時にプールの 中からCIDRを引っ張ってくることが可能
VPC使う時にあらかじめ 確認しておきたいこと ~IPv6~
IPv4と色々違うIPv6 ⚫IPv6はグローバルに一意なのでCIDRを事前に定義できない ⚫各リージョンで定められた範囲から、勝手に払い出される ⚫IaCを使う場合は、作成したリソースから属性値を引っ張ってくるなどの対応が必要 ⚫IPv6を使用した名前解決が必要な場合はDNS64を使用 ⚫DNS64は明示的に有効化する必要あり ⚫NAT64はデフォルトで有効 ⚫IPv6を使ったインターネットアウトバウンドがある場合は注意 ⚫場合によっては Egress
Only Internet Gateway を追加する必要あり
IPv4と色々違うIPv6 ⚫IPv6についての詳細は外道父さんの神ブログへ! https://blog.father.gedow.net/2023/09/04/aws-public-ipv4-to-ipv6/
VPC使う時にあらかじめ 確認しておきたいこと ~おまけ~
Terraformを使う場合 ⚫cidrsubnet 関数を積極的に利用しよう ⚫VPCのCIDRだけ定義しておけば、パラメータをいじるだけで サブネットのCIDRを定義できる ⚫IPv6のCIDRでも使用可能 https://developer.hashicorp.com/terraform/language/functions/cidrsubnet
さいごに 何かとやっかいもの扱いされがち(?)なVPCですが もっと知りたくなってくれたらうれしいです
参考情報 ⚫VPC 公式ドキュメント ⚫ https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html ⚫create-vpc — AWS CLI 1.29.57
Command Reference ⚫ https://docs.aws.amazon.com/cli/latest/reference/ec2/create-vpc.html ⚫VPC CIDR ブロック ⚫ https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-cidr-blocks.html ⚫VPC 内の DNS 属性 ⚫ https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-dns.html#vpc-dns-support ⚫AWS DataSyncネットワーク要件 ⚫ https://docs.aws.amazon.com/ja_jp/datasync/latest/userguide/datasync-network.html ⚫AWS Glue のエラー「The specified subnet does not have … ⚫ https://repost.aws/ja/knowledge-center/glue-specified-subnet-free-addresses ⚫VPCのDNS解決とDNSホスト名の関係性について検証してみた ⚫ https://blog.serverworks.co.jp/2023/05/02/175854#DNS%E3%83%9B%E3%82%B9%E3%83%88%E5%90%8 DenableDnsHostnames ⚫AWSのPublic IPv4構成をIPv6に切り替える ⚫ https://blog.father.gedow.net/2023/09/04/aws-public-ipv4-to-ipv6/