オープンソースのPaaSソフトウェア CloudFoundry の技術情報やイベント告知などを掲載します

2013-09-04

Cloud Foundry ハンズオンの開催

Cloud Foundryのハンズオンを以下の日程、内容で開催いたします。
是非ご参加、視聴の程よろしくお願いいたします。

  1. 開催日時
    • 2013年9月18日(水) 19:00-20:30
  2. 対象
    • アプリケーション開発者の方
    • PaaS上へ自作のアプリをクラウド上へ載せてみたい方
  3. 内容
    • クライアントツールのローカル環境へのインストール
    • 自作アプリをデプロイ(PaaSへアップ)
    • 自作アプリの起動停止などのPaaS上での基本制御のハンズオン
  4. 参加登録
  5. 関連情報
  6. その他
    • 次回開催は未定です。

2013-08-22

Cloud Foundryで始めるアプリケーション開発:(2) 簡単なアプリケーションのデプロイ

こんにちは、yudai です。前回に引き続き、Cloud Foundry を使ったアプリケーションの開発手法について解説を行なっていきます。

2回目となる今回では、簡単なアプリケーションの Cloud Foundry 環境へのデプロイに挑戦します。Cloud Foundry の細かい仕組みやツールの使用方法についてはとりあえず気にせずに、Cloud Foundry の世界を体感してみましょう。なお、今回は前回のエントリーに引き続き、 Anynines という Cloud Foundry のホスティングサービスを使用します 。アカウントの登録がまだお済みでない方は、前回の記事を参照して登録を行なってください。

クライアント環境について

Cloud Foundry へのアプリケーションをデプロイ際に使用する標準的なコマンドラインツール類はすべて Ruby で記述されています。そのため、Ruby を実行可能な環境であれば、クライアントとして使用する OS の種類は問いません。本エントリーでは Ubuntu 12.04 64bit を使用して解説を行います。Mac OSX でもほぼ同様のコマンドで操作が可能ですが、Windows 環境の方は適宜コマンドを読み替えてください。

UbuntuでのRubyのインストール

Rubyの実行環境のインストール方法は使用するOSや環境によって異なります。Ubuntuの場合は標準の apt パッケージでインストールすることが出来ます。
# ruby ではなくて ruby1.9.3 をインストールします
$ sudo apt-get install ruby1.9.3

cf コマンドのインストール

まず最初に、Cloud Foundry 環境の操作に使用するコマンドラインツール「cf」をインストールします。cf コマンドは Ruby の Gem として提供されているため、簡単にインストールすることができます。なお、現在の cf コマンドの最新版は 5.2.0 ですが、今回は anynines の環境で安定して使用できる 4.2.8 を使用します。

# sudo は必要に応じて削除してください
$ sudo gem install cf --version 4.2.8

Cloud Foundry へのターゲットとログイン

まず最初に行うべきことは、自分が使用する Cloud Foundry の環境を cf コマンドに教えることです。cf コマンドではこれを「target」というサブコマンドで行います。使用する環境の識別は Cloud Foundry が稼働しているサーバの URL です。Anynines ではアカウントを登録した際に送られてくるメールに記載されています。
# anynines の Cloud Foundry サーバを指定する
$ cf target https://api.de.a9s.eu
Setting target to https://api.de.a9s.eu... OK

ターゲットが完了したら、ユーザIDとパスワードを使用して Cloud Foundry にログインします。これらの値も Anynines から送られてくるメールに記載されています。
# ユーザとしてログイン
$ cf login
target: https://api.de.a9s.eu

Email> yudai@arielworks.com

Password> **********

Authenticating... OK
There are no spaces. You may want to create one with create-space.... OK

スペースの作成

Cloud Foundry では標準で「スペース」という概念を使用することが出来ます。スペースは主に、 Cloud Foundry 内で開発やステージング、プロダクションといった環境を切り替えるために使用されるほか、目的に合わせて任意のスペースを作成することが可能です。スペースは最低でも1つ作成する必要があるため、今回は「Default」という名前のスペースを作ります。使用するサブコマンドは「create-space」です。
$ cf create-space
Name> default

Creating space default... OK
Adding you as a manager... OK
Adding you as a developer... OK
Space created!

cf switch-space default    # targets new space
作成したスペースに環境を切り替えるために、「switch-space」サブコマンドを実行します。
$ cf switch-space default
Switching to space default... OK

Target Information (where will apps be pushed):
  CF instance: https://api.de.a9s.eu (API version: 2)
  user: yudai@arielworks.com
  target app space: default (org: yudai_arielworks_com)

サンプルアプリケーションの準備

サンプルとしてデプロイを行うアプリケーションの準備を行います。今回は簡単な Ruby のウェブアプリケーションを作ります。適当なディレクトリを作り以下のファイルを作成します。各ファイルの内容の詳細については次回に解説を行います。
hello_world.rb:
require "sinatra"

class HelloWorld < Sinatra::Base
  get "/" do
    "Hello, World!"
  end
end
Gemfile:
source "https://rubygems.org"
gem "sinatra"
Gemfile.lock:
GEM
  remote: https://rubygems.org/
  specs:
    rack (1.5.2)
    rack-protection (1.5.0)
      rack
    sinatra (1.4.3)
      rack (~> 1.4)
      rack-protection (~> 1.4)
      tilt (~> 1.3, >= 1.3.4)
    tilt (1.4.1)

PLATFORMS
  ruby

DEPENDENCIES
  sinatra
config.ru:
require "./hello_world"
run HelloWorld.new

アプリケーションのプッシュ

それでは、アプリケーションを実際に動かしてみましょう。アプリケーションを Cloud Foundry 環境へデプロイするには「push」サブコマンドを使用します。いくつか設定項目を聞かれますが、「Subdomain」以外はデフォルト値(Enter入力)で問題ありません。「Subdomain」の値はアプリケーションの URL の一部となりますが、この環境では他のユーザと競合する可能性があるので適宜変更してください。

$ cf push
Name> hello_world

Instances> 1

1: 128M
2: 256M
3: 512M
4: 1G
Memory Limit> 256M

Creating hello_world... OK

1: hello_world
2: none
Subdomain> hello_world

1: de.a9sapp.eu
2: none
Domain> de.a9sapp.eu

Binding hello_world.de.a9sapp.eu to hello_world... OK

Create services for application?> n

Save configuration?> n

Uploading hello_world... OK
Preparing to start hello_world... OK
Checking status of app 'hello_world'...
  0 of 1 instances running (1 starting)
  1 of 1 instances running (1 running)
Push successful! App 'hello_world' available at http://hello_world.de.a9sapp.eu

コマンドが正常終了したら、ウェブブラウザで http://hello_world.de.a9sapp.eu/ (サブドメイン部分は置き換えてください)を開きます。「Hello, World!」と表示されたら成功です。

次回予告

次回は今回使用したサンプルアプリケーションのソースコードを解説し、Cloud Foundry にアプリケーションをデプロイするための条件について説明を行う予定です。 

2013-08-01

Cloud Foundryで始めるアプリケーション開発: (1) 環境の準備

こんにちは、yudai です。今回から CloudFoundry.gr.jp の技術ブログを始めることになりました。このブログでは特にアプリケーション開発者の方を対象とした Cloud Foundry 上での開発手法についての紹介を行なっていきます。

第1回目となるこのエントリーでは、Cloud Foundryを使い始めるための最初のステップとなる、「Cloud Foundry 環境の準備」について解説します。

編集済(2013-08-09 14:30)

公開時の記事では Pivotal 社の提供している CloudFoundry.com を使用していましたが、現在は新規アカウントの払い出しが停止しているため、Avarteq GmbH の提供する Anynines を使用して再構成しました。

Cloud Foundry環境の選択

Cloud Foundry の実行環境を入手するには、大きく分けて以下の2つの方法があります。
  1. Cloud Foundry プロバイダーが提供する構築済みの環境を利用する
  2. 独自の Cloud Foundry 環境を自力で構築する
1. はCloud Foundryの環境をクラウドサービスとして提供している事業者(プロバイダー)から環境を借り受けて利用する方法です。Cloud Foundry 自体のセットアップやメンテナンスはプロバイダーが代行してくれますので、利用者は自身のアプリケーション開発に集中することが可能です。国内外ですでに複数のプロバイダーが Cloud Foundry を使用した PaaS サービスの提供を始めています。

2. の方法はOSSとして公開されている Cloud Foundry のソースコードを用いて、手元のサーバや IaaS サービス上に独自の Cloud Foundry 環境をセットアップするアプローチとなります。サーバのセットアップや Cloud Foundry 自体の構築も自身で行う必要が有るため、1. の方法に比べると使いはじめるまでの準備に大きな工数が必要となります。

本連載では、Cloud Foundry をすぐに使いはじめることが可能な 1. の方法を用いて解説を行なっていきます。使用するプロバイダーおよびサービスは、無料アカウントを簡単に習得することができる Avarteq GmbH 提供の Anynines です。

サインアップ

Anynines をウェブブラウザで開くと、次のようなトップページが表示されます。今回は新規にアカウントを取得するので、画面中央にあるオレンジ色の「SIGN UP FOR THE BETA」ボタンを選択します。


ユーザのメールアドレスを尋ねられるので、適当なメールアドレスを入力してください。入力が出来たら「SUBMIT」を選択します。


次のような画面が表示されたら、少し待ってからメールの確認を行います。「Welcome to Anynines - confirm your email」という件名のメールが届くはずです。


届いたメールの本文に書かれているURLをウェブブラウザで開くとアカウントの登録が完了します。


少し待つと再度「Welcome to Anynines - your credentials」というメールが届きます。メール本文に記載されている「Target」「User」「Password」の値がサービス利用に必要となりますので、大切に保管してください。

今回のエントリーはここまでです。次のエントリーでは作成されたアカウントを利用して実際に Cloud Foundry を使いはじめます。

おまけ

Cloud Foundry プロバイダーについて

今回のエントリーでは Avarteq GmbH の Anynines を利用しましたが、Cloud Foundry プロバイダーには他にも選択肢が存在します。海外では開発元の Pivotal 社 や Uhuru 社を始めとして数社がサービスを提供しているほか、日本国内では NTT Communications が「Cloudn PaaS」という名前で Cloud Foundry を使用した PaaS サービスを提供しています。各プロバイダーとも Cloud Foundry の基本的な互換性を維持しつつも、開発言語やサービス(DBMSなどのミドルウェア)に拡張が施されており、使用料金などにも含めてそれぞれ特色があります。

独自の Cloud Foundry 環境構築について

Cloud Foundry の環境構築は、残念ながら現時点では誰でも簡単に行うことが出来るとは言えない状況です。解決策としては、 Uhuru 社や ActiveState 社が提供している Cloud Foundry ベースの プライベート PaaS ソリューションが存在します。環境構築から運用までのサポートが得られるため、コストの折り合いが付けば有力な選択肢となります。