Freigeben über


Java Spring Framework アプリケーションを Windows Azure に移行する

このポストは、11 月 6 日に投稿された Migrating a Java Spring Framework Application to Windows Azure の翻訳です。

マイクロソフトは、Windows Azure の Java 関連テクノロジを多数ご紹介している、実践形式の新しいチュートリアル (英語 : 日本語版準備中) とサンプル コードを公開しました。このガイドでは、チュートリアル形式で Java Spring Framework アプリケーション (PetClinic サンプル アプリケーション) を Windows Azure クラウドに移行する方法を説明しています。このガイドで使用されているコードは、GitHub (英語) でも公開されています。Java 開発者の皆様は、ぜひこの新しいサンプルとチュートリアルをダウンロードしてお試しください。

詳細

Windows Azure はオープンなクラウド プラットフォームであり、Microsoft .NET、Java、Node.js、PHP、Python、Ruby などの広範なプログラミング言語やフレームワークをサポートしています。このガイドは、一般的な Java アプリケーションを Windows Azure クラウドに移行する方法を紹介しているもので、特に Java 開発者を対象としています。一般的な Spring Framework のサンプル アプリケーション (Java PetClinic) をチュートリアル形式で取り扱い、Windows Azure Java SDK for Eclipse、Memcached を使用する Windows Azure キャッシュ、Windows Azure クラウド サービス、Windows Azure SQL データベース、その他のさまざまな Java アプリケーションで使用される各種テクノロジについて説明しています。

Windows Azure クラウド サービス (PaaS) か、Windows Azure 仮想マシン (IaaS) か?

基本的に、Web サイトなどのアプリケーション層を Windows Azure で実行する方法は、2 つあります。1 つ目は、Windows Azure クラウド サービスでプラットフォームとしてのサービス (PaaS) を利用する方法で、2 つ目は、Windows Azure 仮想マシン (VM) でインフラストラクチャとしてのサービス (IaaS) を利用する方法です。どちらの場合も、世界各地に存在するデータセンター (米国に 4 か所、ヨーロッパに 2 か所、アジアに 2 か所) のいずれかでアプリケーションをホストできます。

  • Windows Azure クラウド サービスでは、開発者がアプリケーションに専念することができます。インスタンスのプロビジョニングと保守はプラットフォームが自動的に実行し (Windows Hyper-V 仮想マシンとして扱われます)、この上でアプリケーション層が実行されます。このインスタンスはスケール アウトが可能で、1 つのインスタンスから数百のクローンを作成できます。また、負荷分散処理は自動的に行われます。インスタンスのサイズは変更可能 (仮想のコア数とメモリ容量を指定可能) ですが、OS 層の修正プログラムやセキュリティ更新プログラムの適用などの管理は、基本的に Windows Azure が担当します。このガイドでは、サンプル アプリケーションの Java Pet Clinic を Windows Azure クラウド サービスで実行する場合を取り扱います。
  • Windows Azure 仮想マシンでは、開発者が自身の仮想マシン イメージを作成します。この仮想マシンについては、インストールされるソフトウェアのすべてを含むインストールと管理を開発者が担当します。Java 開発者の場合、Windows や一部の Linux ディストリビューションといったさまざまな事前構築済みの仮想マシン イメージを使用できます。これも、Windows Azure クラウドで Java アプリケーションを実行するうえで優れた方法です。開発者が OS と仮想マシンを低レベルで管理し、mySQL などのソフトウェアを任意の数の仮想マシンに直接インストールできるため、アプリケーション層からデータ層まで完全なアプリケーションを構築することが可能です。この場合、ほとんどの Java アプリケーションを一切コードを変更することなく、または多少のコード変更で簡単に移行できます。負荷分散もセットアップ可能で、複数の仮想マシン (たいていの場合 Tomcat/JSP 層を実行) に対し、ラウンドロビン方式で負荷分散できます。ただし、Windows Azure クラウド サービスとは異なり、社内で実行されている仮想マシンと同様に、開発者がセキュリティ修正プログラムの適用などを含む仮想マシンの管理を行う必要があります。この新しいチュートリアルでは、Java アプリケーションを Windows Azure クラウド サービスで実行する場合について取り扱っていますが、開発者の皆様には、Windows または Linux のいずれかの仮想マシンを使用した Windows Azure 仮想マシンもお試しいただくことをおすすめします。

Windows Azure プラットフォーム上の Spring Framework 

この新しいガイドでは、最近更新された PetClinic をサンプルとして採用しました。これは、Spring Framework のサンプルの中でも PetClinic が Spring Data JPA、MVC、AOP、JMX、EhCache、Logback などのスケーラブルな Java EE アプリケーションの作成に使用される企業向けテクノロジのデモを行ううえで皆様に馴染みがあるためです。ここでは、PetClinic を拡張して、一時的な障害処理を追加し、さらに Memcached を AOP 経由で Azure キャッシュに追加します。

Eclipse や STS に慣れている Java 開発者の方には、Windows Azure Toolkit for Eclipse with Java (英語) を提供しています。このツールキットには、Windows Azure で Eclipse を使用して Java の開発を行う場合に使用する次の支援リソースが含まれています。

  • Windows Azure Plugin for Eclipse with Java
  • Microsoft JDBC 4.0 Driver for SQL Server、Windows Azure SQL データベース
  • Apache Qpid Client Libraries for JMS のパッケージ
  • Windows Azure Libraries for Java のパッケージ
  • Windows Azure アクセス制御サービスのフィルター
  • Windows Azure の一般的なプラグイン

このガイドでは、Windows Azure Plugin for Eclipse with Java および Microsoft JDBC 4.0 Driver for SQL Server を使用します。Eclipse 用プラグインでは、Windows Azure サービスおよび Windows Azure のエミュレーター用の Java ラッパーが提供されます。

まとめ

オープンなクラウド プラットフォームである Windows Azure では、さまざまなプログラミング言語とフレームワークをサポートしています。この新しい Windows Azure における Java 関連のチュートリアル (英語 : 日本語版準備中) では、Windows Azure の Java 関連テクノロジが実践形式で多数紹介されています。Java 開発者の皆様はこのガイドをぜひご参照いただき、サンプル コードをお試ください。