変更要約: 各節に図(figure)を追加=cert-figure-retrofit。AI-300 第1章を新規作成(ドメイン1「MLOps インフラ」: ワークスペース/データストア/コンピューティング ターゲット/ID・アクセス管理、アセット管理=データアセット/環境/コンポーネント/レジストリ、IaC と自動化=Bicep・Azure CLI/GitHub Actions/ワークロード ID フェデレーション/ネットワーク制限/Git)
1.3Machine Learning の IaC と自動化
GitHub と Machine Learning の安全な連携、Bicep と Azure CLI によるワークスペース/リソースのデプロイ、GitHub Actions ワークフローによるプロビジョニングの自動化、ワークスペースへのネットワークアクセス制限、そして Git によるソース管理を、MLOps の自動化基盤として理解します。
MLOps は、手作業ではなくコードと自動化でインフラとパイプラインを再現可能に回します。AI-300 では IaC(Infrastructure as Code)と CI/CD の基本が問われます。
1.3.1Bicep/Azure CLI と GitHub Actions
ワークスペースやコンピューティングなどのリソースは Bicep(宣言的 IaC)と Azure CLI でコードとしてデプロイします。さらに GitHub Actions のワークフローで、コードのプッシュをトリガーにプロビジョニングや学習・デプロイを自動実行します。GitHub と Machine Learning は ワークロード ID フェデレーション(シークレットを持たない安全な連携)で接続するのが推奨です。これにより、環境構築を再現可能・監査可能にします。
1.3.2ネットワーク制限と Git ソース管理
ワークスペースへのアクセスは プライベート ネットワーク(プライベート エンドポイント/マネージド仮想ネットワーク)でパブリック露出を制限します。プロジェクトのコード(学習スクリプト・パイプライン定義・IaC)は Git でソース管理し、変更履歴・レビュー・ロールバックを可能にします。「インフラも ML パイプラインもコード化して Git で管理し、Actions で自動化する」のが MLOps の基本姿勢です。
| 目的 | 手段 | 要点 |
|---|---|---|
| リソースをコードでデプロイ | Bicep / Azure CLI | 宣言的・再現可能 |
| プロビジョニング/学習の自動化 | GitHub Actions ワークフロー | プッシュで自動実行 |
| GitHub との安全な連携 | ワークロード ID フェデレーション | シークレットレス |
| パブリック露出の制限 | プライベート エンドポイント/マネージド VNet | ネットワークアクセス制限 |
| コードの変更管理 | Git ソース管理 | 履歴・レビュー・ロールバック |
混同に注意:
①Bicep/CLI(IaC=リソースのデプロイ)とGitHub Actions(CI/CD=ワークフローの自動実行)は補完的。
②GitHub 連携はワークロード ID フェデレーション(シークレットレス)が推奨——長期のシークレットを GitHub に置かない。
③ワークスペースのネットワーク制限とRBAC(認可)は別レイヤー。
「要件 → 手段」:例「ワークスペースをコードで再現可能にデプロイ」=Bicep/Azure CLI、「プッシュで学習/デプロイを自動化」=GitHub Actions、「GitHub からシークレットなしで Azure へ」=ワークロード ID フェデレーション、「ワークスペースをパブリックに晒さない」=プライベート エンドポイント、「スクリプトの変更履歴とレビュー」=Git。
1.3.3この節のまとめ
- IaC(Bicep/Azure CLI)でリソースをコード化し、GitHub Actions でプロビジョニング/学習/デプロイを自動化
- GitHub 連携はワークロード ID フェデレーション(シークレットレス)。ワークスペースはプライベートネットワークで保護
- インフラも ML パイプラインも Git で管理(履歴・レビュー・ロールバック)
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. Azure のリソース(ワークスペース等)を宣言的なコードとして再現可能にデプロイするために使うのはどれですか?
Q2. コードのプッシュをトリガーにプロビジョニングや学習・デプロイを自動実行する仕組みはどれですか?
Q3. GitHub から Azure へ長期のシークレットを持たずに安全に接続する推奨方法はどれですか?
Q4. AML ワークスペースへのアクセスをパブリックに晒さず、ネットワークを制限するにはどうしますか?
Q5. 学習スクリプトやパイプライン定義、IaC の変更履歴・レビュー・ロールバックを可能にするのはどれですか?
Q6. IaC(Bicep/CLI)と GitHub Actions の関係として正しいものはどれですか?

