エンタープライズクラウド事業部の黒野です。
今回は AWS re:Invent 2023 に現地参加しており、普段から参加しているTerraformに関するセッションに参加してきました。

また、3日目の夜には知り合いの方々とDatabricksさんのレセプションで初めて打ちっぱなしのゴルフに行って参りました。
コーチの方がかなり親切に教えてくれてみなさんとても上手くなっていました笑

スピーカー

  • Anton Shmagin
  • Greg Breen

セッションレベル

  • 300 – Advanced

セッション概要

1
2
3
4
5
In this session, learn how platform teams can use Terraform Cloud, HCP Waypoint, and the AWS Service Catalog
to create simplified Terraform-based workflows for developers. Modern Terraform modules can incorporate unit testing,
built-in security, policy enforcement, and reliable version updates. See how you can use these tools to establish
standardized workflows to deploy applications and deliver a smooth and seamless developer experience.
This presentation is brought to you by HashiCorp, an AWS Partner.
1
2
3
4
5
このセッションでは、プラットフォーム チームが Terraform Cloud、HCP Waypoint、AWS サービス カタログを使用して、
開発者向けに簡素化された Terraform ベースのワークフローを作成する方法を学びます。
最新の Terraform モジュールには、単体テスト、組み込みセキュリティ、ポリシー適用、および信頼性の高いバージョン更新を
組み込むことができます。 これらのツールを使用して標準化されたワークフローを確立してアプリケーションを展開し、
スムーズでシームレスな開発者エクスペリエンスを実現する方法をご覧ください。 このプレゼンテーションは、AWS パートナーである HashiCorp によって提供されています。

セッション

AWSとHashicorpでのコラボ

  • AWS Terraform Providerはダウンロード数が22億を超える最もある人気のプロバイダーとなります。
  • 2022年の北米におけるパートナーオブザイヤーを受賞
  • AWS Marketplaceの上位10%になる、Devopsパートナー
  • AWSおよびAWS-CCプロバイダーのダウンロード数に関しても20億を超えています
  • Terrafomr Cloud用のServiceCatalogとの統合機能
  • AWS Control Tower Account Factory for Terraform(AFT)

セルフサービスを有効化する理由

Hashicorp社が2023に取ったアンケートによると組織の92%が成功するにあたり、プラットフォームチームに依存していると回答があったそうです。
しかし、現実としてスキル不足というのが最大の障害となっているそうです。

セルフサービスの課題

  • 増え続けるセキュリティ要件
  • セルフサービスを運用していくなかで、最小限の権限とは矛盾していくことがあります
  • また、静的なクレデンシャル情報を使用することはリスクを増大させる可能性があります
  • Hashicorp社の製品でVaultというセキュリティ製品が出ているのでそちらを使用することで解決できます
  • 内部メンバー同士での衝突が大きなストレスになる
  • インフラメンバーのスキルが不足している可能性がある
  • 業務効率を最大限に高める
  • プラットフォームチームは導入の増加に応じて拡張する必要があります
  • プロビジョニング後のインフラの可視化

セルフサービス実現までの道

課題

  • セキュリティの向上
  • 最低限の特権を保持する
  • 静的なクレデンシャル情報を排除する
  • ガードレールを強化する
  • ストレスを減らす
  • ベストプラクティスを体系化する
  • 信頼性の高いモジュールを作成する
  • プロビジョニングエラーを減らす
  • 利得効率化
  • 大規模なセルフサービスの実現

解決策

  • セキュリティの向上
  • TerraformCloudのProjects
  • Dynamic Credential
  • Policy as Service
  • ストレスを減らす
  • Privete Registry
  • Conditionとテスト
  • Integrated test
  • 利得効率化
  • TerraformCloudのNo-Code Provisioning
  • HCP WayPoint Template
  • AWS Service Catalog

クラウドオペレーション実現までのステップ

  1. 導入
  2. 標準化
  3. スケール

TerraformCloudを使ったオペレーション

Terraform Cloudを使うことで、プロビジョニング管理、セキュリティ、自動化などいろいろなことができてしまうのが、最高ですね!

動的クレデンシャル(Dynamic Credential)

AWSのIAMとTerraformCloud間でOIDCを使用することで静的なクレデンシャルを使用せずにデプロイすることが可能となります!
上記でも記載しましたが、HCP Vautlという製品を使うことでも動的なクレデンシャルを使用してデプロイすることが可能です。こちらは同じ会社の製品といこともあり比較的、連携は簡単に行うことができます。
https://developer.hashicorp.com/hcp/docs/vault

Policy as Code(PaC)を適用する

構成図のようにHahicorp SentinelやOpen Policy Agent(OPA)を入れることで、ガードレールを設定することができます。
PlanやApplyする前のタイミングでチェックするようにし、そこから外れたものはデプロイできないようにすることができます
様々な、ポリシーを設定することができ、「金曜日にはデプロイできない」のようなものも設定することができます。

モジュールバリデーション

バージョンを重ねるごとにどんどんチェックできる項目が増えてきましたが、最近のVer1.6アップデートで単体テスト的に使えるtest機能もとても使いやすく、
今後もこう言った機能が出てくるのを密かに期待しています。

ノーコード・プロビジョニング

先日、TerraformCloudでリリースされたノーコードプロビジョニング機能の紹介になります。
本機能の目的としては、HCL言語に詳しくない、書けない人でもAWSリソース等を安全にデプロイできるようにするためのものになります。
イメージとしては事前に定義しておいたコードをプライベートな場所に格納し、それを他の人が選択して呼び出すだけでAWSリソース等が作れるといったものとなり、
名前の通りコードを書かなくてもリソースをデプロイできるような機能になります。

まとめ

  • TerraformCloudの話を改めて聞いてみて、弊社でも導入することで大きなメリットを得られるなと単純に思いました。
    • 特にノーコードプロビジョニング辺りは全社でコードを貯めることで大きな資産となると思いました。
  • 個人でもTerraformCloudを使っているので、よりよいアップデートが今後来てくれるのを期待しております!