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

MIXI での HCP Terraform 活用事例 / Use Case of HCP Te...

yhamano
November 10, 2024

MIXI での HCP Terraform 活用事例 / Use Case of HCP Terraform at MIXI

TED Connect 2024 のオンデマンドセッションとして発表した「クラウドインフラ高度化Terraform、MIXIでのHCP Terraform活用事例」の資料です。
https://ted.oatnd.com/ted-connect-2024

yhamano

November 10, 2024
Tweet

More Decks by yhamano

Other Decks in Technology

Transcript

  1. ©MIXI エモーションと コミュニケーションで 「心もつながる」場と機会を 創造し続けます。 MIXI GROUPは、 ただ「つながればいい」という効率的な機能の提供ではなく、 歓喜や興奮、温かな思い、幸せ、居心地の良さの共有を通じて、 その先に、もっと深くて濃く豊かな、心のつながりを生み出すような、

    サービスの開発・提供を目指しています。 現在、スポーツ・ライフスタイル・デジタルエンターテインメント の3つの領域で事業を展開しており、 それぞれの主な事業内容は右の通りです。 また、近年の投資活動の拡大と重要性を勘案し、 FY2023からはスタートアップやファンド出資等の投資活動を事業化しました。 スポーツ事業 プロスポーツチーム運営および 公営競技ビジネスの推進 ライフスタイル事業 インターネットを活用し、 人々の生活に密着したサービスの提供 デジタルエンターテインメント事業 スマホゲームを中心としたゲームの提供 MIXI GROUPの事業領域 
 3つの領域で “「心もつながる」 場と機会” を創造する事業を推進
  2. 5 ©MIXI アジェンダ • Infrastructure as Code (IaC) 概要と MIXI

    における IaC の実情 • HCP Terraform の活⽤ ◦ 導⼊検討 ◦ 活⽤⽅針 ◦ 成果 ◦ 今後の展望
  3. 6 ©MIXI Infrastructure as Code (IaC) とは IaC は「ソフトウェア開発のプラクティスをインフラの オートメーションに活かすアプローチ

    」です ソフトウェア開発のプラクティスにはバージョン管理システム による構成管理やテストとデプロイの⾃動化等が挙げられます インフラを単にコード化するだけに留まらずこれらソフトウェ ア開発のプラクティスをインフラに適⽤させることが⼤事です Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス, O'reilly japan, Kief Morris 著,宮下 剛輔 監訳,⻑尾 ⾼弘 訳
  4. 10 ©MIXI IaC 適⽤の課題 • IaC を適⽤して運⽤に乗せるためには⼀定のスキルが必要でありそういったスキルを持った エンジニアが不⾜しているチームは適⽤に踏み切れない • IaC

    の CI/CD ワークフローにて共通利⽤できる処理があったとしても各開発チームがイチか らワークフローを構築しており開発⽣産性が⾼いとは⾔えない • セキュリティ的にもよろしくない運⽤/設定をしている場合がある ◦ クラウド環境へのプロビジョニングに利⽤するクレデンシャルの扱い ◦ セキュリティリスクがある設定でリソースをプロビジョニングしてしまう
  5. 12 ©MIXI 導⼊検討 • Terraform は IaC を実現するためのデファクトスタンダードツールであり MIXI でも多くの

    チームで利⽤されていた • Terraform における IaC 適⽤の課題を解決するアプローチとして HCP Terraform が挙がった ◦ Terraform による IaC を実現/運⽤するための各種機能が揃っていること ◦ SaaS 版が提供されていること ◦ Terraform の開発元である HashiCorp 社が提供し、サポート対応があること
  6. ©MIXI 2023/06 導入検討開始 HashiCorp 社にコンタクト 2023/08 PoC 開始 抱えていた課題を解決できるか開発本部内で 検証を実施した

    HCP Terraform に関心があるプロダクト開発チー ムにお願いして PoC 利用してもらい、実際に本番 環境の一部のリソースを HCP Terraform で管理し てもらう等も実施した 2023/09 PoC 評価 抱えていた課題を一定解決できることが分 かったため導入を決定 PoC 期間中に洗い出された機能改善要望 等を HashiCorp 社にフィードバック 2023/10 正式契約 販売代理店として TED 様を紹介頂き、TED 様を通じて契約 導入後の活動や成果は別ページにて紹介
  7. 17 ©MIXI 社内マーケティング活動 • 社内ドキュメントに概要、メリット、利⽤⽅法を記載して公開する • 社内のエンジニアリング共有会で宣伝する • HCP Terraform

    を利⽤しているプロダクト開発メンバーに適⽤事例を社内に公開して もらった • 講師として TED 様を招いて HCP Terraform 勉強会を開催
  8. 18 ©MIXI 組織管理者と利⽤者の役割分担 • 組織管理者 ◦ HCP Terraform の組織全体に関わる設定の管理 ▪

    SSO ▪ Audit ログの取得 ▪ Plan 契約周り ▪ etc.. ◦ 特定 Project に対する Terraform 実⾏環境(Workspace)管理権限を利⽤者へ付与 ◦ Terraform 全般のサポート • 利⽤者 ◦ Workspace の管理 ◦ Terraform コード管理
  9. 19 ©MIXI 組織管理者と利⽤者の役割分担 開発者体験を重要視して利⽤者に強めの権限を与えつつ 組織全体に関わる設定は組織管理者のみ設定可能とするように権限設計を実施 • 組織管理者 ◦ HCP Terraform

    の組織全体に関わる設定の管理 ▪ SSO ▪ Audit ログの取得 ▪ Plan 契約周り ▪ etc.. ◦ 特定 Project に対する Terraform 実⾏環境(Workspace)管理権限を利⽤者へ付与 ◦ Terraform 全般のサポート • 利⽤者 ◦ Workspace の管理 ◦ Terraform コード管理
  10. 22 ©MIXI VCS 連携による CI/CD ワークフロー構築の簡略化 「PR 作成をトリガーに plan を実⾏して差分を確認、plan

    内容が意図したものであれば PR を マージして apply を実⾏する」といった⼀般的な Terraform の CI/CD ワークフローを VCS 連携 で簡単に構築できる VCS 連携以外にも API, CLI での操作や Run Tasks による plan と apply 前後への 任意処理組み込みで独⾃のワークフローを構築することも可能
  11. 23 ©MIXI Policy as Code によるセキュリティ向上 • Sentinel もしくは Open

    Policy Agent を⽤いた Policy が設定可能 • Policy から逸脱した設定でリソースをプロビジョニングしようとしていないかを apply 前にチェックできる • MIXI では Policy Registry で提供されている Policy を利⽤して advisory (warning のみ) によるチェックを全 workspace に対して⾏っている
  12. 25 ©MIXI 今後の展望 • Policy チェック項⽬の拡充 ◦ Policy Registry はまだ発展途上ということもあり公開されている

    Policy が限定的 ◦ 必要な Policy の洗い出しと実装を今後進めていく • Private module の活⽤ ◦ 社内の利⽤に特化した module ◦ 組織を跨いだとしても共通的に利⽤できる構成を module として⽤意することで、開発⽣産性向上に寄与する
  13. 27 ©MIXI まとめ • MIXI における IaC の実情 • HCP

    Terraform 導⼊までの経緯 • HCP Terraform 導⼊による成果と今後の展望