Microsoft AzureにGeneXusのプロジェクトをデプロイするまで

Microsoft AzureにGeneXusのプロジェクトをデプロイするまで

あっという間に12月ですね。okitaです。

さてさて現在、私東京にいます。
まぁ仕事で来てますが、なぜか「Microsoft Azure(以下Azure)」を契約(まだ試用期間)しちゃったので
どうせだから以前失敗したGeneXusのデプロイをしようと思います。

結果から言うと結構大変www


■情報源
まずは情報源としてwikiです。wikiに書いてあるから簡単!って思ったら間違いです(# ゚Д゚)
・日本語wiki
http://wiki.genexus.jp/hwiki.aspx?Azure+%E3%81%B8%E3%81%AE%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4,

・英語wiki
http://wiki.genexus.com/commwiki/servlet/wiki?Deployment+Azure,

次に必要なものなんですがちょっと多いです。
・GeneXus X Ev3 u3
Ev2でもいいですがその場合はAzure SDKのバージョンに注意

・Deploy to Windows Azure
これはGeneXusのMarketplaceでダウンロードできます

・Visual Studio 2013 Community
証明書作るときに使用します。
https://www.microsoft.com/ja-jp/dev/products/community.aspx

・Windows Azure SDK for .NET – 2.3
GeneXusのバージョンによって違うっぽい!最新版だとダメでしたw

・Azureのアカウント
Azure使うのに必要です。1ヶ月は無料で使用できるっぽいです


■GeneXusのインストール
こちらは省略させていただきます。
この部分がわからない人はもう少しGeneXusを極めてから
またこのページに来てください。
001
http://www.genexus.com/japan/genexus-japan?ja


■Azureアカウントの作成
こちらも省略です。
ポチポチクリックして必要な情報を埋めてあげましょう。
ちなみにクレジットカードの情報を登録する必要がありました。
002
https://azure.microsoft.com/ja-jp/


■適当なナレッジベースの作成
GeneXusを起動して適当なナレッジベースを作成しましょう。
KB名:AzureTest001
003
言語はC#です。

動作確認のために簡単なWebPanelを作成しましょう。
004
Main program Trueに設定しました。
作成したら一度ビルドしましょう。

005
ボタンのイベントではメッセージを出力するようにしました。

ここからはほぼ英語wikiと同じです。説明が日本語で長くなってるだけです。


■Deploy to Windows Azure の ダウンロードとインストール
006
http://marketplace.genexus.com/product.aspx?deploytowindowsazure,en
上記ページでダウンロードしましょう(アカウント必須)

インストールですがGeneXusが起動している場合は1度GeneXusを終了し、
GeneXusがインストールされているフォルダ内のPackagesフォルダに
ダウンロードしてきたファイルをコピーしましょう。
007

本当はエクステンションマネージャーを使ってもいいのですが
日本語ファイルやAzureのTemplateファイルがコピーされないので手動で・・・(´・ω・`)
コピーができたらGeneXusのインストールコマンドをたたきましょう。

インストールされているか確認。
メニューが出ていれば成功にしましょう。
008


■Windows Azure デプロイメント その1
GeneXusから
ツール ⇒ アプリケーションをデプロイ ⇒ Windows Azureにデプロイ
を選択して「Windows Azure デプロイメント」ウィンドウを表示します。

009
名前:デフォルトでナレッジ名です。 今回もそのままで。
バージョン:バージョンです。 そのままで。
パス:.opc ファイルを保存するパス そのままで。

opcファイルはデプロイに必要な情報を格納しているファイルだと思っていいです。
本当はもっと情報をつけたかったのですが
調べてもあんまりわかりやすい情報が無かったです(;^ω^)


■Windows Azure デプロイメント その2.1
ここからAzureとGeneXusをいったりきたりするので気を付けましょう。

010
アカウント:ストレージのアカウント名を設定します。
キー:ストレージの「プライマリ アクセス キー」 または 「セカンダリ アクセス キー」 を設定します。
コンテナ:ストレージのコンテナを設定します。

Azureのストレージに詳しい人はわかると思いますが
ド素人の私はチンプンカンプンでしたw
とりあえずAzureにはストレージってのがあり、名前の通り一応ストレージです。
デプロイするシステムが乗っかるところだと思えばいいと思います(たぶん)

初めてなのでストレージは無いはずなので
次↓でストレージの作成とコンテナの作成をしましょう。


■Azure ストレージ、コンテナの作成
ストレージとコンテナの作成ですが
まずはAzureにログインします。
011
画面左下の新規をクリック。

012
簡易作成をクリック。
URL:小文字のアルファベットと数字のみ使用可能です
場所:まぁ日本かなw
レプリケーション:とりあえずデフォルトで

レプリケーションについて詳しく知りたい人は以下を参照してください。
レプリケーション 【 replication 】 リプリケーション / 複製 / レプリケート
http://e-words.jp/w/%E3%83%AC%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3.html

一覧で状況ステータスがオンラインになればOKです。
これでストレージの作成は完了。

次にコンテナを作成しましょう。
作成したストレージをクリックしてストレージの詳細画面に遷移。

013
コンテナのタブからコンテナ情報を表示。
ストレージを作成したばかりの場合は
コンテナが無いのでおそらく画像と同じ画面になっていると思います。

014
コンテナを作成します。
名前を入力して、アクセスを選択。
今回はデフォルトの「プライベート」で行きましょう。

さて前の手順で必要になった情報を確認しましょう。

①アカウント:ストレージのアカウント名を設定します。
②キー:ストレージの「プライマリ アクセス キー」 または 「セカンダリ アクセス キー」 を設定します。
③コンテナ:ストレージのコンテナを設定します。

上記の3つでした。

015
作成したストレージのダッシュボードを表示して
画面下部のアクセスキーの管理をクリック。

016
ダイアログが出たら
「アカウント名」、「プライマリ アクセス キー」をコピペしておきましょう。
これで①②を取得しました。
③に関してはコンテナの名前なので作成したコンテナの名前でOKです。


■Windows Azure デプロイメント その2.2
017
前の手順で取得した3つの情報を設定しましょう。
①アカウント:ストレージのアカウント名を設定します。
②キー:ストレージの「プライマリ アクセス キー」 または 「セカンダリ アクセス キー」 を設定します。
③コンテナ:ストレージのコンテナを設定します。
そして次へボタンを押しましょう。


■Windows Azure デプロイメント その3.1
018
サブスクリプション:サブスクリプションを設定。
証明書:証明書を設定
サービス名:Azureのクラウドサービス名を設定。
ラベル:クラウドサービスの識別子(適当に指定)

サブスクリプションはストレージ画面から確認しましょう。
019
作成したストレージのダッシュボードの画面をスクロールして画面下部に
サブスクリプションIDがあるのでそこをコピペ。

証明書は作成する必要があるので次↓で作成しましょう。


■証明書の作成
証明書の作成にはVS2013の「開発者コマンドプロンプト」が必要になります。

020
以下のページを参考に「開発者コマンドプロンプト」を起動。
http://qiita.com/tsubakimoto_s/items/d12f8368cf82464f4c0c

証明書の発行には「makecert」というコマンドを使用しますが
オプションがいろいろあるっぽいです。

・英語GeneXus wiki 証明書の作成方法
http://wiki.genexus.com/commwiki/servlet/wiki?Windows+Azure+-+Certificate,
上記ページのコマンドを参考に以下のコマンドを実行

ちょっと長いですね^^;
makecertコマンドのオプションは以下のページを参考にしました。
http://www.avnet.co.jp/maker/McAfee/technical/updaters03.aspx
https://msdn.microsoft.com/ja-jp/library/bfsktky3(VS.80).aspx

気を付けてほしいポイントは2つです。

-n “CN=MyAzureTest” ⇒ ここでルート証明の名称を設定しています。
“C:\Temp\Certificate\test_cert.cer” ⇒ 証明書の出力先です。

021
これで証明書の発行が完了しました。


■証明書のアップロード
022
Azureの設定から管理証明書のタブを開き
画面下部のアップロードからアップロードしましょう。

023
先ほど作成した証明書を選択。

024
ちょっと時間かかりますね。
画像のようになればOKです。


■Azureクラウドサービスの作成
続いてAzureのクラウドサービスを作成しましょう。

025
クラウドサービス画面下部の新規をクリック

026
簡易作成をクリックしてURLと地域を設定しましょう。
URLは最終的にアクセスする時のURLになるので
考えてURLにしましょう。
地域はやっぱり日本?w


■Windows Azure デプロイメント その3.2
027
証明書とクラウドサービスの作成が完了したら
上記の画像のように設定しましょう。


■Windows Azure デプロイメント その4
028
デプロイメント名:適当に設定
デプロイメントスロット:デフォルトのままで
インスタンス数:デフォルトのままで
仮想マシンのサイズ:デフォルトのままで
このへんの設定はAzureについてググって下さいm(__)m
次へボタンをクリックしましょう。


■Windows Azure デプロイメント その5
029
これまで設定した内容の確認します。
設定内容を確認したら
完了ボタンを押してデプロイをしましょう。

030
ここでSDKが無いというエラーが表示されると思います。
SDKがインストールされていないためです。
次↓でAzure SDK をインストールしましょう。


■Azure SDK のインストール
最新版のSDKをインストールしてデプロイしようとしたらエラーが出ましたw
ちなみにGeneXusのバージョンによってSDKのバージョンも違うようなので注意してください。
今回はEv3を想定しているのでSDKのバージョンは2.3を使用します。

031
まずはSDKのダウンロード
https://www.microsoft.com/ja-jp/download/details.aspx?id=42317
上記ページにアクセスをしてダウンロードボタンをクリック。
するといくつかのプロダクトを選択する画面が出てきます。

032
今回必要なのは以下の2つです。
・WindowsAzureAuthoringTools
・WindowsAzureLibsForNet
※WindowsAzureLibsForNetは必要ないと思いますが一応入れておきましょう!

033
034

自分の環境のビット数に応じたものをダウンロードしてインストールしましょう。
インストールが完了したらOKです。
GeneXusに戻り
ツール ⇒ アプリケーションをデプロイ ⇒ Windows Azureにデプロイ
を選択しましょう。
設定が残っている場合は次へボタン連打でデプロイまで進めましょう。
設定が無かった場合は、きちんと設定しデプロイしましょう。


■Windows Azure デプロイメント その6
035
長いです。結構長いです。いろいろやってるっぽいです。
途中でフレームワークのバージョンでいろいろ言われました・・・今回は観なかったことにしましょうw


■動作確認
036
GeneXusからのデプロイが無事完了したら
Azureからサービス部分を確認してデプロイ中の場合は待ちましょう。

037
画像のように実行中になったら右のURLからアクセスしてみましょう。

038
・・・・・あれ?
ごめんなさい。開始オブジェクトを設定してなかったので直アドでのアクセスがうまくいかないっすねw
WebPanelの名前を入れてアクセスしましょう。


039
http://itcowork-azure-test001.cloudapp.net/Main.aspx
動いた\(^o^)/
デプロイするだけでどんだけ大変なんだw
上記URLはある程度の時間は存在すると思いますが
予告なく消える場合があるのでご了承ください。

ここまで読んでもらって本当にありがとうございます。
結構長くなってしまって本当に途中で心折れるかと思いましたw
どんな形で活用できるのか
まだまだわかりませんがいろんなことができるのは嬉しいですね!

ちなみに設定値は全て違う値にしました。
どこで何を設定したかわかるようにしただけなので
ある程度同じ感じの設定値でもいいと思いますw

当ページの情報は、Azureのプロフェッショナルが書いたものでは無いので
間違った設定やチューニングを行っている部分もあるかと思います。
なので当ページに記載されている情報で生じた障害・損害・不具合等に関しては、
一切の責任を負いません。全て自己責任で宜しくお願いいたします。

以上です


ちなみに・・・
Azureのストレージとコンテナを調べるにあたってこんなツールがあることを知りました。

Azure Storage Explorer
https://azurestorageexplorer.codeplex.com/

使い方は以下を見てください。
http://zuvuyalink.net/nrjlog/archives/1649