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 上のリソースを CDK する
Search
[email protected]
April 15, 2022
Programming
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS Outposts 上のリソースを CDK する
AWS Outposts 上のリソースを CDK で管理する話です
[email protected]
April 15, 2022
More Decks by
[email protected]
See All by
[email protected]
NetBox をオンプレミスから AWS へ移してみた
moba
0
1.3k
AWS CDKでもMacを 管理したい
moba
0
590
AWS Outposts を AWS CDK で管理する話
moba
0
550
Other Decks in Programming
See All in Programming
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
330
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
130
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
280
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
170
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
790
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.1k
Creating Composable Callables in Contemporary C++
rollbear
0
130
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.1k
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
630
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
520
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
Featured
See All Featured
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
200
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
The Mindset for Success: Future Career Progression
greggifford
PRO
0
360
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Mind Mapping
helmedeiros
PRO
1
250
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
How to train your dragon (web standard)
notwaldorf
97
6.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
160
Transcript
© NTT Communications Corporation All Rights Reserved. AWS Outposts 上のリソースを
CDK する 2022/4/9 NTT Communications 株式会社 福田優真
© NTT Communications Corporation All Rights Reserved. 2 目次 •
自己紹介 • AWS Outposts について • AWS Outposts のリソースを CDK する方法 • まとめ
© 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 で動くリソースを CDK する話
© NTT Communications Corporation All Rights Reserved. 7 苦労した点 •
とにかく CFn がサポートしてなくて、 カスタムリソースでガリガリ ◦ サポートしても L1 ◦ フィードバックはしてるので、もしかしたら状況 変わるかも • 一部リソースが別のリソースを利用するのに必要だが、 特にそれらに依存性がないことによるデプロイ単位を 決めるのに最初は困った • レファレンスがないので、ドキュメントや API レファレンス、エラーメッセージと睨めっこして ひたすら解析 • etc…
© NTT Communications Corporation All Rights Reserved. 8 AWS Outposts
© NTT Communications Corporation All Rights Reserved. 9 AWS Outposts
AWS の出すハイブリッドクラウド製品
© NTT Communications Corporation All Rights Reserved. 10 ハイブリッドクラウド •
オンプレミスにクラウドサービスを導入するための ソリューション • Azure/GCP/AWS 各社が展開中 ◦ Azure Stack Hub/HCI ◦ GCP Anthos/Distributed Cloud ◦ AWS Outposts • データを Public な場所に流さなくても クラウドサービスを利用できるようになる
© NTT Communications Corporation All Rights Reserved. 11 従来のクラウドサービス
© NTT Communications Corporation All Rights Reserved. 12 ハイブリッドクラウドサービス
© NTT Communications Corporation All Rights Reserved. 13 AWS Outposts
詳解 • AWS のサブセットが提供される ◦ EC2, EKS, ALB, S3, … • Public な AWS と変わらない体験を提供 ◦ Public な AWS のリソースともシームレスに連携 • 42U ラックまたは 1U/2U サーバータイプを販売 ◦ 今回は 42U ラックで試した結果について解説
© NTT Communications Corporation All Rights Reserved. 14 AWS Outposts
詳解 管理もマネジメントコンソールからできる
© NTT Communications Corporation All Rights Reserved. 15 AWS Outposts
詳解 Outpost 上の subnet 等もマネジメントコンソールから管理可能
© NTT Communications Corporation All Rights Reserved. 16 AWS Outposts
のデプロイイメージ Outposts は AZ に紐付く
© NTT Communications Corporation All Rights Reserved. 17 AWS Outposts
のイメージ 42U タイプ (ref: https://aws.amazon.com/jp/blogs/news/outposts-osaka/)
© NTT Communications Corporation All Rights Reserved. 18 AWS Outposts
のユースケース • 低レイテンシーなコンピューティング ◦ Public AWS よりも近くでやりとりするため、 レイテンシーの要件が厳しいところでも導入可能 • ローカルなデータ処理 ◦ データが外出しできないような場所でも 外にデータが出ないため導入可能 • データレジデンシー ◦ データを特定の地域に留めおかなければならない 場所でもその地域にデプロイするだけ • オンプレミス環境のモダナイズ ◦ クラウド移行の前段として
© NTT Communications Corporation All Rights Reserved. 19 AWS Outposts
with CDK
© NTT Communications Corporation All Rights Reserved. 20 やりたいこと AWS
Outposts 上で動くリソースを CDK で管理する
© NTT Communications Corporation All Rights Reserved. 21 試した Outposts
リソース • subnet • EBS Volume • S3 on Outposts ◦ Outposts に載せるものは S3 on Outposts と 呼ばれる • ALB
© NTT Communications Corporation All Rights Reserved. 22 試した結果 •
一部カスタムリソースを使わなくてはならない • L2 サポートがまだ
© NTT Communications Corporation All Rights Reserved. 23 カスタムリソース •
CloudFormation が対応してないリソースを 管理する仕組み • 作成/更新/削除のライフサイクルを Lambda で管理 • CDK でやる場合は provider framework という AWS が提供するフレームワークに則って ボイラープレートとライフサイクルを担当する Lambda を用意するだけ
© NTT Communications Corporation All Rights Reserved. 24 Lambda 実装例
© NTT Communications Corporation All Rights Reserved. 25 Lambda 実装例
どんなライフサイクルでフックされた のかの状態を示す
© NTT Communications Corporation All Rights Reserved. 26 Lambda 実装例
各ライフサイクルに合わせて リソース操作
© NTT Communications Corporation All Rights Reserved. 27 ボイラープレート
© NTT Communications Corporation All Rights Reserved. 28 ボイラープレート ライフサイクルをハンドルする
Lambda を用意する
© NTT Communications Corporation All Rights Reserved. 29 ボイラープレート Provider
Framework お決まりのコード
© NTT Communications Corporation All Rights Reserved. 30 ボイラープレート ハンドラに追加で渡したいものは
この properties に オブジェクトで指定
© NTT Communications Corporation All Rights Reserved. 31 カスタムリソース使用先 •
subnet ◦ 顧客所有の IP をリソースにつける操作が未サポート ▪ 顧客所有の IP: オンプレ環境から AWS に 接続する IP アドレス • ALB ◦ Outposts へのデプロイ自体が未サポート
© NTT Communications Corporation All Rights Reserved. 32 カスタムリソースがいらないもの •
S3 on Outposts ◦ L1 はサポートされているが、プレビュー段階 • EBS Volume ◦ L1 サポート済み
© NTT Communications Corporation All Rights Reserved. 33 Outposts resources
with CDK
© NTT Communications Corporation All Rights Reserved. 34 EBS Volume
デプロイ先 Outpost を指定するだけ
© NTT Communications Corporation All Rights Reserved. 35 EBS Volume
© NTT Communications Corporation All Rights Reserved. 36 EBS Volume
デプロイ先を指定するだけ
© NTT Communications Corporation All Rights Reserved. 37 S3 on
Outposts • バケットとは別に次の2つをデプロイする必要がある ◦ Outposts エンドポイント ▪ VPC から S3 on Outposts へ接続するための ネットワークインターフェースコレクション ◦ アクセスポイント ▪ バケットポリシーを管理を簡素化してくれる機能 • バケットは aws-cdk-lib/aws-s3outposts に あるものを利用して管理する必要がある ◦ v1 なら @aws-cdk/aws-s3outposts • 現在プレビュー段階
© NTT Communications Corporation All Rights Reserved. 38 S3 on
Outposts(Outposts エンドポイント) • サブネット内に Outpost 毎に用意する ◦ 同じサブネットに2つつくろうとするとエラー ◦ サブネット内で共有して利用される • バケットに紐付いてないので、サブネットと一緒に 管理した方が良さそう • 443(HTTPS) inboud ルールを持つ セキュリティグループを割り当てなければならない • 最近サポートされた?(昨年10月あたりは CLI か マネジメントコンソールからしか操作できなかったはず)
© NTT Communications Corporation All Rights Reserved. 39 S3 on
Outposts(Outposts エンドポイント) S3 のマネジメントコンソール内にあるが、直接 S3 on Outposts に 結び付いてるわけではない
© NTT Communications Corporation All Rights Reserved. 40 S3 on
Outposts(Outposts エンドポイント)
© NTT Communications Corporation All Rights Reserved. 41 S3 on
Outposts(Outposts エンドポイント) デプロイ先の情報と エンポイントにつける SG の 情報を設定する
© NTT Communications Corporation All Rights Reserved. 42 S3 on
Outposts(バケット) • aws-cdk-lib/aws-s3outpost に専用の コンポーネントがある • Outpost 毎に分離されているため、デプロイ先 Outpost を指定する必要がある ◦ Public 上の S3 とも分離されている
© NTT Communications Corporation All Rights Reserved. 43 S3 on
Outposts(バケット)
© NTT Communications Corporation All Rights Reserved. 44 S3 on
Outposts(バケット) バケット名の他に デプロイ先 Outpost を指定する
© NTT Communications Corporation All Rights Reserved. 45 S3 on
Outposts(アクセスポイント) • S3 の機能の1つでありバケットに紐付くので、 S3 on Outposts バケットと一緒に管理した方が 良さそう • VPC 単位でデプロイ • 実はアクセスポイントをデプロイすると、デプロイ先 サブネットに Outposts エンドポイントがなければ 勝手にデプロイしてくれる ◦ 共有設定も勝手にしてくれるので、実はこれを コードで定義しておけば OK だったり
© NTT Communications Corporation All Rights Reserved. 46 S3 on
Outposts(アクセスポイント)
© NTT Communications Corporation All Rights Reserved. 47 S3 on
Outposts(アクセスポイント) アクセスポイント名や接続先 バケット、 デプロイ先 VPC を 指定する ★ aws-cdk-lib/aws-s3 のアクセスポイントでは bucket にバケット名を取る が、 aws-cdk-lib/aws-s3outposts はバケットARN をとる
© NTT Communications Corporation All Rights Reserved. 48 subnet •
Outpost 上へのデプロイはサポート済み • 顧客所有の IP アドレスをサブネット上のリソースに つける設定(mapCustomerOwnedIpOnLaunch)を 入れるにはカスタムリソースを使う
© NTT Communications Corporation All Rights Reserved. 49 subnet
© NTT Communications Corporation All Rights Reserved. 50 subnet デプロイ先
Outpost を指定できる プロパティが追加されている
© NTT Communications Corporation All Rights Reserved. 51 subnet(MapOnCustomerOwnedIpOnLaunch) •
ModifySubnetAttribute API に MapOnCustomerOwnedIpOnLaunch の設定がある ◦ これを利用 ◦ ちなみに、 CreateSubnet API にはこの設定がない
© NTT Communications Corporation All Rights Reserved. 52 subnet(MapOnCustomerOwnedIpOnLaunch)
© NTT Communications Corporation All Rights Reserved. 53 subnet(MapOnCustomerOwnedIpOnLaunch) 参照先顧客所有
IP のプール ID を設 定し、 map するようにする
© NTT Communications Corporation All Rights Reserved. 54 ALB •
Outposts 上へのデプロイもできないので、 カスタムリソースで自前管理する必要がある • もちろん、顧客所有の IP をつける場合も同じで カスタムリソースによるリソース作成時に設定する 必要がある ◦ subnet と違って CreateLoadBalancer API では 設定できるが、 ModifyLoadBalancerAttributes API では 設定不可
© NTT Communications Corporation All Rights Reserved. 55 ALB(作成/更新) ★
更新時はリソースを作っておけば、古いものは自動削除される
© NTT Communications Corporation All Rights Reserved. 56 ALB(作成/更新) 参照先顧客所有
IP のプール ID を設 定し、 map するようにする ★ 更新時はリソースを作っておけば、古いものは自動削除される
© NTT Communications Corporation All Rights Reserved. 57 ALB(削除)
© NTT Communications Corporation All Rights Reserved. 58 ALB(削除) デプロイしたロードバランサーを
指定する
© NTT Communications Corporation All Rights Reserved. 59 まとめ
© NTT Communications Corporation All Rights Reserved. 60 サポート状況 •
L2 はなく、 L1 サポートのみ • Outposts へのサポート状況にバラつきあり ◦ サポート済: ELB Volume, S3 on Outposts ▪ ただし、 S3 on Outposts はプレビュー段階 ◦ 一部サポート済: subnet ◦ 未サポート: ALB
© NTT Communications Corporation All Rights Reserved. 61 まとめ •
オンプレでもクラウドの恩恵を預かれるハイブリッド クラウド製品が登場してきた ◦ AWS Outposts • AWS Outposts に展開するリソースを CDK する 方法について紹介 • Outposts を CDK でやるにはカスタムリソースの 知識が必要 ◦ CDK で設定できない項目がある
© NTT Communications Corporation All Rights Reserved. 62 NTT Communciations
株式会社