mcpField
D
deploying-on-azure

deploying-on-azure

github.com/ancolemanクラウド・DevOps52569 回インストール46 週間前に更新
リポジトリ

deploying-on-azure について

Azure アプリケーションを設計・実装する開発者やアーキテクト向けのスキルです。Well-Architected Framework に沿って、サービス選定、セキュリティ、コスト、ガバナンス、IaC の設計パターンを扱います。

主な機能

  1. 01Azure サービス選定ガイド
  2. 02コンピューティング・ストレージ・DB のパターン
  3. 03セキュリティと ID 管理の指針
  4. 04コスト最適化とガバナンス
  5. 05Bicep と Terraform の例

活用シーン

  1. 01Azure アプリの構成を計画
  2. 02コンピューティングやコンテナサービスを比較
  3. 03ストレージとデータベースを設計
  4. 04ネットワークセキュリティとコスト方針を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ancoleman/ai-design-components --skill deploying-on-azure

インストール後、Claude Code で/deploying-on-azureを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

outputs.yaml
examples/bicep/container-apps/
main.bicep
examples/sdk/python/
azure-openai-rag.py
references/
ai-integration.md
compute-services.md
database-selection.md
governance-compliance.md
identity-access.md
messaging-patterns.md
networking-architecture.md
security-architecture.md
storage-patterns.md
well-architected.md

詳細

Azure パターン

Microsoft の Well-Architected Framework と、サービス選定、コスト最適化、セキュリティに関するベストプラクティスに沿って、Azure クラウドアーキテクチャを設計、実装します。

使用する場面

次の場合にこのスキルを使用します。

  • Azure クラウド向けの新しいアプリケーションを設計する
  • Azure のコンピューティングサービス(Container Apps、AKS、Functions、App Service)を選定する
  • ストレージソリューション(Blob Storage、Files、Cosmos DB)を設計する
  • Azure OpenAI または Cognitive Services を統合する
  • メッセージングパターン(Service Bus、Event Grid、Event Hubs)を実装する
  • Private Endpoints を使用したセキュアなネットワークを設計する
  • Azure のガバナンスおよびコンプライアンスポリシーを適用する
  • Azure のコストとパフォーマンスを最適化する

主な概念

サービス選定の考え方

Azure には 200 以上のサービスがあります。次の点を基準に選定してください。

  1. マネージドサービスか IaaS か - 運用負荷を軽減できるフルマネージドサービスを優先します
  2. コストモデル - 従量課金か専用キャパシティか
  3. 統合要件 - Microsoft 365、Active Directory、ハイブリッドクラウド
  4. 制御性かシンプルさか - 制御性が高いほど運用負荷も増します
Azure Well-Architected Framework(5 つの柱)
柱重点分野主なプラクティス
コスト最適化予算内で価値を最大化するReserved Instances、自動スケーリング、ライフサイクル管理
オペレーショナルエクセレンス信頼性の高いシステムを運用するAzure Policy、自動化、監視
パフォーマンス効率需要に応じてスケールする自動スケーリング、キャッシュ、CDN
信頼性障害から復旧するAvailability Zones、マルチリージョン、バックアップ
セキュリティデータと資産を保護するManaged Identity、Private Endpoints、Key Vault

各柱の実装パターンの詳細については、references/well-architected.md を参照してください。

コンピューティングサービスの選定

判断フレームワーク
Container-based workload?
  YES → Need Kubernetes control plane?
          YES → Azure Kubernetes Service (AKS)
          NO → Azure Container Apps (recommended)
  NO → Event-driven function?
         YES → Azure Functions
         NO → Web application?
                YES → Azure App Service
                NO → Legacy/specialized → Virtual Machines
サービスの比較
サービス最適な用途料金モデル運用負荷
Container Appsマイクロサービス、API、バックグラウンドジョブ従量課金または専用低
AKS複雑な K8s ワークロード、サービスメッシュノードベース高
Functionsイベント駆動型、短時間のタスク(10 分未満)従量課金または Premium低
App ServiceWeb アプリ、シンプルな API専用プラン低
Virtual Machinesレガシーアプリ、特殊なソフトウェアVM ベース高

推奨事項: コンテナー化されたワークロードの 80% では、まず Azure Container Apps を使用してください(AKS よりもシンプルで低コストです)。

Bicep および Terraform の例を含む詳細な比較については、references/compute-services.md を参照してください。

ストレージアーキテクチャ

Blob Storage のティア選定
ティアアクセスパターンコスト/GB/月最小保存期間
Hot毎日アクセス$0.018なし
Cool1 か月あたり 1 回未満のアクセス$0.01030 日
Cold90 日未満のアクセス$0.004590 日
Archiveまれにアクセス$0.00099180 日

パターン: ライフサイクル管理ポリシーを使用して、データを低コストのティアへ自動的に移動します。

ストレージサービスの選定
File system interface required?
  YES → Protocol?
          SMB → Azure Files (or NetApp Files for high performance)
          NFS → Azure Files (NFS 4.1)
  NO → Object storage → Blob Storage
       Block storage → Managed Disks (Standard/Premium SSD/Ultra)
       Analytics → Data Lake Storage Gen2

ライフサイクルポリシー、冗長性オプション、パフォーマンスチューニングについては、references/storage-patterns.md を参照してください。

データベースサービスの選定

判断フレームワーク
Relational data?
  YES → SQL Server compatible?
          YES → Need VM-level access?
                  YES → SQL Managed Instance
                  NO → Azure SQL Database
          NO → Open source?
                 PostgreSQL → PostgreSQL Flexible Server
                 MySQL → MySQL Flexible Server
  NO → Data model?
         Document/JSON → Cosmos DB (NoSQL API)
         Graph → Cosmos DB (Gremlin API)
         Wide-column → Cosmos DB (Cassandra API)
         Key-value cache → Azure Cache for Redis
         Time-series → Azure Data Explorer
Cosmos DB の整合性レベル
レベルユースケースレイテンシスループット
Strong金融取引、在庫管理最高最低
Bounded Staleness許容可能な遅延を伴うリアルタイムランキング高低
Sessionショッピングカート、ユーザーセッション(デフォルト)中中
Consistent Prefixソーシャルフィード、IoT テレメトリ低高
Eventual分析、ML トレーニングデータ最低最高

キャパシティプランニング、インデックス戦略、移行パターンについては、references/database-selection.md を参照してください。

AI と機械学習の統合

Azure OpenAI Service

ユースケース:

  • チャットボットと会話型 AI(GPT-4)
  • コンテンツの生成と要約
  • エンベディングを使ったセマンティック検索(RAG パターン)
  • コードの生成と補完
  • 構造化出力のための関数呼び出し

主な利点:

  • エンタープライズレベルのデータプライバシー(顧客データを使ったモデルのトレーニングなし)
  • データ所在地の要件に対応するリージョン別のデプロイ
  • Microsoft のエンタープライズ SLA
  • 組み込みのコンテンツフィルタリング

統合パターン:

from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
client = AzureOpenAI(
    azure_endpoint="https://myopenai.openai.azure.com",
    azure_ad_token_provider=token_provider,
    api_version="2024-02-15-preview"
)

response = client.chat.completions.create(
    model="gpt-4-turbo",
    messages=[{"role": "user", "content": "Hello!"}]
)
その他の AI サービス
サービス目的一般的なユースケース
Cognitive Services事前構築済みの AI モデルビジョン、音声、言語、意思決定
Azure Machine LearningカスタムモデルのトレーニングMLOps、モデルのデプロイ、特徴量エンジニアリング
Azure AI Searchセマンティック検索エンジンRAG パターン、ドキュメント検索

RAG アーキテクチャ、関数呼び出し、ファインチューニングのパターンについては、references/ai-integration.md を参照してください。

メッセージングと統合

サービス選択マトリックス
サービスパターンメッセージサイズ順序保証トランザクション最適な用途
Service Busキュー/トピック256 KB - 100 MBはい(セッション)はいエンタープライズメッセージング
Event Gridパブリッシュ/サブスクライブ1 MBいいえいいえイベント駆動型アーキテクチャ
Event Hubsストリーミング1 MBはい(パーティション)いいえビッグデータの取り込み、テレメトリ
Storage Queuesシンプルなキュー64 KBいいえいいえ非同期処理、毎秒 50 万件未満のメッセージ

どのサービスを使うべきか:

  • Service Bus: トランザクションを伴う信頼性の高いメッセージング(例:注文処理)
  • Event Grid: Azure リソースのイベントへの対応(例:Blob の作成、VM の停止)
  • Event Hubs: 高スループットのストリーミング(例:IoT テレメトリ、アプリケーションログ)

実装例、再試行ポリシー、デッドレター処理については、references/messaging-patterns.md を参照してください。

ネットワークアーキテクチャ

プライベートエンドポイントとサービスエンドポイントの比較
項目プライベートエンドポイントサービスエンドポイント
セキュリティモデルVNet 内のプライベート IPパブリックエンドポイントへの最適化されたルート
データ流出の防止はい(ネットワーク分離)限定的(サービスのファイアウォールのみ)
コストエンドポイントあたり約 7.30 ドル/月無料
推奨用途本番ワークロード開発/テスト環境

ベストプラクティス: 本番環境のすべての PaaS サービスにプライベートエンドポイントを使用してください(パブリックエンドポイントの使用はアンチパターンと見なしてください)。

ハブアンドスポークトポロジ

コンポーネント:

  • ハブ VNet: 共有サービス(Azure Firewall、VPN Gateway、プライベートエンドポイント)
  • スポーク VNet: アプリケーションワークロード(環境またはチームごとに分離)
  • VNet ピアリング: ハブとスポーク間の低レイテンシ接続

利点:

  • セキュリティの一元化(ファイアウォール、DNS)
  • コストの最適化(エグレスの共有)
  • ガバナンスの簡素化

ハブアンドスポークの Bicep テンプレート、NSG パターン、DNS 構成については、references/networking-architecture.md を参照してください。

ID とアクセス管理

マネージド ID パターン

以下の代わりに、常にマネージド ID を使用してください:

  • コード内の接続文字列
  • ストレージアカウントキー
  • サービスプリンシパルの認証情報
  • API キー

システム割り当てとユーザー割り当ての比較:

種類ライフサイクルユースケース
システム割り当てリソースにひも付け単一のリソースにアクセスが必要
ユーザー割り当て独立複数のリソースで ID を共有

フローの例:

  1. Container App でマネージド ID を有効にする
  2. ID に Key Vault へのアクセス権を付与する(RBAC またはアクセス ポリシー)
  3. アプリケーションが自動的に認証する(認証情報は不要)
from azure.identity import DefaultAzureCredential

# Works automatically with Managed Identity
credential = DefaultAzureCredential()
keyvault_client = SecretClient(vault_url="...", credential=credential)
Azure RBAC のベストプラクティス
  • 可能な場合は組み込みロール(Owner、Contributor、Reader)を使用します
  • 最小権限の原則を適用します
  • ロールはサブスクリプションではなく、リソースグループのレベルで割り当てます
  • ユーザー管理には Azure AD グループを使用します
  • ロールの割り当てを定期的に監査します

Entra ID の統合、条件付きアクセス ポリシー、B2C のパターンについては、references/identity-access.md を参照してください。

ガバナンスとコンプライアンス

ガードレールとしての Azure Policy

一般的なポリシーパターン:

  • すべてのリソースにタグ(Environment、Owner、CostCenter)を必須にします
  • 許可する Azure リージョンを制限します
  • TLS 1.2 以上を必須にします
  • ストレージアカウントにプライベートエンドポイントを必須にします
  • VM でのパブリック IP アドレスを禁止します

ポリシーの効果:

  • Deny: 非準拠のリソース作成をブロックします
  • Audit: 非準拠をログに記録しますが、作成は許可します
  • DeployIfNotExists: 不足している構成を自動的に修正します
  • Modify: デプロイ時にリソースのプロパティを変更します
コスト管理

最適化戦略:

パターン削減率ユースケース
Reserved Instances(1-year)40-50%安定したワークロード(データベース、VM)
Reserved Instances(3-year)60-70%長期的なコミットメント
Spot VMs最大90%フォールトトレラントなバッチ処理
自動シャットダウン変動開発/テスト用リソース(営業時間外)
ストレージのライフサイクルポリシー50-90%Cool/Archive ティアへの移行

モニタリング:

  • Azure Cost Management で予算とアラートを設定します
  • Azure Advisor のコストに関する推奨事項を毎週確認します
  • コスト配賦のためにリソースにタグを付けます
  • Power BI ダッシュボードには FinOps Toolkit を使用します

Azure Landing Zones、Policy の定義、Blueprints については、references/governance-compliance.md を参照してください。

Infrastructure as Code

ツールの選択
ツール最適な用途Azure との統合マルチクラウド
BicepAzure ネイティブのプロジェクト優れている(公式)いいえ
Terraformマルチクラウド環境良好(azurerm プロバイダー)はい
Pulumi開発者優先のアプローチ良好(ネイティブ SDK)はい
Azure CLIスクリプトと自動化優れているいいえ

推奨事項:

  • Azure のみのインフラストラクチャには Bicep を使用します(Azure との統合が最も優れており、ネイティブの型安全性を備えています)
  • マルチクラウド環境、または既存の Terraform 利用組織では Terraform を使用します
  • クイックスクリプトや CI/CD の自動化には Azure CLI を使用します
Bicep のベストプラクティス
  • 環境固有の値にはパラメーターファイルを使用します
  • テスト済みのパターンには Azure Verified Modules(AVM)を活用します
  • リソースのライフサイクル(ネットワーク、データ、コンピューティング)ごとに整理します
  • シンボリック名を使用します(文字列補間は使用しません)
  • CI/CD でリンティングと検証を有効にします

Bicep と Terraform の例については、examples/bicep/ と examples/terraform/ ディレクトリを参照してください。

セキュリティのベストプラクティス

必須のセキュリティ制御
制御実装優先度
マネージド IDすべてのコンピューティングリソースで有効にします重大
プライベートエンドポイント本番環境のすべての PaaS サービス重大
Key Vaultシークレット、キー、証明書を保存します重大
ネットワークセグメンテーションNSG、アプリケーションセキュリティグループ高
Microsoft Defenderすべてのリソースタイプで有効にします高
Azure Policy予防的制御高
Just-In-Time AccessVM と特権アクセス中
多層防御のレイヤー
  1. ネットワーク: プライベートエンドポイント、NSG、Azure Firewall
  2. ID: Entra ID、マネージド ID、条件付きアクセス
  3. アプリケーション: Web Application Firewall、API Management
  4. データ: 保存データの暗号化、転送中の暗号化(TLS 1.2 以上)
  5. モニタリング: Microsoft Defender、Azure Monitor、Sentinel

references/security-architecture.md を参照してください(security-hardening および auth-security スキルも参照)。

コストの見積もり

料金に関する考慮事項

コンピューティング:

  • Container Apps:約$60/月(1 vCPU、2GB RAM、24時間365日稼働)
  • AKS:約$400/月(3ノードのD4s_v5クラスター)
  • App Service P1v3:約$145/月(2 vCPU、8GB RAM)
  • Functions Consumption:100万回の実行あたり約$0.20

ストレージ:

  • Blob Hot:$0.018/GB/月
  • Blob Cool:$0.010/GB/月
  • Blob Archive:$0.00099/GB/月
  • Managed Disks Premium SSD:$0.15/GB/月

データベース:

  • Azure SQL Database(2 vCore):約$280/月
  • Cosmos DB Serverless:消費したRUに応じた従量課金
  • PostgreSQL Flexible(2 vCore):約$125/月

Azure 料金計算ツールを使用してください: https://azure.microsoft.com/pricing/calculator/

クイックリファレンス表

コンピューティングサービスの選択マトリックス
必要なもの...選択するサービス
Kubernetes の機能(CRD、オペレーター)Azure Kubernetes Service
K8s の複雑さを伴わないマイクロサービスAzure Container Apps
イベント駆動型の関数(10分未満)Azure Functions
従来型の Web アプリ(Node、.NET、Python)Azure App Service
バッチ処理、HPCAzure Batch または VM Scale Sets
レガシーアプリケーションの移行Virtual Machines
ストレージサービスの選択マトリックス
必要なもの...選択するサービス
SMB ファイル共有Azure Files
NFS ファイル共有Azure Files(NFS 4.1)
オブジェクトストレージ(画像、バックアップ)Blob Storage
高パフォーマンスのファイルストレージAzure NetApp Files
VM 用のブロックストレージManaged Disks
ビッグデータ分析Data Lake Storage Gen2
データベースサービスの選択マトリックス
必要なもの...選択するサービス
SQL Server の機能(T-SQL、SQL Agent)Azure SQL Database または Managed Instance
PostgreSQLPostgreSQL Flexible Server
MySQLMySQL Flexible Server
グローバル分散、マルチモデルCosmos DB
インメモリキャッシュAzure Cache for Redis
グラフデータベースCosmos DB(Gremlin API)
時系列データAzure Data Explorer

他のスキルとの連携

  • infrastructure-as-code: Bicep または Terraform を使用した Azure パターンの実装
  • kubernetes-operations: AKS 固有の構成と運用
  • deploying-applications: Container Apps と App Service のデプロイ
  • building-ci-pipelines: Azure DevOps と GitHub Actions の連携
  • auth-security: Entra ID の認証および認可パターン
  • observability: Azure Monitor と Application Insights
  • ai-chat: チャットアプリケーション向け Azure OpenAI Service
  • databases-nosql: Cosmos DB の実装詳細
  • secret-management: Azure Key Vault の連携パターン

参考ドキュメント

詳しい実装ガイダンスについては、以下を参照してください。

  • references/compute-services.md - Bicep/Terraform を使用した Container Apps、AKS、Functions、App Service
  • references/storage-patterns.md - Blob Storage、Files、Disks、ライフサイクル管理
  • references/database-selection.md - SQL Database、Cosmos DB、PostgreSQL のパターン
  • references/ai-integration.md - Azure OpenAI、RAG アーキテクチャ、関数呼び出し
  • references/messaging-patterns.md - Service Bus、Event Grid、Event Hubs の例
  • references/networking-architecture.md - ハブ&スポーク、Private Endpoints、DNS の構成
  • references/identity-access.md - Entra ID、Managed Identity、RBAC
  • references/governance-compliance.md - Azure Policy、Landing Zones、コスト最適化
  • references/well-architected.md - 5つの柱の実装ガイド

コード例

動作する例は以下で確認できます。

  • examples/bicep/ - インフラストラクチャテンプレート(Container Apps、AKS、ネットワーク、データベース)
  • examples/terraform/ - マルチクラウド IaC の例
  • examples/sdk/python/ - Python SDK の連携(OpenAI、Managed Identity、メッセージング)
  • examples/sdk/typescript/ - TypeScript SDK の例

Additional Resources

コメント