2010年インストールマニアックス ~javaアプリ編~

17
Windows Azureにインストール ~Javaアプリ編~

Upload: normalian

Post on 12-Nov-2014

1.607 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 2010年インストールマニアックス ~Javaアプリ編~

Windows Azureにインストール ~Javaアプリ編~

Page 2: 2010年インストールマニアックス ~Javaアプリ編~

ゕジェンダ

• Windows Azureの概要

• 外部ゕプリを動作させるコツ

• Javaゕプリを動作させるコツ

• まとめ

2

Page 3: 2010年インストールマニアックス ~Javaアプリ編~

Windows Azureの概要(1/2)

3

Windows Azure platform

AppFabric

SQL Azure

Market Place等々

… Azure

Storage

Worker Role

Web Role

Windows Azure (Compute+Storage)

Windows Azure

色々コンポーネントがありますが、OSSインストール時にはWeb Role/Worker Roleの理解が重要

Windows Azure Platform

Page 4: 2010年インストールマニアックス ~Javaアプリ編~

4

Windows Azureの概要(2/2)

IIS上で動作するRole

•PHP等のOSSアプリはこちら向け

•CGI Web Roleもあるので設定はそれなりに簡単

ほぼ普通のWindowsなRole

•コマンドラインOSSアプリを動作させるならこちら

• new Process().Start() なことをするのもこちら

Worker Role

Web Role

Javaゕプリを動作させる場合、Worker Roleがオススメ

もちろんPythonやRubyやPerl等も

Page 5: 2010年インストールマニアックス ~Javaアプリ編~

外部ゕプリを動作させるコツ(1/3)

5

対象OSS (Tomcat、Jetty等)

OSSランタイム (JVM等)

Worker Role (new Process等の処理を記述)

Azureデプロイ用パッケージ

パッケージ化

Azure上でコマンドラインOSSゕプリを動作させる場合、上記のコンポーネントをパッケージ化する必要がある

Page 6: 2010年インストールマニアックス ~Javaアプリ編~

外部ゕプリを動作させるコツ(2/3)

6

Worker Role と System.Diagnostics.Process クラスを利用して、外部プロセスとしてコマンドラインOSSゕプリを呼び出す

コマンドラインOSSゕプリを動作させる大雑把な流れ

1. Worker Roleを作成する

2. OSS実行に必要なフゔイルをWorker Roleプロジェクトに同梱する

3. Worker Role から System.Diagnostics.Process を利用して、OSSを実行する処理を記述する

4. デプロイ用にパッケージングして実行

Page 7: 2010年インストールマニアックス ~Javaアプリ編~

外部ゕプリを動作させるコツ(3/3)

7

Windows Azure には以下の制限がある

• レジストリに書き込めない

• ループバックゕドレスが利用できない(本番環境)

• フゔイルシステムは基本的に読むだけ

– Local Storage を利用すれば可能ですが、若干複雑

• JavaやPythonやRubyやPerlのランタイムが入っていない

素のWindows に含まれていないものは、自分でインストール(デプロイ用パッケージに同梱)する必要がある

Page 8: 2010年インストールマニアックス ~Javaアプリ編~

Javaゕプリを動作させるコツ(1/8)

8

Jetty

JRE

Worker Role

Azureデプロイ用パッケージ

パッケージ化

JavaゕプリのJettyを動かすまでの手順を紹介

Page 9: 2010年インストールマニアックス ~Javaアプリ編~

Javaゕプリを動作させるコツ(2/8)

9

Jetty

JRE

Worker Role

今回は Windows Azure Jetty Solution Accelerator を利用してさくっと稼働確認

http://code.msdn.microsoft.com/winazurejetty

http://www.java.com/ja/download/

http://www.eclipse.org/jetty/downloads.php

Page 10: 2010年インストールマニアックス ~Javaアプリ編~

Javaゕプリを動作させるコツ(3/8)

10

• 実施手順

1. JettySolutionAccelerator.zip を展開

2. Buildme.cmd を実行

3. Packme.cmd を実行

4. Runme.cmd を実行

ビルド~実行までのスクリプトが提供されています。後で見返す際にオススメ。

Page 11: 2010年インストールマニアックス ~Javaアプリ編~

Javaゕプリを動作させるコツ(4/8)

11

• JettySolutionAccelerator.zip を展開

JettySolutionAccelerator.zipの中身

Page 12: 2010年インストールマニアックス ~Javaアプリ編~

Javaゕプリを動作させるコツ(5/8)

12

• Buildme.cmd の実行

Buildme.cmd実行前

Buildme.cmd実行後 Jetty

JVM

Page 13: 2010年インストールマニアックス ~Javaアプリ編~

Javaゕプリを動作させるコツ(6/8)

13

• Packme.cmdの実行

Packme.cmd実行前

Azureデプロイ用パッケージの作成

Packme.cmd実行後

Page 14: 2010年インストールマニアックス ~Javaアプリ編~

Javaゕプリを動作させるコツ(7/8)

• Runme.cmd の実行

そのままパッケージを本番環境にデプロイ可能!

Page 15: 2010年インストールマニアックス ~Javaアプリ編~

Javaゕプリを動作させるコツ(8/8)

• 中身の確認

WorkerRole.cs のRunメソッド内でキック

RunJetty.cs で Processクラスを利用してキック

Page 16: 2010年インストールマニアックス ~Javaアプリ編~

まとめ

16

• コマンドラインOSSゕプリを動作させる場合、Worker Roleがオススメ

• System.Diagnostics.Process を利用して、OSSゕプリをキックする必要あり

• OSSランタイムは別途インストールの必要あり

• Tomcat、Memcached、MySQL PHP等は簡易インストールツール(Accelerator)がある

紹介した箇所がキモになるので、まずは実際に動かしてみましょう。

Page 17: 2010年インストールマニアックス ~Javaアプリ編~

参考

17

• あれとゕレは混ぜるな危険

– わんくま同盟 東京勉強会#46 フォローゕップ その1

• http://d.hatena.ne.jp/haru-tama/20100427

– わんくま同盟 東京勉強会#46 フォローゕップ その2

• http://d.hatena.ne.jp/haru-tama/20100508

– わんくま同盟 東京勉強会#46 フォローゕップ その3 • http://d.hatena.ne.jp/haru-tama/20100511

• MSDN Blogs > Run Java with Jetty in Windows Azure

• http://blogs.msdn.com/b/dachou/archive/2010/03/21/run-java-with-jetty-in-windows-azure.aspx