Slide 1

Slide 1 text

HCP TerraformとAzure イオンスマートテクノロジーのインフラ⾰新 イオンスマートテクノロジー株式会社 DevSecOps Div SREチーム 林 如弥 2025年01⽉27⽇ LayerX‧イオン‧JALインフォテックに学ぶ Terraformによる⾃動化‧効率化の最前線

Slide 2

Slide 2 text

⽬次 はじめに • 各種紹介(⾃⼰‧会社) • イオンスマートテクノロジーのインフラ概要 • HCP TerraformとAzureの活⽤事例 • 今後の展望 • お知らせ‧宣伝 2

Slide 3

Slide 3 text

各種紹介

Slide 4

Slide 4 text

⾃⼰紹介 各種紹介 もりはや aka 林 如弥(X:@morihaya55) イオンスマートテクノロジー株式会社 DevSecOps Div SREチーム所属 (2024/3⼊社) 趣味:Podcast鑑賞‧映画鑑賞‧読書‧ジョギング おすすめのPodcast 「COTENラジオ」 おすすめの書籍 「数理思考モデルで紐解く RULE DESIGN」 おすすめの映画 「RRR」 4

Slide 5

Slide 5 text

55

Slide 6

Slide 6 text

6 イオングループ紹介 - 関連数字 https://www.aeon.info/company/ - "INFOGRAPHICS 数字で⾒るイオングループ"

Slide 7

Slide 7 text

7 イオングループ紹介 - イオンの主な事業 https://www.aeon.info/company/message/profile/ - "イオン会社案内2024 - イオンの主な事業"

Slide 8

Slide 8 text

8 会社紹介

Slide 9

Slide 9 text

9 iAEONアプリについて 膨⼤なIDと購買データを集約したアプリ「iAEON」 iAEONはイオングループが提供する決済機能やポイントプログラムを1つにまとめたアプリです。 イオングループ内の多数の事業会社がもつ顧客IDを⼀つのアプリに統合しています。

Slide 10

Slide 10 text

10 iAEONアプリについて 膨⼤なIDと購買データを集約したアプリ「iAEON」 iAEONはイオングループが提供する決済機能やポイントプログラムを1つにまとめたアプリです。 イオングループ内の多数の事業会社がもつ顧客IDを⼀つのアプリに統合しています。 https://prtimes.jp/main/html/rd/p/000004399.000007505.html

Slide 11

Slide 11 text

イオンスマートテクノロジーの インフラ概要

Slide 12

Slide 12 text

イオンスマートテクノロジーのインフラ概要 12 iAEONアプリを⽀えるAzureとHCPt

Slide 13

Slide 13 text

イオンスマートテクノロジーのインフラ概要 13 iAEONアプリを⽀えるAzureとHCPt

Slide 14

Slide 14 text

🔵 iAEONを動作させるための主要なリソースが稼働している 🔵 各システムによってアーキテクチャは異なる 🔵 各システムはサブスクリプションとVnetによって分離されている 🔵 RBACによる各システム担当チームごとへ適切な権限付与 🔵 主なコンピューティングリソースはAKS(Azure Kubernetes Service) 🔵 Entra IDを利⽤したNew Relic, PagerDutyなど他ツールへのSSOを実現 14 Microsoft Azureについて

Slide 15

Slide 15 text

イオンスマートテクノロジーのインフラ概要 🔵 Azureのほぼ全てのリソースのプロビジョンを⾏う 🔵 リモートでの`terraform plan, apply`の実⾏と履歴の保存 🔵 Terraformのステートファイルの格納 🔵 環境変数の保存 🔵 HCPt⾃体の設定もIaC管理 🔵 コードと、実リソースとのドリフト検知 15 HCP Terraform(HCPt)について

Slide 16

Slide 16 text

HCP TerraformとAzureの活⽤事例

Slide 17

Slide 17 text

HCP TerraformとAzureの活⽤事例 レビュワが迷わないための情報をPRに書くよう推奨 Azure DevOpsでは”pull_request_template.md”をおくだけ 🔵 対応背景 🔵 対応内容 🔵 レビュー観点、確認して欲しいポイント 🔵 テスト結果について 🔵 備考 17 レビュー時のPRテンプレート活⽤

Slide 18

Slide 18 text

HCP TerraformとAzureの活⽤事例 18 レビュー時のPRテンプレート活⽤-2

Slide 19

Slide 19 text

HCP TerraformとAzureの活⽤事例 特に良いのが「レビュー観点、確認して欲しいポイント」の項⽬。 PRを作成した側の”不安に感じる部分”が引き出されやすい。 (ただし、レビュワーはそれに引きづられすぎてもいけない) ## 以下は記⼊例 ネーミングが適切か 追記の位置が適切か CI(terraform plan)の結果が”No changes”か 19 レビュー時のPRテンプレート活⽤-3

Slide 20

Slide 20 text

HCP TerraformとAzureの活⽤事例 🔵 Terraformのコードは、ほぼ全てモジュール化を⾏っている 🔵 “resource”を書くのは各システムで1回のみ 🔵 リソースを作成する場合はvariablesに列挙していく 20 モジュール化による記述の効率化

Slide 21

Slide 21 text

HCP TerraformとAzureの活⽤事例 🔵 ”modules”ディレクトリに⽤途別のモ ジュールのコード 🔵 “systems”ディレクトリにシステム別の variablesのコード 21 モジュール化による記述の効率化-2

Slide 22

Slide 22 text

HCP TerraformとAzureの活⽤事例 🔵 コードの⾏数は”resource”ベタ書きに⽐べて⼤幅に削減!! 🔵 しかし、確かに⾏数は削減できているが、現状書き⼿に負担が⼤き い状況もある…(今後の展望へ) 22 モジュール化による記述の効率化-3

Slide 23

Slide 23 text

HCP TerraformとAzureの活⽤事例 🔵 コード化されたインフラはコピー作成と削除が可能 🔵 数百を超えるリソースを⼀気に扱える 23 ⼤量リソースな環境の作成と削除

Slide 24

Slide 24 text

HCP TerraformとAzureの活⽤事例 🔵 作成時、基本的には既存のディレクトリをまるっとコピー 🔵 新環境⽤のネーミングルールに沿って⼀括変換 🔵 実のところ、1回でスルッと作成できることはあまりなく、細かな 修正は都度⼊る(共通部分の考慮や、Azure, Terraformの変化など) 🔵 それでもWebポータルから同じことをやるよりは、断然効率が良い 24 ⼤量リソースな環境の作成と削除-2

Slide 25

Slide 25 text

HCP TerraformとAzureの活⽤事例 🔵 Variables Setsは複数のHCPtのWorkspaceで利⽤できる環境変数のセット 🔵 HCPtのWorkspaceにはタグを設定可能 🔵 HCPtの”tfe_workspace_variable_set”とタグのマッチによって、適切な Variable Setsを半⾃動で設定が可能 🔵 格納するのはAzureのService PrincipalやNew RelicのAPI KeyなどTerraform を実⾏するために必要なクレデンシャルなど 25 Variables Setsのタグによる展開

Slide 26

Slide 26 text

HCP TerraformとAzureの活⽤事例 26 Variables Setsのタグによる展開-2

Slide 27

Slide 27 text

HCP TerraformとAzureの活⽤事例 HCLコードのイメージは以下の通り。 Workspaceが増加しても適切なタグさえ付与しておけば、⾃動でVariable Sets が設定されていくのは気持ちが良いほど! 27 Variables Setsのタグによる展開-3

Slide 28

Slide 28 text

今後の展望

Slide 29

Slide 29 text

今後の展望 🔵 Sentinelを活⽤したコードへのポリシー導⼊ 🔵モジュールのリファクタリング 🔵 Azure, New Relic, PagerDuty等がセットで⽴ち上がるように 🔵 リソースが隠蔽されて逆に読みづらい課題の解消 🔵 Copilotの活⽤でTerraform⼈材をより増やす 🔵 そのためにもVCSをADOからGitHubへ移⾏したい…! 29 課題の解消、さらなる進化を

Slide 30

Slide 30 text

まとめ

Slide 31

Slide 31 text

まとめ 🔵 iAEONアプリをはじめ、多くのサービスの基盤としてAzureを利⽤ 🔵 クラウドネイティブな環境でスケーラビリティと柔軟性を実現 🔵 TerraformによるIaCによって、品質、効率、その他多くのメリット 🔵 インフラの⼀貫性確保、変更管理の簡素化、⾃動化の促進 🔵 HCPtは、Terraformの活⽤を⼤幅に加速する便利な機能を持つ 🔵 リモート実⾏、状態管理、チームコラボレーションの強化 31 HCP TerraformとAzureの活⽤は続く

Slide 32

Slide 32 text

お知らせ‧宣伝

Slide 33

Slide 33 text

直近イベントのお知らせ お知らせ 33 https://inhouse-dev-summit.findy-tools.io/2025 https://findy-tools.connpass.com/event/341029/ 私たちイオンのメンバーも登壇!!

Slide 34

Slide 34 text

お知らせ

Slide 35

Slide 35 text

幅広いポジションで積極的に採⽤中で す!! お知らせ 35