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

AWS Outposts 上のリソースを CDK する

AWS Outposts 上のリソースを CDK する

AWS Outposts 上のリソースを CDK で管理する話です

[email protected]

April 15, 2022
Tweet

Other Decks in Programming

Transcript

  1. © NTT Communications Corporation All Rights Reserved. AWS Outposts 上のリソースを

    CDK する
 2022/4/9
 NTT Communications 株式会社
 福田優真

  2. © NTT Communications Corporation All Rights Reserved. 2 目次
 •

    自己紹介
 • AWS Outposts について
 • AWS Outposts のリソースを CDK する方法
 • まとめ

  3. © NTT Communications Corporation All Rights Reserved. 3 自己紹介
 •

    名前: 福田優真
 • 所属: NTT Com イノベーションセンター
 ◦ 主にクラウドまわりをやってます
 ▪ マルチクラウド
 ▪ ハイブリッドクラウド

  4. © NTT Communications Corporation All Rights Reserved. 4 取り扱い元
 •

    ニュースリリース出てます
 ◦ 国内初、「AWS Outposts」に 自社データ分析ツールを組み 込んだソリューションを開発 • 発表で取り扱う内容についての ブログ書きました

  5. © NTT Communications Corporation All Rights Reserved. 6 要約
 AWS

    Outposts で動くリソースを CDK する話

  6. © NTT Communications Corporation All Rights Reserved. 7 苦労した点
 •

    とにかく CFn がサポートしてなくて、
 カスタムリソースでガリガリ
 ◦ サポートしても L1
 ◦ フィードバックはしてるので、もしかしたら状況
 変わるかも
 • 一部リソースが別のリソースを利用するのに必要だが、
 特にそれらに依存性がないことによるデプロイ単位を
 決めるのに最初は困った
 • レファレンスがないので、ドキュメントや
 API レファレンス、エラーメッセージと睨めっこして
 ひたすら解析
 • etc…

  7. © NTT Communications Corporation All Rights Reserved. 9 AWS Outposts


    AWS の出すハイブリッドクラウド製品

  8. © NTT Communications Corporation All Rights Reserved. 10 ハイブリッドクラウド
 •

    オンプレミスにクラウドサービスを導入するための
 ソリューション
 • Azure/GCP/AWS 各社が展開中
 ◦ Azure Stack Hub/HCI
 ◦ GCP Anthos/Distributed Cloud
 ◦ AWS Outposts
 • データを Public な場所に流さなくても
 クラウドサービスを利用できるようになる

  9. © NTT Communications Corporation All Rights Reserved. 13 AWS Outposts

    詳解
 • AWS のサブセットが提供される
 ◦ EC2, EKS, ALB, S3, …
 • Public な AWS と変わらない体験を提供
 ◦ Public な AWS のリソースともシームレスに連携
 • 42U ラックまたは 1U/2U サーバータイプを販売
 ◦ 今回は 42U ラックで試した結果について解説

  10. © NTT Communications Corporation All Rights Reserved. 14 AWS Outposts

    詳解
 管理もマネジメントコンソールからできる

  11. © NTT Communications Corporation All Rights Reserved. 15 AWS Outposts

    詳解
 Outpost 上の subnet 等もマネジメントコンソールから管理可能

  12. © NTT Communications Corporation All Rights Reserved. 16 AWS Outposts

    のデプロイイメージ
 Outposts は AZ に紐付く

  13. © NTT Communications Corporation All Rights Reserved. 17 AWS Outposts

    のイメージ
 42U タイプ
 (ref: https://aws.amazon.com/jp/blogs/news/outposts-osaka/)

  14. © NTT Communications Corporation All Rights Reserved. 18 AWS Outposts

    のユースケース
 • 低レイテンシーなコンピューティング
 ◦ Public AWS よりも近くでやりとりするため、
 レイテンシーの要件が厳しいところでも導入可能
 • ローカルなデータ処理
 ◦ データが外出しできないような場所でも
 外にデータが出ないため導入可能
 • データレジデンシー
 ◦ データを特定の地域に留めおかなければならない
 場所でもその地域にデプロイするだけ
 • オンプレミス環境のモダナイズ
 ◦ クラウド移行の前段として

  15. © NTT Communications Corporation All Rights Reserved. 20 やりたいこと
 AWS

    Outposts 上で動くリソースを CDK で管理する

  16. © NTT Communications Corporation All Rights Reserved. 21 試した Outposts

    リソース
 • subnet
 • EBS Volume
 • S3 on Outposts
 ◦ Outposts に載せるものは S3 on Outposts と
 呼ばれる
 • ALB

  17. © NTT Communications Corporation All Rights Reserved. 22 試した結果
 •

    一部カスタムリソースを使わなくてはならない
 • L2 サポートがまだ

  18. © NTT Communications Corporation All Rights Reserved. 23 カスタムリソース
 •

    CloudFormation が対応してないリソースを
 管理する仕組み
 • 作成/更新/削除のライフサイクルを Lambda で管理
 • CDK でやる場合は provider framework という
 AWS が提供するフレームワークに則って
 ボイラープレートとライフサイクルを担当する
 Lambda を用意するだけ

  19. © NTT Communications Corporation All Rights Reserved. 25 Lambda 実装例


    どんなライフサイクルでフックされた のかの状態を示す
  20. © NTT Communications Corporation All Rights Reserved. 26 Lambda 実装例


    各ライフサイクルに合わせて リソース操作
  21. © NTT Communications Corporation All Rights Reserved. 31 カスタムリソース使用先
 •

    subnet
 ◦ 顧客所有の IP をリソースにつける操作が未サポート
 ▪ 顧客所有の IP: オンプレ環境から AWS に
 接続する IP アドレス
 • ALB
 ◦ Outposts へのデプロイ自体が未サポート

  22. © NTT Communications Corporation All Rights Reserved. 32 カスタムリソースがいらないもの
 •

    S3 on Outposts
 ◦ L1 はサポートされているが、プレビュー段階
 • EBS Volume
 ◦ L1 サポート済み

  23. © NTT Communications Corporation All Rights Reserved. 34 EBS Volume


    デプロイ先 Outpost を指定するだけ

  24. © 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 • 現在プレビュー段階
  25. © NTT Communications Corporation All Rights Reserved. 38 S3 on

    Outposts(Outposts エンドポイント)
 • サブネット内に Outpost 毎に用意する
 ◦ 同じサブネットに2つつくろうとするとエラー
 ◦ サブネット内で共有して利用される
 • バケットに紐付いてないので、サブネットと一緒に
 管理した方が良さそう
 • 443(HTTPS) inboud ルールを持つ
 セキュリティグループを割り当てなければならない
 • 最近サポートされた?(昨年10月あたりは CLI か
 マネジメントコンソールからしか操作できなかったはず)

  26. © NTT Communications Corporation All Rights Reserved. 39 S3 on

    Outposts(Outposts エンドポイント)
 S3 のマネジメントコンソール内にあるが、直接 S3 on Outposts に
 結び付いてるわけではない

  27. © NTT Communications Corporation All Rights Reserved. 40 S3 on

    Outposts(Outposts エンドポイント)

  28. © NTT Communications Corporation All Rights Reserved. 41 S3 on

    Outposts(Outposts エンドポイント)
 デプロイ先の情報と エンポイントにつける SG の 情報を設定する
  29. © NTT Communications Corporation All Rights Reserved. 42 S3 on

    Outposts(バケット)
 • aws-cdk-lib/aws-s3outpost に専用の
 コンポーネントがある
 • Outpost 毎に分離されているため、デプロイ先
 Outpost を指定する必要がある
 ◦ Public 上の S3 とも分離されている

  30. © NTT Communications Corporation All Rights Reserved. 44 S3 on

    Outposts(バケット)
 バケット名の他に デプロイ先 Outpost を指定する
  31. © NTT Communications Corporation All Rights Reserved. 45 S3 on

    Outposts(アクセスポイント)
 • S3 の機能の1つでありバケットに紐付くので、
 S3 on Outposts バケットと一緒に管理した方が
 良さそう
 • VPC 単位でデプロイ
 • 実はアクセスポイントをデプロイすると、デプロイ先
 サブネットに Outposts エンドポイントがなければ
 勝手にデプロイしてくれる
 ◦ 共有設定も勝手にしてくれるので、実はこれを
 コードで定義しておけば OK だったり

  32. © NTT Communications Corporation All Rights Reserved. 47 S3 on

    Outposts(アクセスポイント)
 アクセスポイント名や接続先 バケット、 デプロイ先 VPC を 指定する ★ aws-cdk-lib/aws-s3 のアクセスポイントでは bucket にバケット名を取る が、 aws-cdk-lib/aws-s3outposts はバケットARN をとる

  33. © NTT Communications Corporation All Rights Reserved. 48 subnet
 •

    Outpost 上へのデプロイはサポート済み
 • 顧客所有の IP アドレスをサブネット上のリソースに
 つける設定(mapCustomerOwnedIpOnLaunch)を
 入れるにはカスタムリソースを使う

  34. © NTT Communications Corporation All Rights Reserved. 50 subnet
 デプロイ先

    Outpost を指定できる プロパティが追加されている
  35. © NTT Communications Corporation All Rights Reserved. 51 subnet(MapOnCustomerOwnedIpOnLaunch)
 •

    ModifySubnetAttribute API に MapOnCustomerOwnedIpOnLaunch の設定がある
 ◦ これを利用
 ◦ ちなみに、 CreateSubnet API にはこの設定がない

  36. © NTT Communications Corporation All Rights Reserved. 54 ALB
 •

    Outposts 上へのデプロイもできないので、
 カスタムリソースで自前管理する必要がある
 • もちろん、顧客所有の IP をつける場合も同じで
 カスタムリソースによるリソース作成時に設定する
 必要がある
 ◦ subnet と違って CreateLoadBalancer API では
 設定できるが、
 ModifyLoadBalancerAttributes API では
 設定不可

  37. © NTT Communications Corporation All Rights Reserved. 55 ALB(作成/更新)
 ★

    更新時はリソースを作っておけば、古いものは自動削除される

  38. © NTT Communications Corporation All Rights Reserved. 56 ALB(作成/更新)
 参照先顧客所有

    IP のプール ID を設 定し、 map するようにする ★ 更新時はリソースを作っておけば、古いものは自動削除される

  39. © NTT Communications Corporation All Rights Reserved. 60 サポート状況
 •

    L2 はなく、 L1 サポートのみ
 • Outposts へのサポート状況にバラつきあり
 ◦ サポート済: ELB Volume, S3 on Outposts
 ▪ ただし、 S3 on Outposts はプレビュー段階
 ◦ 一部サポート済: subnet
 ◦ 未サポート: ALB

  40. © NTT Communications Corporation All Rights Reserved. 61 まとめ
 •

    オンプレでもクラウドの恩恵を預かれるハイブリッド
 クラウド製品が登場してきた
 ◦ AWS Outposts
 • AWS Outposts に展開するリソースを CDK する
 方法について紹介
 • Outposts を CDK でやるにはカスタムリソースの
 知識が必要
 ◦ CDK で設定できない項目がある