Slide 1

Slide 1 text

GitHub Issue templates + Coding Agent で簡単みんなでIaC! イオンスマートテクノロジー株式会社 DevSecOps Div SREチーム 林 如弥 2026年02月04日 AI運用勉強会#2

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

3 iAEONアプリについて 膨大なIDと購買データを集約したアプリ「iAEON」 iAEONはイオングループが提供する決済機能やポイントプログラムを1つにまとめたアプリです。 イオングループ内の多数の事業会社がもつ顧客IDを一つのアプリに統合しています。 おかげさまで500万MAU超え(2025/9時点)

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

紹介(宣伝)終了

Slide 6

Slide 6 text

• IaC(Terraform)って初心者には大変 • GitHubのIssue templateでフォームができる • GitHub Copilot Coding agentsを掛け合わせる • まとめ 6 本日のアジェンダ

Slide 7

Slide 7 text

IaC(Terraform)って 初心者には大変

Slide 8

Slide 8 text

IaC(Terraform)って初心者には大変 8 書きやすいとは言われているけど resource "azurerm_resource_group" "example" { name = "example-resources" location = "West Europe" } resource "azurerm_virtual_network" "example" { name = "example-network" address_space = ["10.0.0.0/16"] location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name } resource "azurerm_subnet" "example" { name = "internal" resource_group_name = azurerm_resource_group.example.name virtual_network_name = azurerm_virtual_network.example.name address_prefixes = ["10.0.2.0/24"] }

Slide 9

Slide 9 text

IaC(Terraform)って初心者には大変 9 差分(drift)とかも出るし... ...(略)... azurerm_data_protection_backup_vault.morihaya_sandbox_vault: Drift detected (update) ...(略)... Terraform will perform the following actions: # azurerm_data_protection_backup_vault.morihaya_sandbox_vault will be updated in-place ~ resource "azurerm_data_protection_backup_vault" "morihaya_sandbox_vault" { id = "/subscriptions/xxxx0c7/xxxx/resourceGroups/morihaya- rg/providers/Microsoft.DataProtection/backupVaults/morihaya-sandbox-vault" name = "morihaya-sandbox-vault" ~ soft_delete = "Off" -> "On" tags = { "CreatedBy" = "Terraform" "Environment" = "Sandbox" "Project" = "Sandobx-morihaya" } # (7 unchanged attributes hidden) # (1 unchanged block hidden) } Plan: 0 to add, 1 to change, 0 to destroy.

Slide 10

Slide 10 text

IaC(Terraform)って初心者には大変 10 Terraform自体を初見でPRまで出せる方は少数 - HCL記法に慣れる必要がある - 自前のModuleなどの仕様を理解する必要 - 過去のPRから学べ!は正論だけど... 定型作業くらいはフォームみたいなUIで、誰でも簡 単に処理したいとの需要がある

Slide 11

Slide 11 text

GitHubのIssue templates で簡易的なフォームを用意できる

Slide 12

Slide 12 text

GitHubのIssue templatesで簡易的なフォームを用意できる 12 ユースケースの例 CDN(Akamai)のデバッグヘッダーの利用を許可す る"IP Allow list"をTerraform管理&CI/CDによって、 プロダクトチームでリモートワークを行うメンバー が作業場所からでもデバッグ可能にしたい。

Slide 13

Slide 13 text

GitHubのIssue templatesで簡易的なフォームを用意できる 13 こんなふうにYAMLを書くと name: " Akamai Debug許可用のClient List へ IP アドレスを追加" description: "デバッグ用許可リストに自分の IP アドレスを追加するリクエスト" title: "[Client List] IP アドレス追加リクエスト" labels: ["Client list", "Pragma Debug"] body: - type: markdown attributes: value: | ## Client List への IP アドレス追加リクエスト このフォームを使って、Pragma Debug Allowlist に IP アドレスを追加できます。(略) - type: input id: ip_address attributes: label: IP アドレス description: "追加したい IP アドレスを入力してください(例: 203.0.113.50) 自宅のIPアドレスを 確認するには [Inet-ip.info](https://inet-ip.info/) などのサービスを利用してください。" placeholder: "203.0.113.50" validations: required: true …(略)

Slide 14

Slide 14 text

GitHubのIssue templatesで簡易的なフォームを用意できる 14 Issue作成時にフォームとして表示されます

Slide 15

Slide 15 text

GitHubのIssue templatesで簡易的なフォームを用意できる 15 さらにCopilot Coding Agentへの指示も載せておく

Slide 16

Slide 16 text

GitHubのIssue templatesで簡易的なフォームを用意できる 16 工夫としてCopilotライセンスがない方向けの対応も

Slide 17

Slide 17 text

GitHub Copilot Coding agent を掛け合わせる

Slide 18

Slide 18 text

GitHub Copilot Coding agentを掛け合わせる 18 作成したIssueはGitHub Copilot Coding agentがPR作成

Slide 19

Slide 19 text

GitHub Copilot Coding agentを掛け合わせる 19 シンプルな内容なため、正確なPRを送ってくれる • 各種CIには一発でPassed!!

Slide 20

Slide 20 text

まとめ

Slide 21

Slide 21 text

まとめ • 過去なら丁寧なラッパー用の画面を時間をかけて 用意していたかも • Issue Templatesで簡易画面が作れる • 作ったIssueはAI(Coding agent)が処理できる • 組み合わせると効果は抜群だ! 21 既存のしくみとAIの掛け算が強力と感じた

Slide 22

Slide 22 text

テックブログ Meetup SNS オウンドメディア 1 2 3 4 会社紹介:いろいろやっています!! イオングループのエンジニ アたちにより、 Zennの Publicationで運用されてい るテックブログ 毎月オンライン or オフライ ンで実施されているAEON主 催のテック系イベント AEON TECH HUB関連の活 動についての情報をポスト していきます AEONグループの社員インタ ビューや登壇レポート、イ ベントのお知らせなどの 様々な記事をお届けします