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
240
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
170
VPC Block Public AccessとCloudFrontVPCオリジンによって何が変わるのか?
hatahata021
2
490
WernerVogelsのKeynoteで語られた6つの教訓とOps
hatahata021
2
460
サーバレスを本気で理解したいあなたに贈る 「実践力を鍛えるBootcamp」の紹介
hatahata021
2
250
CloudFrontを使ってSPAなWebサイトを公開するときに気をつけること
hatahata021
1
2.1k
「AWSの薄い本」の紹介
hatahata021
1
120
ALBの新機能 Automatic Target Weightsとgray failuresについて考えてみる
hatahata021
0
830
re:Invent Workshop「Advanced Multi-AZ Resilience Patterns」をやってみた
hatahata021
1
240
Transfer Family for SFTPを使ってみよう
hatahata021
2
2.3k
Other Decks in Technology
See All in Technology
ClineにNext.jsのプロジェクト改善をお願いしてみた / 20250321_reacttokyo_LT
optim
1
1.3k
ISUCONにPHPで挑み続けてできるようになっ(てき)たこと / phperkaigi2025
blue_goheimochi
0
140
技術的負債を正しく理解し、正しく付き合う #phperkaigi / PHPerKaigi 2025
shogogg
7
1.8k
Multitenant 23ai の全貌 - 機能・設計・実装・運用からマイクロサービスまで
oracle4engineer
PRO
2
120
LINE API Deep Dive Q1 2025: Unlocking New Possibilities
linedevth
1
160
問題解決に役立つ数理工学
recruitengineers
PRO
7
2k
パスキー導入の課題と ベストプラクティス、今後の展望
ritou
7
1.2k
React Server Componentは 何を解決し何を解決しないのか / What do React Server Components solve, and what do they not solve?
kaminashi
6
1.2k
スケールアップ企業のQA組織のバリューを最大限に引き出すための取り組み
tarappo
4
930
大規模プロジェクトにおける 品質管理の要点と実践 / 20250327 Suguru Ishii
shift_evolve
0
280
IAMのマニアックな話 2025 ~40分バージョン ~
nrinetcom
PRO
8
910
DevOps文化を育むQA 〜カルチャーバブルを生み出す戦略〜 / 20250317 Atsushi Funahashi
shift_evolve
1
110
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Automating Front-end Workflow
addyosmani
1369
200k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
GraphQLとの向き合い方2022年版
quramy
45
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
102
18k
KATA
mclloyd
29
14k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
Unsuck your backbone
ammeep
670
57k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
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/