Ubuntu 12.04でAppScaleをインストールおよび構成する方法

前書き

AppScaleは、パブリッククラウド、プライベートクラウド、およびオンプレミスクラスターにGoogle App Engineアプリケーションを展開するために設計されたオープンソースコンピューティングプラットフォームです。 AppScaleはGoogle App Engine APIと完全に互換性があり、Python、Go、PHP、およびJavaをサポートしています。 AppScaleを使用すると、既存のアプリをDigitalOceanなどのクラウドコンピューティングプラットフォームに移行できます。 以下に、特定のAPIを提供するために使用されるオープンソースコンポーネントのリストを示します。

  • データストアAPI:http://cassandra.apache.org/[Cassandra]およびhttp://zookeeper.apache.org/doc/trunk/zookeeperOver.html[ZooKeeper]

  • Memcache API:http://memcached.org/[memcached]

  • Task Queue API:https://www.rabbitmq.com/[RabbitMQ]およびhttp://www.celeryproject.org/[Celery]

  • XMPP API:https://www.ejabberd.im/[ejabberd]

  • チャンネルAPI:http://strophe.im/strophejs/[strophe.js]およびhttps://www.ejabberd.im/[ejabberd]

  • Blobstore API:http://cassandra.apache.org/[Cassandra]およびhttp://zookeeper.apache.org/doc/trunk/zookeeperOver.html[ZooKeeper]

  • 画像API:http://www.pythonware.com/products/pil/[PIL]

  • Cron API:https://wiki.gentoo.org/wiki/Cron#vixie-cron[Vixie Cron]

前提条件

このチュートリアルでは、次のものが必要です。

  • Ubuntu 12.04.5で4GB以上のドロップレット

AppScaleがアイドル時に使用する2 GBのRAMに加えて、必要なコンポーネントをコンパイルするには、少なくとも2 GBのRAMが必要です。 標準アプリケーションの展開には、4 GB以上のRAMが*強く推奨*されます。 スワップファイルで2 GBのドロップレットを使用できる場合があります。 ただし、それはこのチュートリアルの範囲外です。

執筆時点では、AppScaleはUbuntu 12.04の公式サポートのみを提供しています。 ビルドスクリプトを変更すると、Ubuntu 14.04にインストールできる場合があります。 ただし、これもこのチュートリアルの範囲外であり、コミュニティでサポートされていない場合があります。

AppScaleとAppScale Toolsをインストールする最初の2つの手順は、rootユーザーとして実行する必要があります。 残りの手順は、非rootユーザーとして実行できます。

ステップ1-AppScaleをインストールする

最初の2つのセクションでは、すべてのコマンドをrootユーザーとして実行します。 sudoユーザーとしてサーバーに接続している場合は、次を使用してルートシェルに入ります。

sudo su

まず、apt-getパッケージインデックスを更新します。

apt-get update

AppScaleをインストールする準備ができました。 ソースからAppScaleをコンパイルします。 ソースコードのコンパイルには非常に時間がかかる場合があることに注意してください。 このプロセスが完了するまでに15分以上かかることが予想されます。

`+ / root +`ディレクトリにいることを確認してください:

cd /root

Gitをインストールして、AppScaleソースコードをダウンロードできるようにします。

apt-get install -y git-core

GitHubからAppScaleソースコードを複製します。

git clone git://github.com/AppScale/appscale.git

`+ appscale / debian +`ディレクトリに移動し、ビルドスクリプトを実行します。

cd appscale/debian
bash appscale_build.sh

手順2-AppScale Toolsのインストール

AppScale Toolsは、AppScaleクラスターの管理とアプリケーションの展開に使用されます。 これらのツールは、ローカルマシンまたはサーバーにインストールできます。 簡単にするために、サーバーにツールをインストールします。 Mac OS XとWindowsでのインストールプロセスは非常に似ています。 Windowsではhttps://www.cygwin.com/[Cygwin]を使用する必要があります。 詳細については、https://github.com/AppScale/appscale-tools [GitHub Page]を参照してください。

`+ / root`ディレクトリに戻ります:

cd /root

GitHubからAppScale Toolsのソースコードを複製します。

git clone git://github.com/AppScale/appscale-tools.git

`+ appscale-tools / debian +`ディレクトリに移動し、ビルドスクリプトを実行します。

cd appscale-tools/debian
bash appscale_build.sh

ビルドスクリプトが完了したら、再起動することをお勧めします。

reboot

手順3-AppScaleの展開を構成する

このチュートリアルの残りの部分では、任意のユーザーとしてAppScale Toolsを実行できます。 これは、sudoユーザーである必要はありません。 ただし、AppScaleを初めて起動するときは、rootユーザーのパスワードを知っている必要があります。 AppScaleは認証証明書を自動的に作成し、今後AppScale Toolsを使用する際にルートパスワードは不要になります。

サーバーの再起動が完了し、SSH接続を確立したら、AppScaleの展開を構成する必要があります。 AppScale Toolsでは、ツールセットを実行するたびに構成ファイルが必要です。 このステップでは、 `+ AppScalefile +`という設定ファイルを作成し、AppScaleを起動して、管理者アカウントを設定します。

ユーザーのホームディレクトリにいることを確認します。

cd ~

初期の `+ AppScalefile +`設定ファイルを作成します:

appscale init cluster

次に、サーバーのIPアドレスを `+ AppScalefile +`に追加します。

nanoでファイルを開きます。

nano AppScalefile

ファイルの上部に、次のセクションが表示されます。

AppScalefile

# The deployment strategy (roles -> machines) that should be used in this
# AppScale deployment.
# The following is a sample layout for running everything on one machine:
ips_layout :
 master :
 appengine :
 database :
 zookeeper :

デフォルトのIPアドレスをサーバーのIPアドレスに置き換えます。 ファイルの編集が完了したら、* CTRL-X を押し、 Y を押して保存し、 ENTER *を押して既存のファイル名を上書きします。

これで、作成した `+ AppScalefile +`と同じディレクトリからAppScaleを起動できます。

appscale up

AppScaleは、ホストの指紋とrootパスワードを確認するように求めます。

The authenticity of host '111.111.111.111 (111.111.111.111)' can't be established.
ECDSA key fingerprint is ab:3a:f0:87:c8:4e:8c:ba:59:0e:06:64:1b:f6:fe:e8.
Are you sure you want to continue connecting (yes/no)?

「+ yes +」と入力し、* ENTER *を押します。 次のように表示されます。

[email protected]'s password:

rootユーザーのパスワードを入力して、* ENTER *を押します。

正しいルートパスワードを入力すると、次のように表示されます。

Generated a new SSH key for this deployment at /root/.appscale/appscale69de89364b624a8a9be1b7f45ac23d40
Starting AppScale 2.3.1 over a virtualized cluster.
Log in to your head node: ssh -i /root/.appscale/appscale69de89364b624a8a9be1b7f45ac23d40.key [email protected]
Head node successfully initialized at 111.111.111.111. It is now starting up cassandra.
Copying over deployment credentials
Starting AppController at 111.111.111.111
Please wait for the AppController to finish pre-processing tasks.

Please wait for AppScale to prepare your machines for use.
AppController just started

AppScaleを起動すると、 `+ AppController just started +`でハングしているように見える場合があります。 これは正常です。 すべてのAppScaleコンポーネントの初期化には時間がかかる場合があります。

最終的に、次が表示されます。

UserAppServer is at 111.111.111.111
Enter your desired admin e-mail address:

管理者ユーザーアカウントを作成します。 ユーザーのメールアドレスを入力し、パスワードを入力します。 これらの詳細を覚えておいてください。 AppScale Administration Panelにアクセスするために必要になります。

管理者ユーザーアカウントを作成すると、次のように表示されます。

Creating new user account [email protected]
Creating new user account [email protected]
Your XMPP username is [email protected]
Granting admin privileges to [email protected]
AppScale successfully started!
View status information about your AppScale deployment at http://111.111.111.111:1080/status

AppScaleは、管理パネルへのリンクを提供します。 通常、次の形式です。 通常、httpアドレスは安全なhttpsアドレスに自動的にリダイレクトされます。

http://:1080/status
https://:1443/status

ステップ4-AppScale管理パネル

ブラウザでAppScale管理パネルを開きます。 AppScaleの起動後に、リンクが提供されているはずです。

http://:1080/status

自己署名証明書を受け入れるように求められる場合があります。

image:https://assets.digitalocean.com/articles/AppScale_Ubuntu_1204/self-signed-cert.png [自己署名証明書を受け入れる]

AppScale管理パネルから、ユーザーは[アカウントの作成]をクリックして独自のアカウントを作成できます。 ただし、自分のアプリをアップロードおよび削除するには、管理者アカウントを使用して権限を変更する必要があります。

右上の[ログイン]ボタンをクリックします。 [ログイン]ボタンは、小さな画面では異なるように見える場合がありますが、緑色のままです。

image:https://assets.digitalocean.com/articles/AppScale_Ubuntu_1204/appscale-login.png [AppScaleにログイン]

前の手順で設定した管理者の電子メールとパスワードでログインします。 その後、AppScaleステータスページが表示されます。

image:https://assets.digitalocean.com/articles/AppScale_Ubuntu_1204/appscale-status-page.png [AppScaleステータスページ]

管理パネルでは、サーバー統計とアプリケーション統計にアクセスできます。 アプリケーションを展開および削除することもできます。 管理パネルからアプリケーションをデプロイするのはかなり簡単です。 このチュートリアルでは、コマンドラインからアプリケーションをデプロイする方法を学習します。 管理パネルの探索が終了したら、次の手順に進みます。

ステップ5-最初のアプリケーションのデプロイ

AppScaleは、すぐにデプロイできるサンプルアプリケーションのコレクションを提供します。 これらのアプリケーションは、AppScaleクラスターをテストする良い方法です。 また、アプリケーションの展開プロセスについても理解しています。

同じユーザーアカウントを使用している必要があり、現在のディレクトリに `+ AppScaleFile +`が含まれている必要があります。 このファイルには、展開を管理するためにAppScaleが必要とするすべての構成が含まれています。

ユーザーのホームディレクトリに戻っていることを確認します。

cd ~

GitHubから、サンプルアプリケーションのソースコードを複製して、Guestbookアプリを作成します。

git clone https://github.com/AppScale/sample-apps.git

ソースコードのダウンロード時に次のように表示されます。

Cloning into 'sample-apps'...
remote: Counting objects: 15742, done.
remote: Total 15742 (delta 0), reused 0 (delta 0), pack-reused 15742
Receiving objects: 100% (15742/15742), 318.96 MiB | 23.52 MiB/s, done.
Resolving deltas: 100% (4944/4944), done.

Guestbookアプリは、データストアと認証APIをテストするのに最適な方法です。

アプリケーションをデプロイします。

appscale deploy sample-apps/go/go-guestbook/

アプリケーションにメールアドレスを割り当てるように求められます。 メールアドレスを入力し、* Enter *を押します。

Enter your desired e-mail address:

これは任意の電子メールアドレスにすることができます。 ユーザーがデータベースにまだ存在しない場合は、パスワードを設定するよう求められます。 このチュートリアルでは、管理者アカウントを使用することにしました。

次に、次が表示されます。

Uploading initial version of app guestbookgo
We have reserved guestbookgo for your app
Tarring application
Copying over application
Please wait for your app to start serving.
Waiting 1 second(s) to check on application...
Waiting 2 second(s) to check on application...
Waiting 4 second(s) to check on application...
Waiting 8 second(s) to check on application...
Waiting 16 second(s) to check on application...
Your app can be reached at the following URL: http://111.111.111.111:8080

ブラウザで提供されているURLを開くと、ゲストブックアプリが表示されます。 まだAppScaleにサインインしている場合、ゲストブックアプリはあなたのメールアドレスを使用します。 AppScale管理パネルに戻ってログアウトすると、匿名ユーザーとしてゲストブックに署名されます。

image:https://assets.digitalocean.com/articles/AppScale_Ubuntu_1204/guestbook-app.png [Guestbook App]

アプリケーションを更新するには、単に `+ appscale deploy +`コマンドを再度使用します。 AppScaleは、既存のアプリケーションを自動的に検出して更新します。 アプリケーションを既に所有しているのと同じメールアドレスを使用する必要があります。 所有権を変更する場合は、アプリケーションを削除して再デプロイできます。

同じアプリケーションの複数のバージョンを並べて実行する場合は、 `+ app.yaml +`ファイルでアプリの名前を変更する必要があります。 これはアプリケーションのメイン構成ファイルであり、アプリケーションのルートディレクトリにあります。

アプリケーションを削除するには、次のコマンドを使用できます(デプロイプロセス中にアプリに割り当てられたID AppScaleを「+ guestbookgo +」に置き換えます)。

appscale remove

AppScale Administration Panelからアプリケーションを削除およびデプロイすることもできます。

トラブルシューティング

AppScaleは非常に複雑なプラットフォームであり、問​​題が発生する可能性があります。 最も一般的なエラーの解決に役立ついくつかの手順について説明します。 詳細については、公式のhttps://github.com/AppScale/appscale/wiki/Troubleshooting[AppScaleトラブルシューティングページ]を読むことをお勧めします。

問題の解決策が見つからない場合、AppScaleには非常にアクティブなhttps://groups.google.com/forum/#!forum/appscale_community [メーリングリスト]があります。 トピックをメーリングリストに送信するときは、できるだけ詳細な情報とログファイルのコピーを含めるようにしてください。 問題に対する迅速な解決策を受け取る可能性が高くなります。

AppScale状態を強制的にクリーンアップする

`+ appscale clean +`コマンドを使用して、VMを強制的にクリーンな状態にし、構成の問題を取り除きます。

appscale clean

また、このスクリプトは、AppScale関連のすべてのプロセスを強制的に強制終了します。 最初の展開で問題が発生した場合は、メーリングリストに連絡する前に必ず最初にこれを試してください。 このコマンドは通常、構成の問題を修正します。 その後、 `+ appscale up +`を再度実行して、AppScaleを再デプロイできます。

appscale up

AppScaleログファイル

`+ appscale logs +`コマンドは、AppScaleデプロイメントのすべてのノードからログファイルを収集し、指定されたディレクトリにコピーします。

appscale logs

ログファイルには、 `+ / var / log / appscale +`ディレクトリで直接アクセスできます。

cd /var/log/appscale

何らかの理由で `+ appscale logs +`コマンドが失敗した場合、この方法でログにアクセスする必要があります。 ただし、マルチノード展開では、すべてのサーバーでこれを行う必要があります。そのため、AppScale Toolsを使用してログファイルを収集することをお勧めします。

`+ appscale tail +`コマンドは、デプロイメント内のAppScaleログのリアルタイムの読み出しを提供します。 これは、アプリケーションと接続の問題をリアルタイムで監視するのに役立ちます。

appscale tail

AppScaleデプロイメントのデバッグ

AppScale Deploymentのデバッグ中に注目すべき3つの主要なログがあります。

  • + controller-17443.log +-このログは、AppScaleのプロビジョニングデーモンであるAppControllerの出力です。 このデーモンはAppScaleのすべての必要なサービスを開始する役割を担っているため、AppScaleの展開で問題が発生した場合の最適な開始場所です。

  • + app _ app_id-*。log +-デプロイされたすべてのアプリケーションには独自のログファイルがあります。 アプリケーションの展開に問題がある場合、または期待どおりに動作しない場合は、ここから開始します。

  • + datastore_server-400 * .log +-これはAppScaleデータストアのログファイルです。

結論

単一サーバー展開用にAppScaleをインストールおよび構成しました。 アプリケーションを展開および削除する方法を学びました。 また、Guestbookアプリに署名することで、展開をテストします。 Guestbook Appに署名することにより、多くのAPIが正しく機能していることが証明されました。 これで、このAppScaleインストールを使用して、Google App Engineに基づいたカスタムアプリケーションをデプロイできます。

Related