ソリューションを比較する

完了

Java アプリケーションの最も一般的なデプロイの種類について説明しました。 必要なデプロイの種類に応じて、最適に動作できる Azure サービスを見てみましょう。

Azure コンテナ アプリ

Azure Container Apps を使用すると、インフラストラクチャを管理する必要がなく、モノリシックでもマイクロサービスでも、コンテナ化された Java アプリケーションの構築に集中できます。 JAR、WAR、さらにはソース コードをデプロイすることができ、プラットフォームは自動的にメモリを最適化し、需要に基づいてアプリケーションをスケーリングします。 また、JVM トラブルシューティングのための高度な診断機能も統合されており、Java アプリの効率的なパフォーマンスが確保されます。

また、Azure Container Apps では、Spring Cloud Service Registry や Spring Cloud Config Server などの管理された Spring コンポーネントがサポートされ、シームレスな Spring 統合が提供されます。 Azure エコシステムの一部として、コスト効率の高いスケーリングと高度なメモリ管理によってエンタープライズ ワークロードを処理できるため、従来のアプリケーション アーキテクチャと最新のアプリケーション アーキテクチャの両方に最適です。

Azure App Service

Azure App Service は、Azure によって提供されるサービスとしてのプラットフォーム (PaaS) ソリューションです。 自動 OS および Java 仮想マシン (JVM) の更新プログラムとパッチを使用して Java Web アプリケーションを実行したり、自動スケーリングや監視を行ったりするための使いやすいサービスを提供します。

App Service では任意の実行可能 JAR ファイルを実行できます。これにより、単純な Java モノリシック アプリケーションを実行するための Azure Container Apps の代わりに使用できます。

また、Apache Tomcat や Red Hat JBoss などの一般的なアプリケーション サーバーの上に WAR アプリケーションをデプロイすることもできます。 この機能により、Azure で Jakarta EE アプリケーションを実行するための最適なソリューションになります。

Azure Functions (アジュール ファンクションズ)

Azure Functions は、Azure によって提供されるサーバーレス プラットフォームであり、Java ワークロードの実行をサポートしています。

通常、Azure Functions で Java アプリケーションを実行するには、いくつかのマイナーな構成とセットアップが必要です。 サーバーレス関数の性質上、短命 (通常は数分) があるため、従来使用してきたサービスの一部は、Azure App Service ほど効率的で実用的ではない可能性があります。

その結果、Azure Functions は、大量のスケーラビリティを必要とするアプリケーションに合わせて調整されます。 これらを定期的に停止してコストを削減し、高負荷に対応するようにスケールアップすることができます。

Azure Kubernetes Service

Azure Kubernetes Service (AKS) は、Azure によって提供されるマネージドでセキュリティで保護された Kubernetes ソリューションです。 任意の Docker イメージを実行でき、Kubernetes エコシステム全体に属する利点があります。 Java を含む任意の言語でクラウドネイティブ アプリケーションを配信する場合は、AKS が適切に機能します。

Azure Kubernetes Service は、異種ワークロードがある場合や、環境を正確に制御する場合に最適なソリューションです。 AKS は Java ワークロードを適切に実行しますが、Docker イメージをビルドして維持する必要があります。

Azure 仮想マシン

Azure で VM を実行すると、最高の柔軟性とさまざまなオプションが提供されます。 複数のオペレーティング システム (通常は Windows とメインの Linux ディストリビューション) から選択できます。 独自のソフトウェアを持ち込んだり、提供されているイメージの一部を使用したりできます。

特に Java の場合、主に VM を使用して以下を行います。

  • Windows または Linux 上に Java Web アプリケーションを手動でインストールして実行します。
  • Docker または AKS をインストールして実行し、Java Web アプリケーションを含むイメージを実行します。
  • サポートされているオファー (Oracle WebLogic など) のいずれかを使用して、VM 上で Java Web アプリケーションを実行します。

Azure VM を使用する場合、それらを完全に制御できるため、インストールして実行できる内容に制限はありません。 ただし、VM の主な欠点は、VM を維持してセキュリティで保護する必要があるということです。 VM の場合、このメンテナンス作業はお客様の責任です。