Slide 1

Slide 1 text

© 2024 Mizuho Research & Technologies, Ltd. Azure Verified Moduleを触って分かった 注目ポイント 技術開発本部 先端技術研究部 田代 健人 0 Japan Azure User Group14周年イベント (免責事項) 当レポートは情報提供のみを目的として作成されたものであり、商品の勧誘を目的 としたものではありません。本資料は、当社が信頼できると判断した各種データに 基づき作成されておりますが、その正確性、確実性を保証するものではありません。 また、本資料に記載された内容は予告なしに変更されることもあります。

Slide 2

Slide 2 text

© 2024 Mizuho Research & Technologies, Ltd. Strictly Confidential 自己紹介 田代 健人 みずほリサーチ&テクノロジーズ株式会社 技術開発本部 先端技術研究部所属 1 名前と所属 今までのAzure関連業務: ・ PaaS Webアプリアーキテクチャ設計 ・ 社内向け開発基盤や生成AIチャットボット基盤 の構築・運営 ・ EA契約にまつわるアカウント運営の設計 好きなAzureサービス ・ Azure Policy ・ Entra Family Azureにまつわるもの Qiita:k_tashiro@mhrt-adv

Slide 3

Slide 3 text

本日お話すること Azure Verified Moduleを触って分かった 注目ポイント • Azure Verified Module (AVM)とは • AVMを導入するきっかけと期待 • AVMの使い方 • AVMの使用感/使いこなすための一歩 • まとめ 2

Slide 4

Slide 4 text

Azure Verified Module (AVM)とは AVMを導入するきっかけと期待 3

Slide 5

Slide 5 text

© 2024 Mizuho Research & Technologies, Ltd. Strictly Confidential Azure Verified Module (AVM)とは 4 Microsoftが検証し標準化されたIaCモジュール群 標準化 AVMとしての仕様が定義されており、モジュール間の一貫性確保 (現在はBicepとTerraformをサポート) モジュールはUnit Testやe2e Testを通じて仕様準拠・デプロイ可能な状態を保証 検証 MSが公式にサポートするOSSプロジェクト AVMコアチームによる長期的な運営とサポート規約の明示 サポート WAF Aligned WAFなどの推奨事項に(可能な限り)準拠するようにデフォルトパラメータを設定 信頼性のあるIaCモジュールで開発者が安心して効率的に開発できるように

Slide 6

Slide 6 text

© 2024 Mizuho Research & Technologies, Ltd. Strictly Confidential AVMを導入するきっかけと期待 弊社内の生成AIチャットボット環境はAzure Developer CLI(azd) Starter Bicepを利用して立ち上げ • プロジェクト雛形生成と、多くのリソーステンプレート、GitHub Actionsテンプレートが プリセット • MS命名規則の接頭辞コレクション 5 > azd init -t azd-starter-bicep > azd up できるだけ用意されたものを使って、1から Bicepを書く必要がないようにしたい 生成AIチャットボット コード管理/CI/CD 開発者 ※azdは気に入っているのですが今回説明は割愛致します・・・

Slide 7

Slide 7 text

© 2024 Mizuho Research & Technologies, Ltd. Strictly Confidential AVMを導入するきっかけと期待 ただし、カバーされていないリソースなど不足要素はもちろんあり、都度追加実装するものの、正 しい実装が出来ているかの検証に頭を悩ませたり時間がかかってしまう・・・ →AVMの存在を知り、求める要件に合致しそうであるため、azdとAVMの組合せについて現在進行中 6 PaaSのような「開発に集中できる」メリットを享受できるかも 生成AIチャットボット コード管理/CI/CD 開発者

Slide 8

Slide 8 text

AVMの使い方 7

Slide 9

Slide 9 text

© 2024 Mizuho Research & Technologies, Ltd. Strictly Confidential AVMの使い方 AVMプロジェクトページのモジュールインデックスから、使いたいモジュールを選定 8 1.モジュール選定 現在136モジュール https://azure.github.io/Azure-Verified-Modules/

Slide 10

Slide 10 text

© 2024 Mizuho Research & Technologies, Ltd. Strictly Confidential AVMの使い方 各モジュールのREADMEに記載されているパラメータセット等の仕様に沿ってBicepを構築する 用途に応じた利用例が用意されているので、取り掛かりはこちらを参考に 9 2.Bicep構築 • AVMは、Bicep Registry Module で公開さ れているパスを指定して利用する VSCodeのBicep拡張機能により補完が効 くのでとても便利 • バージョン指定することで、AVMの更新 が意図せず反映されてしまうことを防止 https://github.com/Azure/bicep-registry- modules/tree/main/avm/res/web/site#example-1-function-app-using-only-defaults

Slide 11

Slide 11 text

AVMの使用感/使いこなすための一歩 まとめ 10

Slide 12

Slide 12 text

© 2024 Mizuho Research & Technologies, Ltd. Strictly Confidential AVMの使用感/使いこなすための一歩 11 柔軟な用途に対応したテンプレートがありがたい! • こちらは先ほどの最小限のパラメータでのデプロイ とは違い、WAF準拠に必要なパラメータで構築する 使用例 • 気軽に始めることもできれば、このような大規模な パラメータでの構築も対応 →再使用可能・多目的対応なテンプレートを目指すほど パラメータの増加やコードの品質維持の労力が比例して 高くなるため、公式検証されたものはとても有用

Slide 13

Slide 13 text

© 2024 Mizuho Research & Technologies, Ltd. Strictly Confidential AVMの使用感/使いこなすための一歩 12 WAFへの準拠はよく見極めよう! 一方で、 WAFへの準拠の推奨値であることはしっかりと認識すべきであるため、要件に照らして 取捨選択の見極めをするプロセスが大事 AVMとのインターフェイスはパラメータのみであり、(ソースは公開されているものの)AVMの中身 の挙動はユーザーからはブラックボックス AVMのデフォルトパラメータ次第で、ユースケースによっては過剰なスペックになるケースも このサービスを勉強したいから 最小限のパラメータで作ってみよう 最初から3台にスケールアウトして いるぞ・・・ WAF(可用性):AZの確保が推奨

Slide 14

Slide 14 text

© 2024 Mizuho Research & Technologies, Ltd. Strictly Confidential AVMの使用感/使いこなすための一歩 13 子モジュールの情報を認知できない点に注意! AVMでは子モジュールの扱いは親モジュールのソースで決められており、ユーザーからはブラック ボックスのため、子モジュールの情報をAVM呼び出し元のBicepで利用したいケースでは注意が必要 親 API Management 子 apiVersionSets apis outputs: { name: hoge resourceId: XXX } apiVersionSetsのresourceIdを 使いたいのに。。。 例:ある子モジュールで他の子モジュールのデプロイ結果(Outputs)を使いたいとき、親モジュール にはOutputsが返るがAVM内で完結するため、呼び出し元のBicepでは子モジュールのOutputs を認知することはできない

Slide 15

Slide 15 text

© 2024 Mizuho Research & Technologies, Ltd. Strictly Confidential AVMの使用感/使いこなすための一歩 当たり前のことではありますが、ドキュメントにはヒントがたくさん詰まっていますので、ご一読 オススメです 特にFAQは充実している印象ですので、理解促進の助けになるはずです! (今日お話したこともいくつかこちらにあります) 14 公開されている仕様やFAQにはヒントがたくさん! https://azure.github.io/Azure-Verified-Modules/faq/#can-i-call-a-bicep-child-module-directly-eg- can-i-update-or-add-a-secret-in-an-existing-key-vault-or-a-route-in-an-existing-route-table

Slide 16

Slide 16 text

© 2024 Mizuho Research & Technologies, Ltd. Strictly Confidential まとめ • MSが検証・サポートし長期的な取り組みを標榜しているため、安心して使っていけそう • 標準化されたモジュールは、実装者のIaCスキルを補完し、コードの品質確保に繋がりそう • 意図しないデフォルトパラメータの設定や、パラメータのみのやり取りが制約となるようなアーキ テクチャ設計などは利用時に留意しつつ、ベストプラクティスに乗っかれるように活用を検討する 15 Microsoftが検証し標準化されたIaCモジュール群 (再掲)

Slide 17

Slide 17 text

16