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
AWS Outposts を AWS CDK で管理する話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
[email protected]
March 28, 2022
Programming
540
0
Share
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.2k
AWS CDKでもMacを 管理したい
moba
0
590
AWS Outposts 上のリソースを CDK する
moba
0
1.3k
Other Decks in Programming
See All in Programming
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
4
990
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
1k
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
150
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
110
Making the RBS Parser Faster
soutaro
0
490
SREに優しいTerraform構成 modulesとstateの組み方
hiyanger
2
150
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
450
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
280
CDK Deployのための ”反響定位”
watany
5
800
2026_04_15_量子計算をパズルとして解く
hideakitakechi
0
110
Server-Side Kotlin LT大会 vol.18 [Kotlin-lspの最新情報と Neovimのlsp設定例]
yasunori0418
1
170
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
640
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
New Earth Scene 8
popppiees
3
2.1k
Navigating Team Friction
lara
192
16k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
Abbi's Birthday
coloredviolet
2
7.2k
Paper Plane (Part 1)
katiecoart
PRO
0
6.7k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
150
Raft: Consensus for Rubyists
vanstee
141
7.4k
Building the Perfect Custom Keyboard
takai
2
730
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
120
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