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

AWS Outposts を AWS CDK で管理する話

AWS Outposts を AWS CDK で管理する話

AWS Outposts で動くリソースを CDK と terraform の両方で管理した内容について発表しました

[email protected]

March 28, 2022
Tweet

Other Decks in Programming

Transcript

  1. © NTT Communications Corporation All Rights Reserved. AWS Outposts を

    AWS CDK で管理する話
 NTT Communications 株式会社

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

    自己紹介
 • 扱うサービスについて
 • そのサービスで IaC する方法
 ◦ CDK
 ◦ Terraform
 • まとめ

  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. 8 AWS Outposts


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  13. © NTT Communications Corporation All Rights Reserved. 19 IaC
 •

    Infrastructure as Code
 • インフラをコードによって定義/管理する

  14. © NTT Communications Corporation All Rights Reserved. 20 IaC のメリット


    • インフラ構築をコード化することによって手作業を
 減らせる
 • ノウハウがコードに表れるため、暗黙知を減らせる
 • 単なるコードなので、インフラをテストしやすくなる
 • 自動化できる
 • 抽象化しておくことで、環境差異を残して共通化できる
 ◦ 環境毎にデプロイする際の工数圧縮

  15. © NTT Communications Corporation All Rights Reserved. 21 AWS で

    IaC
 • 現状は次の2つが主流
 ◦ CloudFormation/AWS CDK
 ◦ Terraform

  16. © 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# 等が利用できる
 • 汎用言語の抽象化力によってコードが短く抑えられる

  17. © NTT Communications Corporation All Rights Reserved. 25 AWS CDK

    の例 (TypeScript)
 Subnet の 設定を定義
  18. © NTT Communications Corporation All Rights Reserved. 26 AWS CDK

    の例 (TypeScript)
 設定した内容を持つ subnet を所有する VPC を定義
  19. © NTT Communications Corporation All Rights Reserved. 29 CloudFormation の例


    ここで各 subnet や NAT GW, Internet GW を 定義
  20. © NTT Communications Corporation All Rights Reserved. 30 CloudFormation の例


    定義している subnet のうちの1つを抽出 

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

    CloudFormation で提供されていないリソースを
 管理するためのフレームワーク
 ◦ Outposts も一部は CloudFormation で
 管理できない(つまり CDK でも管理できない)ものがある
 • リソースの作成/更新/削除時に Lambda がフックされる

  22. © 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 のため、抽象化力はそこまで高くはない

  23. © NTT Communications Corporation All Rights Reserved. 37 Terraform の例


    ここで各 subnet や NAT GW, Internet GW を 定義
  24. © NTT Communications Corporation All Rights Reserved. 38 Terraform の例


    定義している subnet のうちの1つを抽出 

  25. © NTT Communications Corporation All Rights Reserved. 40 Outposts IaC


    • Outposts を IaC する
 • CDK と Terraform で IaC した結果を紹介
 ◦ どこまでできるのかや注意点を紹介

  26. © NTT Communications Corporation All Rights Reserved. 42 Outposts IaC(CDK)


    • subnet
 ◦ Outposts 上へデプロイするまではサポート済
 ◦ CoIP を自動でつける設定は カスタムリソースで要定義
 ▪ CoIP: オンプレから接続する際に利用する
 IP アドレス。 AWS リソースにつける IP アドレスを
 こちらから提供できる
 • customer owned IP address
 • EBS Volume
 ◦ サポート済

  27. © NTT Communications Corporation All Rights Reserved. 43 Outposts IaC(CDK)


    • EC2 インスタンス
 ◦ subnet 上に載るので、 subnet を Outposts 上へ
 デプロイしておけば OK
 (root volume な EBS も勝手に Outposts 上に載る)
 • ALB
 ◦ 作成/更新/削除はサポートされてないので、自前で
 カスタムリソースを使って管理
 • S3 on Outposts
 ◦ サポート済
 ◦ ただし、プレビュー段階

  28. © NTT Communications Corporation All Rights Reserved. 45 Outposts IaC(Terraform)


    • subnet
 ◦ サポート済
 ◦ CoIP をつけるのもサポート済
 • EBS Volume
 ◦ サポート済

  29. © NTT Communications Corporation All Rights Reserved. 46 Outposts IaC(Terraform)


    • EC2 インスタンス
 ◦ CDK と同じで subnet へ展開するだけで自動で載る
 • ALB
 ◦ サポート済
 • S3 on Outposts
 ◦ サポート済

  30. © NTT Communications Corporation All Rights Reserved. 47 言語 状態の管理方法

    コード量 CDK TypeScript/Java/ JavaScript/C#/ Go(preview) CloudFormation 小 Terraform HCL tfstate ファイル (S3/Terraform Cloud/ ローカル等) 大 Terraform と CDK 比較

  31. © NTT Communications Corporation All Rights Reserved. 48 Terraform と

    CDK の Outposts サポート比較
 EC2 subnet EBS Volume EC2 インスタンス ALB S3 on Outposts CDK △ ◦ ◦ × ◦(※) Terraform ◦ ◦ ◦ ◦ ◦ • ◦は完全にサポート、△は一部サポートされてない機能あり、×は 完全にサポートされてない
 • (※)プレビュー版

  32. © NTT Communications Corporation All Rights Reserved. 50 まとめ
 •

    Outposts とは AWS の出すハイブリッドクラウド製品
 • Outposts は IaC できるが、Terraform の方は
 サポート済みなものが多い一方 CDK ではまだ
 カスタムリソースを使って頑張る必要あり
 • Terraform と CDK による管理は一長一短
 ◦ CDK: コード量小, 新サービスへの対応に難あり,
 リソースを CloudFormation で一括管理
 ◦ Terraform: コード量大, 新サービスへの対応が素早い,
 tfstate の管理が課題

  33. © NTT Communications Corporation All Rights Reserved. 51 登壇予定
 •

    AWS CDK Conference Japan に登壇します
 ◦ CDK のより詳細な部分はそちらにて発表予定です
 ◦ 2022/4/9 登壇予定