Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Solutions Constructs で静的ホスティングが楽になる

watany
January 25, 2023

AWS Solutions Constructs で静的ホスティングが楽になる

JAWS-UG CDK支部 #5でお話しした内容です。
https://jawsug-cdk.connpass.com/event/269789/

解説記事
https://zenn.dev/watany/articles/856b6154203fe4

watany

January 25, 2023
Tweet

More Decks by watany

Other Decks in Technology

Transcript

  1. JAWS-UG CDK支部 #5 AWS Solutions Constructs で静的ホスティングが楽になる 2023/01/25 watany 1

  2. About me Watanabe Yohei (Twitter: [email protected]) Company Name: NTT TechnoCross

    Corporation Role: AWS Architect, Instructor, CCoE AWS, CDK 2022 APN ALL AWS Certifications Engineers AWS Community Builder(Cloud Operations) Contributer (AWS CDK) 2
  3. なんかいい感じにホスティングしてえ 3

  4. 初速を出しながらホスティング する技術 Amplify 初速は出せそう。 AWS WAF 適用が難しいなど運用後 課題あり? AWS CDK

    ご存じ、開発フレームワーク L2 Construct は良い抽象度だが、も っと速度が欲しい -> L3 Construct ならばありかも 4
  5. ところで 5

  6. ということで、今回のかくし芸は ・L3 Construct(Solutions Constructs)で ・ホスティング構成 を作るやつ。 6

  7. おさらい: AWS Solutions Constructs L3 Construct による高度な抽象化 L2 Construct は単一リソース+

    α の抽象化 L3 Construct は L2 × 複数サービスの抽象化 Better Default デフォルト値が Well-Architected 構成 AWS のアーキテクトチームによって構築 BLEA: L2 Construct 中心のテンプレート 7
  8. ということで こんな図の構成をやっていく 8

  9. こんなモジュールがあるので 9

  10. こう書けば終わるはず (Region: ap-northeast-3) 10

  11. ダメでした 11

  12. Why? CloudFront、WAF のリージョン問題。 ちなみに CloudFront は ap- northeast-3 からデプロイ OK!

    WAF ACL v2 のドキュメントを見ると……? us-east-1 じゃないとダメそう。 https://docs.aws.amazon.com/ja_j p/AWSCloudFormation/latest/Us erGuide/aws-resource-wafv2- webacl.html 12
  13. CDK でどうやるの? (~ v2.49) 13

  14. CDK でどうやるの? (v2.50 ~) 14

  15. 補足:CrossRegionReferences 昔は外部ライブラリ「cdk-remote-stack」 が必要でしたが…… ※参考:cdk-remote-stack で WAFv2 と CloudFront のクロスリージ ョン参照を実装する

    https://dev.classmethod.jp/article s/cdk-remote-stack-webacl- cloudfront/ v2.50.0 以降は crossRegionReferences: true で設定がすむ! 15
  16. これでおわり? まだ動かない 16

  17. 原因は… ※以下は仮説(issue あげる予定) エラーメッセージが ValidationError: Template error: instance of Fn::GetAtt

    references undefined resource hogehoge CloudFront が ap-noutheast-3 で管理されている、 crossRegionReferences オプションでは想定さ れていない? 17
  18. そんなこんなで Stack 構成は、これが正解でした Stack(Main Region) Stack(us-east-1 Region) 18

  19. ポイント S3 Bucket に Solutions Constructs のデフォル ト値を入れる方法 各 L2Construct

    の設定は、 @aws- solutions-constructs/core で定義 普通に import できる 19
  20. まとめ リージョン設計が重要なリソースも最近は簡潔に CDK 管理できる CDK によりクロスリージョン参照が容易 Solutions Constructs の Core

    ライブラリでデフォルト設定を改善 20