HashiCorp 製品導入の背景と今後の展望|イオンスマートテクノロジーのDX

HashiCorp 製品導入の背景と今後の展望|イオンスマートテクノロジーのDX

2024/5/8

Share

この記事に登場している人

    この記事を読むとわかること

    ・HCP Terraformをなぜ導入したのか?
    ・導入当時、抱えていた課題、それをどう改善したのか?
    ・動画と資料ではHashiCorp Japan Senior Solutions Engineer・村田氏のプレゼンテーションもあり

    イオンのデジタルシフト戦略を担う会社の位置付けで2020年10月に設立したイオンスマートテクノロジーでは、開発・運用の内製化を見据えて導入した「HCP Terraform(旧名Terraform Cloud)」、シークレット情報をセキュアに管理するために採用した「HCP Vault」など、積極的にマネージドサービスを活用しています。

    イオンスマートテクノロジー株式会社 CTO室SREチームリーダーの香西俊幸が「Cloud Native Week 2024冬」に登壇し、両製品の導入背景や運用における留意点について説明を行いました。

    ▼イベント詳細はこちら
    https://members09.live.itmedia.co.jp/library/NjUzNjc%253D?group=cnw240306

    【目次】

    将来的な開発組織の内製化を見据えてTerraformを導入

    イオンスマートテクノロジーでは、500万人以上の会員を抱える「iAEON」の開発・運営を行っています。
    そんななか、iAEONの開発を始めた時の状況としては、アプリケーションとインフラの担当併せて5人程度でした。内製化できる状態ではなかったため、Azureに強みを持つベンダーへ発注する形で、iAEONプラットフォームの設計や構築をスタートしました。

    インフラ環境の構築について、当初は委託先のベンダーから「ポータルからの手動作成とARM(Azure Resource Manager)テンプレートによるデプロイで進める」ことを提案されました。ですが、将来的に組織の内製化を見据えていたこともあり、当時のインフラ担当者は「IaC(Infrastructure as Code)のデファクトスタンダードであるTerraformを使ってインフラの構成管理を行う」ことを意思決定し、Terraformの導入に至ったのです。

    Terraformの導入時に抱えていた課題と改善に向けた取り組み

    初期のTerraformのCI/CDは、図のようにAzure Pipelinesを使ってAzure上にデプロイするシンプルな仕組みで設計していました。

    しかし、iAEONローンチ後の運用フェーズにおいては、パラメーターが変数化されていないほか、命名規則がないゆえにTerraformのリソース名が適当に付けられるなど、コードの可読性と品質に課題を感じていました。

    また、次の3点も運用上の課題として認識していました。

    1. CI/CDパイプラインがわかりづらい

    2. DB管理者のパスワードや秘密鍵といった秘匿情報が、Base64でエンコードされた状態でリポジトリにコミットされている

    3. アクセスレベルがプライベートに設定されているBlobに、tfstateファイルが設置されていて、該当するAzureリソースのロールがあれば改ざんできてしまう

    コードの可読性と品質担保については、内製化を見越して社員と業務委託を採用して増員を図り、「リファクタリング」ではなく「作り直し」をする意思決定を行いました。また、Terraformコーディング規約の整備にも着手するなど、改善に向けて対応を進めてきました。

    その他の3つの課題については、HCP Terraformの導入を検討していましたが、当時の決済担当者が技術的な知見を有していなかったこともあり、導入を進めていくにあたっては難航を極めましたが、導入の検討中にCTOが入社し、CTOに導入の必要性を説明することで結果的にはHCP Terraformの導入がスムーズに進行したのです。

    HCP Terraform Business導入後のCI/CDは図のように変わりました。

    これまでわかりづらかったCI/CDパイプラインも、HCP Terraform インテグレーションによって、簡単なプロセスかつ単純な仕組みを実現することができました。 

    また、HCP TerraformのVariablesに秘匿情報を格納することでリポジトリから秘匿情報を排除し、tfstateファイルをHCP Terraform側で管理するようにしたことで、ファイルの改ざんを防げるようになりました。

    そのほか、iAEON開発の初期フェーズでの“ツラミ”については「HashiTalks Japan 2022 Terraform 構成管理 NG祭」と「HashiConf 2023」で詳しく紹介しています。

    シークレット管理のベストプラクティスを体現するためにHCP Vaultを導入

     

    次にHCP Vault導入の背景と道のりについて紹介したいと思います。一般的なシークレット管理における共通のベストプラクティスは下記が挙げられます。 

    • 定期的なローテーション

    • 利用者に応じた細やかな権限管理

    • 監査記録

    • 暗号化

    その一方で、弊社のシークレット管理の状況としては、秘匿性の高い情報であってもTeamsやSlackを使って共有していたり、DB管理者のパスワードが開発当時のままだったり、KubernetesのSecretリソースを適切に使えていなかったりと、ベストプラクティスに準拠していない運用となっていました。こうした状況を改善し、適切なシークレット管理を実現していくために、HCP Vault導入を進めていきました。 

    まずはVault Secrets Operatorを使ったKubernetes環境への導入を実施しました。導入後、運用が安定してきたら横展開を視野にさらなる活用を検討していく計画を見込んでいたわけです。

    HCP Vault導入の詳しい内容については「HCP Vault Private Clusterで弊社AKSのSecret Operator実装が辛すぎた」と「RFC1918定義外プライベートIPアドレスレンジのVNetとHCP Vaultの壁、壁、壁」のテックブログでも触れています。

    これまでの話をまとめると、HCP TerraformやHCP Vaultといった新しい技術を導入する際には、決裁権を持つ人への「説明」と「理解してもらうこと」がとても大事になってきます。そして、開発組織の状況と照らし合わせ、“作ること”よりも“買うこと”のメリットを決裁者へ伝わるように説明していくことが、スムーズな導入を実現するために必要になってくるでしょう。

     

    HashiCorp Japan・村田氏の登壇も含めたセッション全体の資料・動画はこちらから


    イオングループでは一緒に変革に挑んでくれる方を募集中です。

    どんなことをしているのか気になる方は、お気軽にご連絡ください。カジュアル面談も実施しておりますので、まずはざっくばらんにお話しましょう!

    ※掲載している所属・役職・肩書きおよび各種情報は、記事公開時点のものです。

    Share

    JOIN US

    AEONで働きたい人は、採用サイトもチェック

    カジュアル
    面談

    に申し込む