IBM Cloudに登録してサイトを公開する(2018年版)

はじめに

人工知能プラットフォームのWatsonで有名なIBMが提供しているクラウドプラットフォーム「IBM Cloud」はIBMという企業名から来る古めかしさ、敷居の高さから、AmazonやGoogle、Microsoftが提供するサービスと比べてあまり利用されているとは言い難いサービスです。

この「IBM Cloud」にライトアカウント(無料版)の提供が始まってから数ヶ月、なかなか普及しているとは言いがたい部分があります。この記事では、そのIBM Cloudにライトアカウントを作成して、実際にPHPサイトを公開するまでの手順を公開していきます。長い記事ですが、作業時間は1時間程度なので、是非アカウントを作ってみましょう。

この記事の目的

IBM Cloudのライトアカウント(無料)を登録してPHPサイトを公開する。
こんなサイト「Hello World!」を作ることを最終目標とします。
https://erestage.mybluemix.net/

success_page1

アカウントを作ろう!

とにかく、アカウントを作らないことには始まりません。
こちらのURLからライトアカウントを登録することができます。
https://www.ibm.com/cloud-computing/jp/ja/bluemix/lite-account/

regist_btn

親切なことに日本語化されています。「ライト・アカウントを今すぐ登録」のボタンをクリックしましょう。

regist00

このような画面が表示されてメールが送られてきます。残念ですが、送付されるメールは日本語化されていないのでスパムフィルタに引っ掛かって届かないことがあります。会社などで登録される場合は特に注意が必要です。

confirm

みるからに妖しげなメールですが「Confirm Account」をクリックすれば登録は完了です。

success

ここまで、かなり迅速に進むことができるので驚きです。メールアドレスがあれば事実上無限にアカウントを増やすことができるので、テストサーバの確保に困ったときには役立ってくれそうです。

IBM Cloudにログインする

登録も出来たので先ほどの画面からログインしましょう。メールアドレスとパスワードを入れるだけなので安心ですが、本当の敵はログイン後に待ち受けているので気をつけましょう。

access_error

ログイン直後の状態では

組織およびスペースへのアクセス権限がありません。 Cloud Foundry へのアクセス権限と、少なくとも 1 つの組織およびスペースへのアクセス権限があることを確認してから、再試行してください。 適切なアクセス権限があるかを、アカウント所有者または管理者に確認してください。

という謎のメッセージが表示され、何も操作することができません。「アクセス権限って何?」「組織って何のこと?」と初見のユーザーを混乱に陥れてくれます。この日本語を読む限り、アカウント所有者は自分自身なので、自分に確認しなければならないという自己矛盾を抱えている、親切なメッセージです。ここで「やーめた」となって諦めてしまうケースが意外とありました。

change_area

解決策は簡単なことで、画面左上の「地域」が「シドニー」になっているところを「米国南部」に設定すれば動くようになります。初期値を米国南部にしておいて欲しいところですね。アカウント登録前にライトアカウントは米国南部しか使えません、という説明があるらしいのですが大半のユーザーは読み飛ばしているので、気が付かないのですね。ちなみにWikipediaで確認したところ米国南部はどちらかというと東海岸側であり、日本からはかなり遠い距離になります。通信に時間が掛かりそうです。

change_dash

ダッシュボードの内容がこのようになっていればログイン完了です。

サーバーを準備する

サーバーを立てるという表現が正しいのかな?とりあえずIBM CloudでPHPが使えるWebサーバーを立てましょう。

menu_btn

画面左上の三本線がメニューボタンです。意外と見落としがちです。また、画面の中央にあるアイコンたちを押してしまいそうになりますが、これらのアイコンはチュートリアルなのでサーバーを立てるなどのアクションは何も出来ません。チュートリアルは英語で書かれているので、うっかり時間を浪費しないように気をつけましょう。そこに役立つことは(日本語では)何も書いてありませんよ。

cf_appl_menu

メニューリストの中から「Cloud Foundryアプリ」を選択します。アプリケーションサービスを選択してはいけませんよ。どうも勘違いしてアプリケーションサービスを選んでしまう方が多いようです。

cf_create_btn

Cloud Foundryアプリの作成というボタンをクリックします。

php_btn

ライトプランでもいろいろな言語を選べるようですが、ここではPHPを選択します。

entry_php

ここでは「アプリ名」と「ホスト名」を入力するだけです。ドメインはライトプランではmybluemix.netしか選ぶことができません。

php_free

価格プランはもちろんライトプランを選択しましょう。

php_regist

作成ボタンを押せばサーバーの起動し始めます。

php_startup

この状態でしばらく待っていると・・・

php_runnning

このアプリは稼働中です。と表示されます。「アプリURLにアクセス」から、ちゃんと起動しているか確認してみましょう。

hello_world

ちゃんと起動していました。かなり短時間で構築作業が完了するので驚きます。米国南部にサーバーがあるということで心配していましたが、応答速度もそこそこで安心しました。

ファイルをアップロードする

さて、サーバーができたのは良かったのですが、自分で書いたプログラムをアップロードするにはどうしたらよいのでしょうか。FTPやSSHでアップロードはできないようです。管理画面上からアップロードできるのだろうと思っていましたが、どうやらそのような仕掛けも無いようです。

コマンドラインインターフェースをインストール

若干パニックになりそうですが、先ほどの「アプリは稼働中です」画面に表示されている手順に従って操作することでファイルをアップロードできるので安心してください。まずは、Bluemixコマンド・ライン・インターフェースのダウンロードというボタンをクリックします。

command_download_btn

使用中のOSに合わせてインストーラーをダウンロードしてインストールします。

cf_download

それにしてもGUIツールは用意されていないのですね。残念です。このツールをインストールして再起動するとコマンドプロンプトから「bx」というコマンドを使用できるようになります。

再起動後にコマンドプロンプトを開いて

bx -v
を実行して、下記のようなバージョンが表示されれば成功です。
bx version 0.6.4+41cb1aa-2017-12-19T03:46:07+00:00

アップロードするPHPアプリを作成する

アップロードするPHPアプリを用意します。なにかすごく難易度が高そうな気配がしますが、そんなことはなく、ふつうのPHPをフォルダに入れれば大丈夫です。

自分のパソコン上で適当なフォルダを作成してください。
その中に「index.php」というファイルを作成します。
ファイルの中身は

<?php
echo “Hello World!";
?>

としておきましょう。

※ コマンドプロンプトのカレントディレクトリは作成したフォルダにしてください!

PHPアプリをアップロード

最初に、bxコマンドに接続先のサーバーを教えてあげる必要があります。

bx api https://api.ng.bluemix.net

bx login -u (登録時のメールアドレス) -o (登録時のメールアドレス)

ここで、パスワードが聞かれるので入力してください。

bx target -s dev

bx app push (アプリ名)

の順にコマンドを実行していってください。
pushコマンドはサーバーの再起動を含むので、かなり時間が掛かります。

参考までに、コマンドプロンプトの画面イメージを掲載します。

login_command_bx

ブラウザから確認する

最初の画面に戻りますが

success_page1

このように表示されます。ちゃんとSSLにも対応していますね

まとめ

ライトアカウントではGoogleやAmazonの同様のサービスとは異なりクレジットカードの登録が不要となっています。メールアドレスのみで登録できます。事実上、本人認証ができていない状態でWebサービスの公開ができるわけで、大丈夫なのか心配になってきますが、昔のフリーWebスペースとかも似たようなものだったので、意外と大丈夫なのかもしれません。クレジットカードが要らないというのは、特に会社などで使うときに有利に働きます。法人クレジットカードがあるとはいえ、なかなか事業部門に自由に使わせてくれることはないですからね。

また、現在のところ無料アカウントでは制限事項があります。
重要と思われる箇所は

10日間 開発なしでアプリを自動停止
30日間 活動なしでサービスの自動削除

になります。
自動停止はともかく、自動削除されてしまうのですね。
とりあえず、数日に一回はログインしておかないと消えてしまうようです。
気をつけましょう。

システム開発

Posted by @erestage