iDempiere(アイデンピエレ)のインストール Google Cloud Platform
ここでは、Googleが提供しているクラウドサービス、Google Cloud PlatformのGoogle Compute Engineを使用して、iDempiereを動かす方法を調査及び研究し、その成果をまとめています。
既に多くの方がお持ちだと思いますが、Google Cloud PlatformのGoogle Compute Engineを使用するためには、Googleのアカウントが必要です。
Google Cloud Platformでは、Google Developers Consoleと呼ばれる所で色々と設定を行っていきますので、Google Developers Consoleにアクセスします。
https://console.developers.google.com/
2015年1月現在、Google Developers Consoleにアクセスすると画面右上に"無料試用に登録"ボタンがありますので、ここでは無料試用登録しておきましょう!!
無料試用登録の場合でも、クレジットカードの入力は必要になります。
まずは、はじめに"プロジェクト(※Googleの説目によるとプロジェクトとはリソースをグループ化するために使用するそうです…)"を作成します。
ここでは、プロジェクト名に"iDempiere"と入力し、"作成"ボタンを押します。
少し待つと、プロジェクトが作成されます。
プロジェクトを作成したら、作成したプロジェクトをクリックして下さい。
プロジェクトの固有の設定を行う画面に遷移します。
プロジェクトを作成したら、サイドメニューの"APIと認証" -> "API"で"Google Compute Engine"を有効にします。
【補足説明】請求先アカウント情報の入力
ここまでの説明は無料試用を前提にしていますので、既に請求先のアカウント情報(クレジットカードの情報)を入力していますが、この段階で請求先のアカウント情報を入力していない場合は、ここから先のGoogle Compute Engineを使用する事はできないようです。Google Compute Engineを使用する場合は、この段階で請求先アカウントの設定を行う必要があります。
これまでは事前準備で、ここからがGoogle Compute Engine開始です。まずは、"VMインスタンス"を作成して行きます。
サイドメニューの計算処理 -> Compute Engine -> VMインスタンス をクリックします。
左のようなポップアップウィンドウが表示されますので、"Create instance"ボタンを押します。
今回は、無料枠でのお試しということで、つぎのようしています。ここは、参考程度として、適切な値を設定するようにして下さい。
【名前】
idempiere
【HTTPトラフィックを許可する】
ON
【HTTPSトラフィックを許可する】
ON
【場所とリソース - ゾーン】
asia-east1-b
【場所とリソース - マシンタイプ】
n1-standard-2(vCPU2個,メモリ7.5GB)
【ブートディスク - ブートソース】
イメージからディスクを新規作成
【ブートディスク - イメージ】
ubuntu-1401-trusty-v20141212
【ブードディスク -ディスクの種類】
標準の永続ディスク
【ブードディスク - インスタンスを削除する際にブードディスクを削除する】
ON
【ネットワーキング - 外部IP】
エフェメラル
"作成"ボタンを押すとインスタンスが作成されます。作成には少し時間がかかります。
無事インスタンスが作成されると上記のような画面になります。
既にインスタンスが起動されている状態です。
インスタンスの一覧の右端には"SSH"というボタンがあり、押すとブラウザ上でインスタンスが操作できるコンソールが起動します。
環境に応じて、適切なSDKをダウンロードして下さい。ここから先はWindow環境を前提に記載します。
"DownLoad the Google Cloud SDK installer for windows"のボタンをクリックし、インスト―ラーをダウンロードし、起動したらあとは
セットアップウィザードの指示に従うだけです。
Paythonがインストールされていない旨のメッセージが表示されたら、"はい"を選択すると、Google Clud SDKのセットアップが開始されます。
セットアップ中…
これでセットアップ完了です。
Google cloud SDKのShellをセットアップして、インスタンスにアクセスできるようにします。
Google Cloud SKD Shellを起動し、次のようにコマンドを実行します。
>gcloud auth login
そうすると、ブラウザ(たいていはChromeだと思いますが…)が起動し、Google Cloud SDKより色々な許可が求めれます。
求めに応じて、承認します。
そうするとShell上に、プロジェクトの設定を促すコメントが表示されますので、次にプロジェクトの設定を行います。
>gcloud config set project プロジェクトID
次に、SSHでインスタンスにつなげます。
>gcloud compute ssh インスタンス名 --zone インスタンスがあるゾーン
SSHで接続するコマンドは、Google Developers Console上でも確認する事ができます。
インスタンスの一覧でSSHボタンの横のボタンを押して表示されるメニューで"gcloudコマンドを表示"を選択すると、SSHで接続するためのコマンドが表示されます。
ここまでの手順で、Google Cloud SDKのShellを使って簡単にインスタンスにSSH接続できる旨の情報はネット上で数多く見ることができたのですが、私は接続する事ができず、はまってしまったので、Google Cloud SDK の Shell で SSH 接続できない場合の対応をメモしておきます。
エラー内容の確認
Google Cloud SDK の Shell で SSH 接続しようとすると鍵のやり取りの際に、インスタンスに接続できない旨の表示がされます。
Google Colud SDK Shell で SHH 接続できないエラー表示画像。
テキストにすると以下のような内容です。
Server refused our key
FATAL ERROR: Disconnected: No Supported authentication methods available (server sent: publickey)
FATAL ERROR: Network error: Software caused connection abort
FATAL ERROR: Network error: Connection timed out
ERROR: (gcloud.compute.ssh) Could not SSH to the instance. It is possible that SSH key has not propagated to the instance yet. try running this command again. if you still cannot connect, verify that the firewall and instance are set to accept ssh traffic.
鍵ファイルの確認と修正
インスタンスに鍵を受け取ってもらえませんでしたが、鍵のファイルはWindowsの場合は、ユーザーの".ssh"フォルダ内に作成されています。
ここで公開キーファイルである"google_compute_engine.pubを開いてみます。
(修正前)
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjnzVDx5/ghmO5dYJC+P0aSzWvQHjMRQE8eYvimQ+h5dy
rFWBB9KFyIu/L4rCo601jBBEQqsuQwrFwtzkt2CDmjrChuajQxX2cM17w5j4Iz0iu+GKfLXihZIUrl
pah3q9wUqY6/sWbyz0IKUf7yIoID+3SNP1EZqPSO9s1HrPmJo5TktTmfUbr0xAQOgQeRYjuF0y
SM9MgQ4FPUDj2LFwG4mbMM/M7xzn0XLUrNePDKjCeFTleUCWPyscPF8VxRM53jpF4yYFG7Sk
6qw/7MCGAPe/SdSqineJC7p3p1PNkLnEXxP7BrzLNS9hcEtV9QYqocFAkbhgIE0dndZrZKnT0w
== Hideaki Hagiwara@OSS-ERP-SOL
ここで、なんとなくエラーの原因がわかった気がしました(あくまで気ですが…)。公開キーの最後の == 以降に表示されているのがユーザー名になるのですが、ユーザー名の間に"空欄(Blank)"があるため、正しくないフォーマットと判断されてエラーになったのではないかと思います。これを次のように修正します。
(修正後)
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjnzVDx5/ghmO5dYJC+P0aSzWvQHjMRQE8eYvimQ+h5dy
rFWBB9KFyIu/L4rCo601jBBEQqsuQwrFwtzkt2CDmjrChuajQxX2cM17w5j4Iz0iu+GKfLXihZIUrl
pah3q9wUqY6/sWbyz0IKUf7yIoID+3SNP1EZqPSO9s1HrPmJo5TktTmfUbr0xAQOgQeRYjuF0y
SM9MgQ4FPUDj2LFwG4mbMM/M7xzn0XLUrNePDKjCeFTleUCWPyscPF8VxRM53jpF4yYFG7Sk
6qw/7MCGAPe/SdSqineJC7p3p1PNkLnEXxP7BrzLNS9hcEtV9QYqocFAkbhgIE0dndZrZKnT0w
== hagiwara
== 以降はユーザー名になるので、好きなユーザー名にします。ここに設定したユーザー名がOSに登録されていなくても、この後Google Developers Consoleで鍵を追加する際に、OSにユーザーも追加してくれるようです。
それでは、修正した公開キーをGoogle Developers Consoleでインスタンスに追加します。
SSHキーの設定に修正した公開キーをコピペして保存して下さい。
この保存処理の際に、公開キーに設定したユーザーがOSに登録されていなければ登録してくれます。
PuTTYでSSH接続
ここまでの処理で公開キーはインスタンスに設定したので、秘密キーをPuTTYに設定すればSSHでインスタンスに接続する事ができます。
PuTTYを起動し、接続するIPアドレスとポートを設定して下さい。
次に、接続 -> SSH -> 認証 で秘密キーの設定を行います。
認証のためのプライベートキーファイルに、Google Cloud SDK Shellが作ってくれて秘密キー(Google_compute_engine.ppk)を設定します。
開くボタンを押すとコンソールが開きます。
ユーザー名と、鍵を作った時のパスフレーズを入力すると、インスタンスにログインする事ができます。
Google Cloud SDK Shellでログインできなかった時は、しばらく途方にくれていましたが、iDempiereをインストールする際には、WinSCPなどGoogle Cloud SDK Shell以外でインスタンスに接続する必要がありますので、ここでその方法がわかったので結果オーライとします…。
WinSCPでの接続
WinSCPを起動し、ホスト名(インスタンスのIP)、ポート、ユーザー名、パスワードを入力し、"設定"ボタンを押します。
"認証"のメニューで、Google Cloud SDK Shellが作成した秘密キーを設定します。
”OK”ボタンを押してウィンドウを閉じます。
これで接続準備は完了です。
"ログイン"ボタンを押すと、パスフレーズの入力が求められますので、入力して下さい。
無事、WinSCPでもインスタンスに接続する事ができました。これで、iDempiereの環境構築ができます。
PuTTYと、WinSCPでインスタンスに接続できましたので、iDempiereの環境構築としては手順はAWS上での環境構築と変わりませんので、下記をご参照下さい。
- Step1:AWS Accontを作成します。
- Step2:AWS EC2でインスタンスを作成するロケーションを設定します。
- Step3:AWSでKey Pairsを登録します。
- Step4:AWS EC2でUbuntu12.4LTSのインスタンスを作成します。
- Step5:AWSで固定IPアドレス(Elastic IPs)を設定する。
- Step6:SSHでAWSのインスタンスに接続する。
- Step7:Ubuntu12.4LTSにデスクトップ環境を構築する。
- Step8:VNCサーバーをインストール
- Step9:VNCクライアントのインストール
- Step10:JDKをインストール
- Step11:データベースをインストールする。
- Step12:データベースの初期設定
- Step13:SFTPクライアントソフトの設定
- Step14:ファイル転送
- Step15:データベースのリストア
- Step16:iDempiereのセットアップ
- Step17:iDempiereのサーバー起動
- Step18:Webアクセスポートの解放
- Step19:WebブラウザからiDempiereサーバーにアクセスしてみる。
- 参考サイト