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
0
1.1k
AWS Outposts 上のリソースを CDK する
AWS Outposts 上のリソースを CDK で管理する話です
[email protected]
April 15, 2022
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
AWS CDKでもMacを 管理したい
moba
0
500
AWS Outposts を AWS CDK で管理する話
moba
0
460
Other Decks in Programming
See All in Programming
DevFest - Serverless 101 with Google Cloud Functions
tunmise
0
130
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
360
Findy Team+ Awardを受賞したかった!ベストプラクティス応募内容をふりかえり、開発生産性向上もふりかえる / Findy Team Plus Award BestPractice and DPE Retrospective 2024
honyanya
0
120
GitHubで育つ コラボレーション文化 : ニフティでのインナーソース挑戦事例 - 2024-12-16 GitHub Universe 2024 Recap in ZOZO
niftycorp
PRO
0
900
テストケースの名前はどうつけるべきか?
orgachem
PRO
1
170
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
320
快速入門可觀測性
blueswen
0
470
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
620
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
1.2k
Amazon S3 NYJavaSIG 2024-12-12
sullis
0
130
menu基盤チームによるGoogle Cloudの活用事例~Application Integration, Cloud Tasks編~
yoshifumi_ishikura
0
130
shadcn/uiを使ってReactでの開発を加速させよう!
lef237
0
150
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
How GitHub (no longer) Works
holman
312
140k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Site-Speed That Sticks
csswizardry
2
210
The Language of Interfaces
destraynor
155
24k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Practical Orchestrator
shlominoach
186
10k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
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
株式会社