Azure Container Apps に移行する
Note
Basic、Standard、Enterprise プランは、2025 年 3 月中旬以降非推奨になり、廃止期間は 3 年間です。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。
Standard 従量課金と専用プランは、2024 年 9 月 30 日以降に非推奨になり、6 か月後に完全にシャットダウンされます。 Azure Container Apps に移行することをお勧めします。 詳細については、「Azure Spring Apps の Standard 従量課金および専用プランを Azure Container Apps に移行する」を参照してください。
この記事の適用対象:✅ Basic/Standard ✅ Enterprise
Azure Spring Apps と Azure Container Apps はどちらも、複雑なインフラストラクチャを管理せずにアプリケーションの実行を簡略化するように設計された Azure 上のマネージド プラットフォームです。 どちらのサービスでも、開発者は基になるシステムのセットアップとメンテナンスについて心配することなく、アプリケーションに集中できます。 これらは Azure エコシステムとネイティブに統合されるため、監視、セキュリティ、デプロイのために Azure Monitor、Key Vault、Azure DevOps などのサービスに簡単に接続できます。
Azure Spring Apps が廃止されたため、Azure Spring Apps で実行されているワークロードの移行のためのプライマリ サービスとして Azure Container Apps をお勧めします。 Azure Container Apps は、コンテナー化されたアプリケーション用に柔軟でスケーラブルな最新の基盤を提供することで、ワークロードをすぐ利用できるように準備し、Azure エコシステムとシームレスに統合できるようにします。
この記事では、Azure Spring Apps から Azure Container Apps にワークロードを移行し、中断を最小限に抑え、新しいプラットフォームの利点を最大限に活用するための詳しいガイドを提供します。
概念マッピング
次の概念マッピングの表は、Azure Spring Apps と Azure Container Apps の比較を示しています。 これは、Azure Spring Apps の馴染み深い概念が、Azure Container Apps の同等の機能にどのように対応するかを理解するのに役立ちます。
Azure Spring Apps サービス | Azure Container Apps サービス |
---|---|
サービス インスタンスは、アプリとその他のリソースの境界をホストしてセキュリティで保護し、カスタム仮想ネットワークをサポートします。 | 環境は、コンテナー アプリケーションのセキュアな境界を確立し、カスタム仮想ネットワークをサポートします。 |
アプリは、サービス インスタンス内の子リソースとして機能する 1 つのビジネス アプリです。 | コンテナー アプリは、マネージド環境に接続する独立した Azure リソースとして定義される 1 つのビジネス アプリです。 |
デプロイはアプリのバージョンです。 アプリには、1 つの運用環境デプロイと 1 つのステージング デプロイを含めることができます。 | リビジョンは、コンテナー アプリの各バージョンの変更不可能なスナップショットです。 コンテナー アプリには、1 つまたは複数のリビジョンを含めることができます。 |
アプリケーション インスタンスは、サービスによって管理される最小ランタイム ユニットです。 | コンテナー (レプリカ) は、一連のコンテナーと最小ランタイム ユニットです。 1 つのコンテナー アプリ用に、複数のコンテナー (サイドカー コンテナーや init コンテナー) をまとめて構成できます。 |
Azure ロールベースのアクセス制御の設定
Azure Spring Apps と Azure Container Apps では、どちらも Azure ロールベースのアクセス制御 (RBAC) 設定がサポートされています。 ただし、リソース階層が異なるため、エクスペリエンスは変わります。
Azure Spring Apps では、リソース階層はサービス インスタンスを中心にしています。 ロールの割り当てはインスタンスに適用され、アプリやデプロイなどの子リソースに自動的に伝達されます。 この設計は、一元的な管理を実現します。 ただし、ユーザーがサービス インスタンスではなく特定のアプリまたはデプロイにアクセスする必要がある場合は、それらのリソースに対して特定のアクセス許可を付与する必要があります。
API の観点から、Azure Container Apps は、環境とコンテナー アプリのリソースの種類を、同じ階層レベルにある別個の独立したエンティティとして設計します。 ロールは、マネージド環境または個々のコンテナー アプリのレベルで割り当てることができます。 この構造により、特定のアプリケーションを正確に制御できます。 たとえば、チームや個人ごとに異なるコンテナー アプリへのアクセス権を付与できます。 この柔軟性により、共有環境で個別にリソースを管理しやすくなります。 また、他の Azure リソースを管理する際の使い慣れたエクスペリエンスにも適合します。
移行のアプローチ
Azure Spring Apps から Azure Container Apps への移行アプローチには、次の主要な手順が伴います。
評価と計画: 依存関係、構成、ネットワーク設定など、Azure Spring Apps 上の現在のワークロードを評価します。
アプリケーションのコンテナー化: Azure Container Apps では JAR またはソース コードからのデプロイがサポートされていますが、より高い移植性と効率性を備える Docker コンテナーにアプリケーションをコンテナー化することをお勧めします。 Dockerfile を作成し、Azure Container Registry や Docker Hub などのツールを使用してコンテナー イメージをビルドすることで、アプリケーションをコンテナー化できます。 ローカルでビルドパックを使用してコンテナー イメージをビルドすることもできます。 アプリケーションをコンテナー化し、Azure Spring Apps で実行されているイメージと同様のコンテナー イメージをビルドする方法については、「コンテナー化の概要」を参照してください。
Azure Container Apps 環境の設定: Azure Container Apps でマネージド環境をプロビジョニングします。これには、Azure Spring Apps での以前のネットワーク構成に合わせた、仮想ネットワーク、サブネット、その他の必要なセキュリティ設定の構成が含まれます。 詳細については、「Azure Container Apps のプロビジョニング」または「カスタム仮想ネットワークの移行」を参照してください。
Azure Container Apps での Java コンポーネントの作成と構成: Eureka サーバー、Config Server、ゲートウェイ、マネージド管理を有効にして構成します。これらのコンポーネントは、Spring アプリケーションでのマイクロサービスのオーケストレーションと管理に不可欠です。 シームレスな移行のためにこれらが適切に構成されていることを確認してください。
Enterprise プランを使用する場合は、次の記事を参照してください。
- Tanzu Service Registry
- Application Configuration Service for Tanzu または Config Server
- Spring Cloud Gateway for Tanzu
- Application Live View
- Tanzu 用 API ポータル
Standard プランを使用する場合は、次の記事を参照してください。
コンテナーのデプロイ: コンテナー化されたアプリケーションを Azure Container Apps 環境にデプロイします。 要件に応じて、アプリケーションのリビジョン、スケーリング ポリシー、ネットワーク構成を設定します。 詳細については、「アプリケーション移行の概要」を参照してください。
監視: 移行中に、Azure Monitor を使用してアプリケーションのパフォーマンスを継続的に監視し、スケーリング設定やリソース割り当ての調整など、最適化のために必要に応じて構成を調整します。 詳細については、「Azure Container Apps のログとメトリック」を参照してください。
テストと検証: 徹底的なテストを実行して、コンテナー化されたアプリケーションが新しい環境で期待どおりに機能することを確認します。 ネットワーク接続、スケーリング、他のサービスとの統合を確認します。
クライアントと自動化ツール: 日々の開発や運用のタスクを効率化するために、クライアント ツールや自動化ソリューションを活用します。 これらのツールには、Azure CLI、Azure DevOps、GitHub Actions のほか、クライアント ツールや IDE にある拡張機能が含まれます。 これらのツールは、デプロイの自動化、パフォーマンスの監視、リソースの効率的な管理に役立ち、これにより、手動による作業を減らし、運用の機敏性を向上させることができます。 一般的なツールの詳細については、「Azure Container Apps のクライアントまたは自動化ツール」を参照してください。
チュートリアル
Azure Container Apps で ACME Fitness Store アプリケーションを実行するエンド ツー エンドのエクスペリエンスを示すチュートリアルを用意しています。 詳細については、acme-fitness-store/azure-container-apps を参照してください。 このチュートリアルでは、実践的なガイダンスを示しているため、プラットフォーム上のコンテナー化されたアプリケーションのデプロイと管理に関する実用的な洞察と自信をすばやく得ることができます。