Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AWS Outposts を AWS CDK で管理する話
Search
[email protected]
March 28, 2022
Programming
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS Outposts を AWS CDK で管理する話
AWS Outposts で動くリソースを CDK と terraform の両方で管理した内容について発表しました
[email protected]
March 28, 2022
More Decks by
[email protected]
See All by
[email protected]
NetBox をオンプレミスから AWS へ移してみた
moba
0
1.4k
AWS CDKでもMacを 管理したい
moba
0
620
AWS Outposts 上のリソースを CDK する
moba
0
1.3k
Other Decks in Programming
See All in Programming
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
290
カツオ、ご期待ください
suneo3476
0
130
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.2k
SREの越境 / SRE Collaboration
y0hgi
2
290
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.6k
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
120
Intent as Code
shoppingjaws
6
1.1k
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
1
2k
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
150
mrbgem 三角測量 開発
ogom
0
170
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.3k
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
730
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
520
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
First, design no harm
axbom
PRO
2
1.3k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
420
Ruling the World: When Life Gets Gamed
codingconduct
0
380
Transcript
© NTT Communications Corporation All Rights Reserved. AWS Outposts を
AWS CDK で管理する話 NTT Communications 株式会社
© NTT Communications Corporation All Rights Reserved. 2 目次 •
自己紹介 • 扱うサービスについて • そのサービスで IaC する方法 ◦ CDK ◦ Terraform • まとめ
© NTT Communications Corporation All Rights Reserved. 3 自己紹介 •
名前: 福田優真 • 所属: NTT Com イノベーションセンター ◦ 主にクラウドまわりをやってます ▪ マルチクラウド ▪ ハイブリッドクラウド
© NTT Communications Corporation All Rights Reserved. 4 宣伝 •
ニュースリリース出てます ◦ 国内初、「AWS Outposts」に 自社データ分析ツールを組み 込んだソリューションを開発 • 発表で取り扱う内容についての ブログ書きました
© NTT Communications Corporation All Rights Reserved. 5 本題
© NTT Communications Corporation All Rights Reserved. 6 要約 今回は
AWS Outposts を IaC する話
© NTT Communications Corporation All Rights Reserved. 7 AWS Outposts
© NTT Communications Corporation All Rights Reserved. 8 AWS Outposts
AWS の出すハイブリッドクラウド製品
© NTT Communications Corporation All Rights Reserved. 9 ハイブリッドクラウド •
オンプレミスにクラウドサービスを導入するための ソリューション • Azure/GCP/AWS 各社が展開中 ◦ Azure Stack Hub/HCI ◦ GCP Anthos/Distributed Cloud ◦ AWS Outposts • データを Public な場所に流さなくても クラウドサービスを利用できるようになる
© NTT Communications Corporation All Rights Reserved. 10 従来のクラウドサービス
© NTT Communications Corporation All Rights Reserved. 11 ハイブリッドクラウドサービス
© NTT Communications Corporation All Rights Reserved. 12 AWS Outposts
詳解 • AWS のサブセットが提供される ◦ EC2, EKS, ALB, S3, … • Public な AWS と変わらない体験を提供 ◦ Public な AWS のリソースともシームレスに連携 • 42U ラックまたは 1U/2U サーバータイプを販売 ◦ 今回は 42U ラックで試した結果について解説
© NTT Communications Corporation All Rights Reserved. 13 AWS Outposts
詳解 管理もマネジメントコンソールからできる
© NTT Communications Corporation All Rights Reserved. 14 AWS Outposts
詳解 Outpost 上の subnet 等もマネジメントコンソールから管理可能
© NTT Communications Corporation All Rights Reserved. 15 AWS Outposts
のデプロイイメージ Outposts は AZ に紐付く
© NTT Communications Corporation All Rights Reserved. 16 AWS Outposts
のイメージ 42U タイプ (ref: https://aws.amazon.com/jp/blogs/news/outposts-osaka/)
© NTT Communications Corporation All Rights Reserved. 17 AWS Outposts
のユースケース • 低レイテンシーなコンピューティング ◦ Public AWS よりも近くでやりとりするため、 レイテンシーの要件が厳しいところでも導入可能 • ローカルなデータ処理 ◦ データが外出しできないような場所でも 外にデータが出ないため導入可能 • データレジデンシー ◦ データを特定の地域に留めおかなければならない 場所でもその地域にデプロイするだけ • オンプレミス環境のモダナイズ ◦ クラウド移行の前段として
© NTT Communications Corporation All Rights Reserved. 18 IaC
© NTT Communications Corporation All Rights Reserved. 19 IaC •
Infrastructure as Code • インフラをコードによって定義/管理する
© NTT Communications Corporation All Rights Reserved. 20 IaC のメリット
• インフラ構築をコード化することによって手作業を 減らせる • ノウハウがコードに表れるため、暗黙知を減らせる • 単なるコードなので、インフラをテストしやすくなる • 自動化できる • 抽象化しておくことで、環境差異を残して共通化できる ◦ 環境毎にデプロイする際の工数圧縮
© NTT Communications Corporation All Rights Reserved. 21 AWS で
IaC • 現状は次の2つが主流 ◦ CloudFormation/AWS CDK ◦ Terraform
© NTT Communications Corporation All Rights Reserved. 22 AWS CDK
© NTT Communications Corporation All Rights Reserved. 23 AWS CDK
• AWS Cloud Development Kit • Apache License 2.0 • 汎用言語でインフラを定義し、 CloudFormation を 通してインフラを管理するフレームワーク ◦ CloudFormation: JSON/YAML で AWS リソース群を 管理する AWS サービス ◦ TypeScript/Java/C# 等が利用できる • 汎用言語の抽象化力によってコードが短く抑えられる
© NTT Communications Corporation All Rights Reserved. 24 AWS CDK
の例 (TypeScript)
© NTT Communications Corporation All Rights Reserved. 25 AWS CDK
の例 (TypeScript) Subnet の 設定を定義
© NTT Communications Corporation All Rights Reserved. 26 AWS CDK
の例 (TypeScript) 設定した内容を持つ subnet を所有する VPC を定義
© NTT Communications Corporation All Rights Reserved. 27 CloudFormation の例
170 行程度
© NTT Communications Corporation All Rights Reserved. 28 CloudFormation の例
VPC を定義
© NTT Communications Corporation All Rights Reserved. 29 CloudFormation の例
ここで各 subnet や NAT GW, Internet GW を 定義
© NTT Communications Corporation All Rights Reserved. 30 CloudFormation の例
定義している subnet のうちの1つを抽出
© NTT Communications Corporation All Rights Reserved. 31 カスタムリソース •
CloudFormation で提供されていないリソースを 管理するためのフレームワーク ◦ Outposts も一部は CloudFormation で 管理できない(つまり CDK でも管理できない)ものがある • リソースの作成/更新/削除時に Lambda がフックされる
© NTT Communications Corporation All Rights Reserved. 32 Lambda フックの実装例
作成/更新/削除をフックする実装例
© NTT Communications Corporation All Rights Reserved. 33 Terraform
© NTT Communications Corporation All Rights Reserved. 34 Terraform •
HashiCorp が開発する OSS • AWS CDK と同じように IaC を実現する • Mozilla Public License 2.0 • マルチクラウドをサポート • HashiCorp Configuration Language を使って インフラを定義 • AWS API とリソースが比較的1対1対応しているため、 コード量が長くなりがち ◦ HCL も DSL のため、抽象化力はそこまで高くはない
© NTT Communications Corporation All Rights Reserved. 35 Terraform の例
90行程度
© NTT Communications Corporation All Rights Reserved. 36 Terraform の例
VPC を定義
© NTT Communications Corporation All Rights Reserved. 37 Terraform の例
ここで各 subnet や NAT GW, Internet GW を 定義
© NTT Communications Corporation All Rights Reserved. 38 Terraform の例
定義している subnet のうちの1つを抽出
© NTT Communications Corporation All Rights Reserved. 39 Outposts IaC
© NTT Communications Corporation All Rights Reserved. 40 Outposts IaC
• Outposts を IaC する • CDK と Terraform で IaC した結果を紹介 ◦ どこまでできるのかや注意点を紹介
© NTT Communications Corporation All Rights Reserved. 41 Outposts IaC
with AWS CDK
© NTT Communications Corporation All Rights Reserved. 42 Outposts IaC(CDK)
• subnet ◦ Outposts 上へデプロイするまではサポート済 ◦ CoIP を自動でつける設定は カスタムリソースで要定義 ▪ CoIP: オンプレから接続する際に利用する IP アドレス。 AWS リソースにつける IP アドレスを こちらから提供できる • customer owned IP address • EBS Volume ◦ サポート済
© NTT Communications Corporation All Rights Reserved. 43 Outposts IaC(CDK)
• EC2 インスタンス ◦ subnet 上に載るので、 subnet を Outposts 上へ デプロイしておけば OK (root volume な EBS も勝手に Outposts 上に載る) • ALB ◦ 作成/更新/削除はサポートされてないので、自前で カスタムリソースを使って管理 • S3 on Outposts ◦ サポート済 ◦ ただし、プレビュー段階
© NTT Communications Corporation All Rights Reserved. 44 Outposts IaC
with Terraform
© NTT Communications Corporation All Rights Reserved. 45 Outposts IaC(Terraform)
• subnet ◦ サポート済 ◦ CoIP をつけるのもサポート済 • EBS Volume ◦ サポート済
© NTT Communications Corporation All Rights Reserved. 46 Outposts IaC(Terraform)
• EC2 インスタンス ◦ CDK と同じで subnet へ展開するだけで自動で載る • ALB ◦ サポート済 • S3 on Outposts ◦ サポート済
© NTT Communications Corporation All Rights Reserved. 47 言語 状態の管理方法
コード量 CDK TypeScript/Java/ JavaScript/C#/ Go(preview) CloudFormation 小 Terraform HCL tfstate ファイル (S3/Terraform Cloud/ ローカル等) 大 Terraform と CDK 比較
© NTT Communications Corporation All Rights Reserved. 48 Terraform と
CDK の Outposts サポート比較 EC2 subnet EBS Volume EC2 インスタンス ALB S3 on Outposts CDK △ ◦ ◦ × ◦(※) Terraform ◦ ◦ ◦ ◦ ◦ • ◦は完全にサポート、△は一部サポートされてない機能あり、×は 完全にサポートされてない • (※)プレビュー版
© NTT Communications Corporation All Rights Reserved. 49 まとめ
© NTT Communications Corporation All Rights Reserved. 50 まとめ •
Outposts とは AWS の出すハイブリッドクラウド製品 • Outposts は IaC できるが、Terraform の方は サポート済みなものが多い一方 CDK ではまだ カスタムリソースを使って頑張る必要あり • Terraform と CDK による管理は一長一短 ◦ CDK: コード量小, 新サービスへの対応に難あり, リソースを CloudFormation で一括管理 ◦ Terraform: コード量大, 新サービスへの対応が素早い, tfstate の管理が課題
© NTT Communications Corporation All Rights Reserved. 51 登壇予定 •
AWS CDK Conference Japan に登壇します ◦ CDK のより詳細な部分はそちらにて発表予定です ◦ 2022/4/9 登壇予定
© NTT Communications Corporation All Rights Reserved. 52