概要
AZ-204を無事一発合格しました。記録として残します。
点数は780/1000点。
勉強期間は約1週間。実施内容はすべて以下に記録しています。
Microsoft Learning Path
参考
以下記事の勉強方法を参考にしました。
https://hirahira.blog/az-204/#toc7
模擬試験ログ
勉強サイト
Udemy英語テスト
1回目:2025/1/4
Microsoft公式Practice
Udemy日本語テスト
2回目:2025/1/3
状態:Microsoft Learn一周
コンテナソリューションの実装
Azure Container Registry
- ACRと呼ばれる
- Dockerイメージを保存する倉庫的な役割
- レジストリへのイメージアップロードとダウンロードが可能
- EntraIDを使用して認証が可能
- イメージの高可用性を確保
- マネージドIDでの認証も可能
- 価格レベル:Basic, Standard, Premium
- Basic: ストレージとスループットの速度が限られる
- Standard: Basicと同様の機能。ストレージとスループットの速度が増える
- Premium: 自動レプリケーションなどが追加
- ロールとアクセス許可
- 細かな権限付与が可能
- ACRプッシュ:イメージのプッシュ/プルが可能
- ACRプル:イメージのプルしか出来ない
Azure Container Instance
- ACIと呼ばれる
- 最も高速かつシンプルにコンテナを実行する方法
- フルマネージドでスケーラブルな環境を提供
- 必要な時のみ課金される
- Linux、Windowsコンテナをサポート
- 利用シナリオ
- アプリコンテナとログ記録コンテナ
- アプリコンテナと監視コンテナ
- フロントエンドコンテナとバックエンドコンテナ
- 再起動ポリシー
- Always:停止すると自動的に再起動
- OnFailure:エラーで停止した場合のみ再起動
- Never:再起動しない
Azure Container Apps
- AKS上で動作するアプリを実行可能
- 主な機能
- APIエンドポイントのデプロイ
- バックグラウンド処理アプリケーションのホスティング
- イベント駆動型の処理
- マイクロサービスの実行
- 認証と認可の実装
- 利用シナリオ
- 複数のコンテナリビジョンを実行
- HTTPSイングレスを有効
- 任意レジストリからコンテナを実行する
- 単一のコンテナではACI
- 複数コンテナではACAを利用
acr, aci, acaの違い by chatGPT
AzureのACR (Azure Container Registry)、ACI (Azure Container Instances)、**ACA (Azure Container Apps)**は、コンテナの管理やデプロイに関連するサービスですが、それぞれ役割が異なり、補完的な関係を持っています。
ACR (Azure Container Registry) 🏢
役割: コンテナイメージの保存・管理
特徴:
コンテナイメージを格納するプライベートなレジストリ。
Docker Hub のようなイメージ管理ツールだが、Azure環境に統合されている。
CI/CD パイプラインやデプロイで利用。
利用シーン:
コンテナイメージをビルドして、ACIやACAにデプロイする際に利用。
ACI (Azure Container Instances) 🚀
役割: シンプルなコンテナ実行環境
特徴:
コンテナを単独で実行するサービス。
VMを使わず、すばやくコンテナを起動できる。
シンプルなアプリケーションや短期的なジョブに適している。
利用シーン:
単一コンテナアプリのテストや開発。
バッチ処理や一時的なタスクの実行。
ACA (Azure Container Apps) 🛠️
役割: サーバーレスコンテナプラットフォーム
特徴:
マイクロサービスや複数のコンテナをスケーリングして実行。
Kubernetesの概念を抽象化して簡略化。
自動スケール(イベントドリブン)やセキュリティを提供。
利用シーン:
Web アプリやバックエンドサービスのデプロイ。
複数コンテナ間の連携が必要なアプリケーション。
関係性
ACR:
コンテナイメージを保存。ACIやACAのデプロイ元として利用される。
ACI:
ACRに保存されたイメージを取得してシンプルな実行環境を提供。
ACA:
ACRのイメージを利用して、スケーラブルなマイクロサービスを構築可能。
まとめ
ACR = コンテナイメージの保存場所 🛢️
ACI = 簡易的なコンテナ実行環境 🚀
ACA = 複雑なアプリケーション向けのサーバーレスプラットフォーム 🛠️
状況によって使い分けるのがポイントだよ
Azure App Service
- Webアプリケーション、REST API、モバイルバックエンドをホストするためのHTTPベースのサービス
- 主な機能
- 任意の言語で開発可能
- 自動スケール
- スケールアップ、スケールダウン
- スケールアウト、スケールイン
- CICDのサポート
- デプロイスロット
- スロット間でスワイプ可能
- 価格レベル
- Free
- Shared
- Basic
- Standard
- Premium
- PremiumV2
- PremiumV3
- 価格レベルカテゴリ
- 共有コンピューティング
- 専用のコンピューティング
- Isolated
- 専用のAzureVMが専用のAzureVirtualNetwork上で動く
- 診断ログの有効化をAzurePortal上から可能
- セキュリティ証明書の作成、アップロード、インポートが可能
- プライベート証明書
- パブリック証明書
- Key Vaultから証明書をインポート
Azure App Serviceのスケーリング
- スケールアップ:性能を上げること
- スケールダウン:性能を下げること
- スケールアウト:仮想マシンの台数を増やす
- スケールイン:仮想マシンの台数を減らす
- メトリックがルールで設定された閾値を超えるとアクションの事項が可能
- 自動スケーリングのベストプラクティス
- 最大値と最小値が異なっており、十分な差があること
- 診断メトリックに適切な統計を選択する
- 平均、最小、最大、合計・・・
- 閾値を慎重に選択する
- 常に安全な既定のインスタンス数を選択する
- 自動スケールの通知を構成する
Azure App Serviceのデプロイスロット
- Standard以上の場合、デプロイスロットの利用が可能
- stagingスロットとproductionスロットを任意のタイミングでスワップ可能
Azure Functions
- サーバー不要のアプリ作成が可能
- サーバーレスソリューション
- 最新リソースがすべて提供されるためデプロイや管理を心配する必要がない
- ホスティングオプション
- 従量課金プラン:自動スケーリング、コンピューティングリソースのみに課金
- Premiumプラン:アイドル状態でも遅延なく実行
- 専用プラン:実行時間の長いシナリオに最適
- Functionsをスケーリング
- インスタンス数を増やすことでCPUおよびメモリリソースをスケーリング
Azure Functionsの開発
‐ トリガー:関数実行のトリガー
- HTTPトリガー:リクエストがあった場合に実行される
- バインディング
- BlobStorageバインド:Blobにファイルが入った場合に実行される
- CosmosDBバインド:CosmosDBの値が変化した際に実行される
ここまでのセクションのMicrosoft Learn
- https://learn.microsoft.com/ja-jp/training/paths/az-204-implement-iaas-solutions/
- https://learn.microsoft.com/ja-jp/training/paths/create-azure-app-service-web-apps/
- https://learn.microsoft.com/ja-jp/training/paths/implement-azure-functions/
Azure Blob Starate
- オブジェクトストレージソリューション
- 大量の非構造化データを格納可能
- テキストデータ
- バイナリデータ
- 利用用途
- 画像
- ビデオ
- ログファイルに書き込む
- アーカイブデータ格納
- ストレージアカウントの種類
- Standard
- 汎用V2
- Premium
- ブロックBLOB
- ページBLOB
- Standard
- 暗号化が可能
- 静的Webサイトのホスティングも可能
Blob Strageのライフサイクル
- データが古くなると急激にアクセス数が低下する
- データアクセス層
- ホット
- 頻繁にアクセスされる
- クール
- 頻度が少ない。30日以上保管される大量のデータ
- コールド
- 90日間保存
- アーカイブ
- 180日以上保存
- 取得に数時間かかる可能性がある
- ホット
- ライフサイクルのルールはJson形式で定義
- リハイドレート
- アーカイブ層からホット層に戻すこと
- 読み込み専用なためリハイドレートが必要
Azure CosmosDB
- グローバル分散データベースシステム
- 整合性レベル
- 強固
- 書き込み順が保証される
- 有界整合性制約
- セッション
- 一貫性のあるプレフィックス
- 最終的
- SNSのいいねボタンなど、順番は気にしなくてよいもの
- 強固
- 要求ユニット(RU)
- プロビジョニングスループットモード
- Azureポータルから変更
- サーバーレスモード
- 自動スケーリングモード
- 使用状況に合わせて瞬時にスケーリング
- プロビジョニングスループットモード
ここまでのセクションのMicrosoft Learn
‐ AZ-204: Azure Cosmos DB を使用するソリューションを開発する
Azure Key Vault
- シークレットを安全に保管し、アクセスするためのクラウドサービス
- APIキー
- 証明書
- 暗号化キー
- 利用用途
- シークレット管理
- 証明書管理
- キー管理
- マネージドID
- Azure Key Vaultにアクセスする手段
- EntraID認証をサポートするリソースに接続するときに使用される
- 種類
- システム割り当て
- Azureリソースの一部として作成
- ユーザー割り当て
- スタンドアローンとして作成
- システム割り当て
Azure App Configuration
- アプリケーション設定と機能フラグを一元的に管理
- アプリケーションのすべての設定を一か所に保存し保護可能
- 利点
- 数分で設定可能なフルマネージドサービス
- 特定時点の設定の再生
- etc...
ユーザー認証と承認
- Mictosoft IDプラットフォーム
- 各自のMicrosoftIDやソーシャルアカウントを使用してサインイン可能
- 職場または学校アカウント
- 個人用Microsoftアカウント
- AADB2Cアカウント
- サービスプリンシパル
- 特定の権限を持つIDのみ割り当てが可能
- 認証・認可に使用される
- メリット
- セキュリティ向上
- 認証の自動化
- IDの一元管理(AADで管理される)
- 条件付きアクセス
- 多要素認証
- Intune登録されているデバイスのみ特定のサービスへのアクセスを許可
- ユーザーの場所とIPを制限
Shared Access Signature(SAS)
- ストレージサービスのリソースへの委任アクセス許可を付与する方法
- アクセス許可の例
- リソース種類と開始時刻、有効期限
- アクセス許可のレベル
- IP
- プロトコル
- SASの種類
- ユーザー委任SAS
- サービスSAS
- アカウントSAS
Microsoft Graph
- RESTAPIを介してアクセス
- AzureEntraID
- MicrosoftTeams
- etc...
ここまでのセクションのMicrosoft Learn
Application Insights
- アプリケーションの監視
- 分散トレーシング
- ライブメトリクス
- 高度な分析
- アラートとインシデント管理
- 統合(Azureサービスやサードパーティーサービスと統合可能)
Azure Cache for Redis
- フルマネージド
- 高パフォーマンス
- レプリケーション
- セキュリティ
- リッチなキャッシュ機能
- メリット
- 運用の手間が不要
- 高パフォーマンスかつ高可用性のキャッシュ環境が簡単に構築可能
- Azure製品との密な統合性
Azure Content Delively Network
- コンテンツ配信ネットワーク
- ユーザーにWebコンテンツを効率的に配信できるサーバーの分散ネットワーク
- Webコンテンツのキャッシュとグローバルな配信を最適化するクラウドサービス
- 特徴
- コンテンツのキャッシュと高速配信
- 動的コンテンツの最適化
- グローバル配信
- 静的Webサイトのホスティング
- HTTPSカスタムドメイン
- ジオフィルタリング(特定のエリアからのアクセスをブロック)
- レイヤー7のトラフィック最適化
- メリット
- Webアプリのパフォーマンス向上
- 短い応答時間によるエンドユーザー体験の向上
- etc...
API Management
- APIゲートウェイサービス
- APIをセキュアかつスケーラブルに公開
- 機能
- APIの公開と管理
- APIバージョン管理
- 開発者エンゲージメント
- セキュリティコントロール
- 相互認証
- EntraIDとの連携
- モニタリングと分析
- スケーラビリティ
- 大量のトラフィックに対応
- マルチクラウド対応
- メリット
- セキュアなAPI公開が容易になる
- 一元管理と制御が可能
- 開発ライフサイクルを効率化
- APIのモニタリングと分析が容易になる
Azure Event Grid
- イベントを受け取り他のサービスやアプリにルーティングする
- Topicsを受け取りトリガーを発行する
Azure Event Hubs
- 大規模なデータストリームをクラウド内で受信、処理、保存
- 特徴
- スケーラビリティ
- 信頼性と耐障害性
- セキュリティ
- イベントキャプチャ
- パーティションキュー
- 並列処理が可能
- バッファリング
- 配信先が利用できなくなった場合、一時的にバッファされる
Event GridとEvent Hubsの違い
- Event Gridは軽量イベント
- Event Hubsは大規模データの取り込みと処理
Azure Service Bus
- クラウドベースのメッセージングサービス
- 特徴
- メッセージキュートトピック
- 信頼性の高いメッセージ配信
- 永続化、重複検出、遅延キュー
- セキュアな通信
- セッション管理
- 特定のクライアントに対する順序付けが可能
- 自動パーティションと負荷分散
- AMQP、HTTPS通信
- ユースケース
- 高スループットクラウドメッセージング
- 順序付け配信がメッセージングシナリオ
Azure Queue Storage
- 多数のメッセージを格納するためのサービス
- 最大サイズ64KB
- ユースケース
- 非同期メッセージングに最適
- バックグラウンド処理
- イベントキューイングと処理
- 堅牢でスケーラブルなソリューションを手軽に構築可能