次の方法で共有


Azure Container Apps に移行する

BasicStandard、および Enterprise プランは、2025 年 3 月 17 日に廃止期間に入りました。 詳細については、「Azure Spring Apps の廃止のお知らせ」を参照してください。

Standard 従量課金プランと専用 プランは、2024 年 9 月 30 日に廃止期間に入り、2025 年 3 月末までに完全にシャットダウンされました。 詳細については、「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 の概念マッピングの図。

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 への移行アプローチには、次の主要な手順が伴います。

この記事で説明する移行手順の図。

  1. 評価と計画: 依存関係、構成、ネットワーク設定など、Azure Spring Apps 上の現在のワークロードを評価します。

  2. アプリケーションのコンテナー化: Azure Container Apps では JAR またはソース コードからのデプロイがサポートされていますが、より高い移植性と効率性を備える Docker コンテナーにアプリケーションをコンテナー化することをお勧めします。 Dockerfile を作成し、Azure Container Registry や Docker Hub などのツールを使用してコンテナー イメージをビルドすることで、アプリケーションをコンテナー化できます。 ローカルでビルドパックを使用してコンテナー イメージをビルドすることもできます。 アプリケーションをコンテナー化し、Azure Spring Apps で実行されているイメージと同様のコンテナー イメージをビルドする方法については、「コンテナー化の概要」を参照してください。

  3. Azure Container Apps 環境の設定: Azure Container Apps でマネージド環境をプロビジョニングします。これには、Azure Spring Apps での以前のネットワーク構成に合わせた、仮想ネットワーク、サブネット、その他の必要なセキュリティ設定の構成が含まれます。 詳細については、「Azure Container Apps のプロビジョニング」または「カスタム仮想ネットワークの移行」を参照してください。

  4. Azure Container Apps での Java コンポーネントの作成と構成: Eureka サーバー、Config Server、ゲートウェイ、マネージド管理を有効にして構成します。これらのコンポーネントは、Spring アプリケーションでのマイクロサービスのオーケストレーションと管理に不可欠です。 シームレスな移行のためにこれらが適切に構成されていることを確認してください。

    Enterprise プランを使用する場合は、次の記事を参照してください。

    Standard プランを使用する場合は、次の記事を参照してください。

  5. コンテナーのデプロイ: コンテナー化されたアプリケーションを Azure Container Apps 環境にデプロイします。 要件に応じて、アプリケーションのリビジョン、スケーリング ポリシー、ネットワーク構成を設定します。 詳細については、「アプリケーション移行の概要」を参照してください。

  6. 監視: 移行中に、Azure Monitor を使用してアプリケーションのパフォーマンスを継続的に監視し、スケーリング設定やリソース割り当ての調整など、最適化のために必要に応じて構成を調整します。 詳細については、「Azure Container Apps のログとメトリック」を参照してください。

  7. テストと検証: 徹底的なテストを実行して、コンテナー化されたアプリケーションが新しい環境で期待どおりに機能することを確認します。 ネットワーク接続、スケーリング、他のサービスとの統合を確認します。

  8. クライアントと自動化ツール: 日々の開発や運用のタスクを効率化するために、クライアント ツールや自動化ソリューションを活用します。 これらのツールには、Azure CLI、Azure DevOps、GitHub Actions のほか、クライアント ツールや IDE にある拡張機能が含まれます。 これらのツールは、デプロイの自動化、パフォーマンスの監視、リソースの効率的な管理に役立ち、これにより、手動による作業を減らし、運用の機敏性を向上させることができます。 一般的なツールの詳細については、「Azure Container Apps のクライアントまたは自動化ツール」を参照してください。

移行アシスタント ツール

移行を高速化し、Azure Container Apps の機能を評価するために、Azure CLI で新しいコマンドを提供します。 このコマンドは、サービス インスタンスのリソース ID に基づいて、既存の Azure Spring Apps リソースの構成を取得します。 その後、これらの構成が Azure Container App リソースの Bicep ファイルに変換されます。 この方法を使用すると、既存の Azure Spring Apps リソースでこれらの設定と同様の基本設定を適用しながら、Azure Container Apps のマネージド環境とアプリ リソースをすばやく設定できます。 詳細については、「 az spring export」を参照してください。

既存の Azure Spring Apps リソースの構成に一致する Azure Container Apps リソースを作成するには、次の手順を使用します。

  1. az extension add --name spring コマンドを使用して、Azure CLI バージョン 2.45.0 以降と最新バージョンの Azure Spring Apps 拡張機能をインストールします。

  2. 次のコマンドを使用して、対応する Azure Container Apps リソースを作成する Bicep ファイルを生成します。

    az spring export \
        --resource-group <resource-group-name> \
        --target aca \
        --subscription <subscription-id> \
        --service <service-name> \
        --output-folder <output-folder-name> 
    
  3. 前のコマンドでは、詳細な手順を 含む README.md ファイルが生成されます。 これらの手順に従って、Bicep ファイル内の必要なパラメーターを更新します。

    Azure Container Apps には、コンテナー化されたイメージ URL が必要です。 アプリケーションのコンテナー化されたイメージ URL がまだない場合は、パラメーター内のクイック スタート イメージ URL をそのままにして、後で独自のアプリケーションをデプロイできます。 コンテナー イメージの取得の詳細については、「コンテナー化の概要」を参照してください。

  4. リソース グループが存在しない場合は、次のコマンドを使用して作成します。

    az group create \
        --name <resource-group-name> \
        --subscription <subscription-id> \
        --___location <___location> 
    
  5. 次のコマンドを使用して、Azure Container Apps リソースをリソース グループにデプロイします。

    コマンドを複数回実行し、応答メッセージに基づいて構成を調整することが必要になる場合があります。

    az deployment group create \
      --resource-group <resource-group-name> \
      --template-file main.bicep \
      --parameters param.bicepparam \
      --subscription <subscription-id>
    
  6. README.md ファイルの指示に従って、高度な機能のリソースを更新します。 これらの機能には、証明書のアップロード、カスタム ドメインの有効化、システム割り当てマネージド ID へのロールの割り当ての追加などがあります。

  7. これらのリソースの Terraform 構成が必要な場合は、Azure Terraform リソース プロバイダーのエクスポート ワークフローを使用してリソースをエクスポートします。 詳細については、「 Azure Terraform リソース プロバイダーの概要」を参照してください。

チュートリアル

Azure Container Apps で ACME Fitness Store アプリケーションを実行するエンド ツー エンドのエクスペリエンスを示すチュートリアルを用意しています。 詳細については、acme-fitness-store/azure-container-apps を参照してください。 このチュートリアルでは、実践的なガイダンスを示しているため、プラットフォーム上のコンテナー化されたアプリケーションのデプロイと管理に関する実用的な洞察と自信をすばやく得ることができます。