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

HCP Terraformで実現するPlatform Engineering/nikkei-t...

HCP Terraformで実現するPlatform Engineering/nikkei-tech-talk-29

「HCP Terraformで実現するPlatform Engineering」というタイトルで登壇しました。日本経済新聞社 大塚 恭平さんの発表スライドです。
NIKKEI Tech Talk #29
https://nikkei.connpass.com/event/337801/

More Decks by 日本経済新聞社 エンジニア採用事務局

Other Decks in Technology

Transcript

  1. 2 自己紹介 名前: 大塚 恭平 所属: 株式会社 日本経済新聞社 情報サービスユニット 2017年

    新卒入社 業務内容: 法人向けサービス開発 インフラ構築・運用
  2. 6 日経でのTerraform活用の軌跡 Terraform利用開始 Terraform Cloudの導入 (現HCP Terraform) Private Module活用 HCP

    Terraform Plusプランに変更 Policy Sets活用 2018/10 2019/9 2021/7 2024/1 2024/10 利用拡大 • 2018年に新規プロダクトの立ち上げでTerraformを初めて利用 • 2025年1月現在、社内のTerraform Workspace(tfstate)数 600+
  3. 7 なぜこれらの施作を実施しているのか • Terraform 導入初期 ◦ 構築時のメリットに着目 手作業による設定ミスの排除、環境間の差異防止、PRでインフラのレビュー • Terraform

    利用拡大期 ◦ Terraform (HCP Terraform)がもたらすレバレッジに着目 ◦ チームの枠を超え、数多くのBtoB・BtoCプロダクトの開発を支える
  4. 8 レバレッジとは • 組織全体の作業総量を削減する活動のこと • レバレッジの効果は2種類 ◦ アプリケーション開発の生産性の向上 ◦ 重複作業の排除

    • クラウド利用が広がっていく中で注意が必要 ◦ ビルディングブロックの多さにより、レバレッジは簡単に失われる
  5. 9 レバレッジのためのTerraform プロダクトA プロダクトB プロダクトC AWS Datadog PagerDuty … …

    • 日経では様々なクラウドを活用 • 開発・運用の方法を統一することで、レバレッジを効かせていく 従来 Terraform導入後 プロダクトA プロダクトB プロダクトC AWS Datadog PagerDuty … … Terraform CloudFormation 手作業 手作業 手作業 自前 スクリプト 手作業 手作業 手作業 手作業 コード定義 自動プロビジョニング
  6. 11 Platform Engineeringの柱とこれまでの取り組み 開発者体験の良い 社内プロダクトの提供 抽象化により複雑性を 巻きとるソフトウェア 幅広い社内の ユースケースに対応 信頼できる

    プラットフォーム マネージドなCI/CD (HCP Terraformの導入) Private Moduleの活用 同時実行数の引き上げ (Plusプランへの切替) Private Module / Policy Setsの活用
  7. 13 HCP Terraformとは • HashiCorp Cloud Platform Terraformの略 (旧称 Terraform

    Cloud。2024年4月に現HCP Terraformに名称変更) • Terraformを利用したインフラ構築・運用を支援するSaaS製品 • 日経では2019年に導入、2024年にPlusプランに切り替え
  8. 14 HCP Terraform導入前の課題感 HCP Terraform導入以前、Terraformの利用促進で以下課題に直面していた • TerraformのCI/CDを自前で整備する大変さ ◦ リポジトリ数の増加に伴うメンテナンスコスト ◦

    GitHub Actionsは自由度が高い反面、運用が見えづらくなることも ◦ TerraformのCI/CDを整備する怖さ • Terraformの利用が見送られることによるレバレッジの機会損失
  9. • HCP Terraformの特徴 ◦ マネージドなCI/CD、直感的でわかりやすい画面、同時実行数の拡張性 • HCP Terraformを導入することで、以下レバレッジを実現 ◦ TerraformのCI/CDの整備の排除

    ◦ 安心してTerraformを利用できる環境の提供 ▪ より多くの開発者・チームにTerraformを使ってもらう ▪ 結果、インフラ以外の開発に集中しやすくする 15 HCP Terraform導入でレバレッジを効かせる
  10. 16 HCP Terraform導入により強化された柱 開発者体験の良い 社内プロダクトの提供 抽象化により複雑性を 巻きとるソフトウェア 幅広い社内の ユースケースに対応 信頼できる

    プラットフォーム ※ HCP Terraform 導入単体ではエンジニアリングを伴わないため、厳密にはPlatform Engineeringの定義から外れる
  11. 17 アーキテクチャに関する課題感 システム構築の度に、各チームが車輪の再発明をしていた • 構築の課題 ◦ 構築リードタイムの長期化 ◦ セキュリティ設定の不足 •

    運用の課題 ◦ 運用・認知コストが線型に増加 ◦ 属人化が加速 ECS Fargate の環境構築に必要なリソースの例 aws_route53_record aws_appautoscaling_policy aws_lb aws_ecs_cluster aws_iam_policy aws_cloudwatch_log_group aws_lb_listener aws_codedeploy_deployment aws_ecs_task_definition aws_lb_target_group aws_ecs_service aws_security_group aws_codedeploy_app aws_lb_target_group aws_s3_bucket aws_s3_bucket_policy aws_iam_role
  12. 18 Private Moduleでレバレッジを効かせる • Private Moduleとは ◦ Terraformコードを再利用可能な単位にまとめる仕組み ◦ HCP

    Terraform上に登録すると組織内であれば誰でも利用可能に • 社内で利用されている代表的なPrivate Module ◦ アプリケーション実行基盤 (ECS + CodeDeploy) ◦ 静的ファイル配信 (CloudFront + S3) 開発効率の向上、スリムな運用を実現
  13. 20 Private Moduleを活用する中で出てきた課題感 • Private Moduleで全てのユースケースに対応するのは困難 ◦ プラットフォーム観点 ▪ メンテナンスコストがかかる

    ▪ 利用頻度の少ないユースケースではレバレッジが働かない ◦ 利用者観点 ▪ ラッパーが多過ぎると開発者体験が悪化 • しかし、Terraform Resourceを直接記述するとガードレールがない
  14. 21 Policy Setsでレバレッジを効かせる • Policy Setsとは ◦ Terraformコードを事前に定義したポリシー群で検証する仕組み • Policy

    Setsで以下レバレッジを実現 ◦ セキュリティ・ガバナンスの向上 ◦ シフトレクトによる開発者体験の向上 ◦ レビュー負荷の軽減