JAVA

AzureでJavaアプリをデプロイする全サービス比較と手順ガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Azure に Java アプリをデプロイする全体像と選定基準

Java アプリケーションを Azure に置く際に最初に行うべきは、「どのホスティング形態が自分の要件に最も合致しているか」 を見極めることです。本章では、代表的な 4 種類(App Service、Virtual Machines、Web App for Containers、Azure Kubernetes Service)を機能・運用負荷だけでなく コスト・SLA の観点から比較し、選択の指針を示します。

ポイント:PaaS が最も手軽ですが、スケール要件やレガシー依存が強い場合はコンテナ化/フル K8s へ段階的に移行するのが一般的です。


1. サービス比較表(機能・運用負荷・コスト・SLA)

サービス 主な提供形態 運用負荷* 推奨シナリオ 月額目安 (Standard/T2)※ SLA
App Service(Linux / Windows) PaaS の Web アプリホスティング 低 – OS・ミドルウェアは Azure が管理 小〜中規模の REST API、Spring Boot 単体起動 約 ¥2,500/月 (B1) 〜 ¥15,000/月 (Standard S2) 99.95%(単一インスタンス)
Virtual Machines IaaS の仮想サーバー 高 – OS パッチ、ランタイム、セキュリティは自前 レガシーアプリの lift‑and‑shift、OS 固有要件がある場合 約 ¥4,000/月(B2s)〜 ¥30,000/月(Dsv3 系列) 99.9%(単一 VM)
Web App for Containers コンテナ単位の PaaS (Docker) 中 – イメージ管理のみ必要 Docker 化した Spring Cloud、Micronaut 等 同左 App Service の料金体系で利用可 99.95%(App Service と同一)
Azure Kubernetes Service (AKS) フルマネージド K8s クラスタ 中〜高 – クラスタ運用は Azure が支援、ただしワーカーノードは自前管理 マイクロサービス・頻繁なスケールアウトが必要な大規模システム 管理プレーンは無料。ノードは VM と同等料金(例: D2s_v3 で約 ¥12,000/月) 99.95%(マネージドコントロールプレーン)

* 運用負荷 は「日常的に必要になる管理作業の多さ」の目安です。
※ 料金は 2026 年 4 月時点で日本リージョン (East Japan) の参考値です。実際の請求額は選択した SKU、使用量、割引(予約インスタンス等)に依存します。


2. 選定フロー(冗長表現を排除)

  1. 既存環境の要件 → OS / ミドルウェアが固定か?
  2. 固定なら VM、柔軟であれば次へ。
  3. 開発スピードと運用コスト → 速くデプロイしたいか?
  4. 「コードだけをプッシュ」できる App Service (Linux) が最適。
  5. コンテナ化の有無 → Docker イメージで管理したいか?
  6. はい → Web App for Containers(PaaS)または AKS(本格的なオーケストレーション)。
  7. スケール要件 → 数十〜数百コンテナの同時稼働が必要か?
  8. 大規模なら AKS、中小規模であれば Web App for Containers がシンプル。

この 4 段階を順に確認すれば、冗長な比較表や「PaaS→コンテナ化→フル K8s」の記述に悩むことはなくなります。


デプロイ前の事前準備

本章では Azure CLI・Java 開発環境・Eclipse Toolkit の 最新版取得方法 とインストール手順を示します。全てのコマンドは Bash/PowerShell どちらでも実行可能です。

2‑1. Azure CLI(常に最新バージョン)

最新版確認az version --output jsonazure-cli のバージョンが表示されます。定期的に (az upgrade) 実行して更新してください。

2‑2. Java SDK・Maven(または Gradle)

ツール 推奨取得手段 最新版確認コマンド
JDK (OpenJDK) sdkman または OS パッケージマネージャ java -version
Maven sdkman install maven、または公式バイナリの tar.gz を展開 mvn -v
Gradle sdkman install gradle(必要に応じ) gradle -v

Ubuntu でのインストール例(OpenJDK 17 + Maven)

2‑3. Eclipse Azure Toolkit for Java

  1. Eclipse Marketplace → 「Azure Toolkit for Java」検索
  2. Install → 必要な依存関係を確認し、再起動後に Azure Explorer ビューが表示されれば完了。
  3. バージョンは Help → About Eclipse から「Installed Software」で確認し、Marketplace の「Updates」タブで随時更新してください。

Maven プラグインで Azure App Service にデプロイ(Linux / Windows 共通)

公式プラグイン azure-webapp-maven-pluginpom.xml に数行追記するだけでデプロイが完了します。以下では最新バージョン取得方法と、Windows 用 startupCommand の具体例を示します。

3‑1. プラグインの最新版取得

3‑2. pom.xml への設定例(Linux)

3‑3. Windows 用 startupCommand の書き方と公式ドキュメント

Windows App Service は IIS がデフォルトハンドラになる ため、app.jar だけでは自動起動されません。startupCommand に明示的に Java 起動コマンドを指定する必要があります。

  • ポイント
  • app.jar の名前は必ず「app.jar」に統一してください(Azure が自動で検出)。
  • 環境変数を使う場合は setx JAVA_OPTS "…" 等で事前に設定し、startupCommand はシンプルに保ちます。

  • 公式ドキュメント:https://learn.microsoft.com/ja-jp/azure/app-service/configure-custom-container-startup-command#windows
    (「Configure custom startup command for Windows」ページ)

3‑4. デプロイ実行

成功すると、以下のようなメッセージが表示されます。


コンテナ化とフルマネージド K8s の活用

4‑1. Docker イメージの作成と ACR へのプッシュ

手順(最新 CLI を利用)

4‑2. Web App for Containers にデプロイ(Startup Command 不要)

備考DockerfileENTRYPOINT がそのままコンテナ起動コマンドになるため、App Service の「Startup Command」設定は空のままで問題ありません。

4‑3. AKS クラスタ作成とデプロイ(最新版取得)

デプロイマニフェスト例

SLA 補足:AKS のコントロールプレーンは 99.95% の SLA が適用され、ノードは使用する VM と同等です。


Virtual Machine に手動デプロイ(レガシー向け)

手順 コマンド例
VM 作成(Ubuntu LTS) az vm create -g java-demo-rg -n java-vm --image UbuntuLTS --admin-username azureuser --generate-ssh-keys
SSH 接続 ssh azureuser@<public-ip>
ランタイム構築 sudo apt-get install -y openjdk-17-jdk maven git
アプリ配置 & Systemd サービス化 参考スクリプトは下表参照

コスト比較:VM は常時稼働が前提になるため、スケールダウンの自動化(Azure Automation、Scheduled VM)を組み込むと費用削減につながります。


デプロイ後の確認・トラブルシューティング

5‑1. エンドポイント検証とログ取得

方法 コマンド
ブラウザで直接確認 https://<app-name>.azurewebsites.net
CLI でリアルタイムログ取得(App Service) az webapp log tail -g java-demo-rg -n java-demo-appsvc
AKS の Pod ログ取得 kubectl logs -f deployment/java-demo

5‑2. Application Insights 有効化手順

  1. ポータル → App ServiceApplication Insights → 「オン」に切替
  2. az monitor app-insights component create -a java-demo-ai -g java-demo-rg --location japaneast(CLI)で自動作成も可能

効果:リクエストレイテンシ、例外率、依存関係呼び出しを 1 分単位で可視化でき、障害原因の特定が容易になります。

5‑3. よくあるエラーと対策

エラーメッセージ 想定原因 確認ポイント 推奨解決策
502 Bad Gateway (App Service) startupCommand が未設定、または JAR 名が不一致 Log Stream に「No such file」エラー app.jar にリネームし、Windows なら startupCommand を追加
Container failed to start (AKS) Docker イメージのレイヤー破損、環境変数未設定 kubectl describe pod <pod> の Events イメージを再ビルドし、正しいタグでプッシュ
VM 起動後にポート 8080 が開かない ファイアウォール(NSG)でブロック Azure ポータルの ネットワーク インターフェイス受信規則 NSG に Allow TCP 8080 を追加

まとめと次のステップ

  • 選定は「OS 要件 → 開発速度 → コンテナ化 → スケール」順に評価し、コスト・SLA も必ず比較ポイントに入れましょう。
  • 事前準備では Azure CLI と開発ツールの 最新版 を取得し、定期的なアップデートを自動化しておくとトラブル防止になります。
  • App Service の Windows 起動コマンドは公式ドキュメントリンク付きで必ず記述し、app.jar 名との整合性を保つことが成功の鍵です。
  • コンテナ化・AKSは CI/CD パイプライン(GitHub Actions / Azure DevOps)と組み合わせることで本格運用が可能になります。

次に取り組むべきは、実際にサンプルアプリを作成し、App Service (Linux) にデプロイ → ログ・Insights で動作確認 → 必要に応じて Windows 用 startupCommand を追加というフローです。これができれば、以降のコンテナ化や AKS 移行もスムーズに進められます。


参考リンク集

内容 URL
Azure Java デプロイ選択ガイド https://learn.microsoft.com/ja-jp/azure/developer/java/get-started/choose
App Service(Windows) Startup Command 公式ドキュメント https://learn.microsoft.com/ja-jp/azure/app-service/configure-custom-container-startup-command#windows
Azure CLI バージョン確認・アップグレード https://learn.microsoft.com/cli/azure/install-azure-cli?view=azure-cli-latest
Maven Plugin 最新版取得例(JSONPath) https://search.maven.org/
Eclipse Azure Toolkit for Java (Marketplace) https://marketplace.eclipse.org/content/azure-toolkit-java
AKS バージョン取得スクリプト https://learn.microsoft.com/ja-jp/cli/azure/aks?view=azure-cli-latest#az_aks_get_versions

以上が、指摘事項をすべて反映した改訂版です。文字数・構成・表記揺れの改善に加え、最新版取得手順とコスト/SLA の比較情報を新たに掲載しました。ぜひこのガイドラインに沿って Azure 上で Java アプリケーションを安全かつ効率的にデプロイしてください。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-JAVA