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
190
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
サーバレスを本気で理解したいあなたに贈る 「実践力を鍛えるBootcamp」の紹介
hatahata021
2
160
CloudFrontを使ってSPAなWebサイトを公開するときに気をつけること
hatahata021
1
1.2k
「AWSの薄い本」の紹介
hatahata021
1
64
ALBの新機能 Automatic Target Weightsとgray failuresについて考えてみる
hatahata021
0
680
re:Invent Workshop「Advanced Multi-AZ Resilience Patterns」をやってみた
hatahata021
1
190
Transfer Family for SFTPを使ってみよう
hatahata021
2
1.5k
はじめてのCloudflare
hatahata021
1
110
AWS認定全冠するまでのおすすめの順番
hatahata021
12
9.6k
DX接続タイプの違いが説明できるようになろう
hatahata021
0
2.7k
Other Decks in Technology
See All in Technology
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
230
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.9k
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
300
AGIについてChatGPTに聞いてみた
blueb
0
130
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
430
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
660
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
690
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
427
64k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
KATA
mclloyd
29
14k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
A Philosophy of Restraint
colly
203
16k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
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/