クラウド上にデモアプリケーションを配備し何らかのデモやサービスのプロトタイプを立ち上げるといたシチュエーションを想定します。
Microsoft Azure は一ヶ月、開発者プログラム特典では一年間の無料枠があります。ちなみに、競合の Amazon Web Service にも同様に一年間の無料枠があります。
アプリケーションの開発
以下の記事が良いでしょう。
sinatraで一からwebアプリケーションを構築する
ある程度の規模のアプリケーションを作るにあたり、ビューとモデルとコントローラーの分離、回帰テスト (RSpec) を実行をするといったことは必須かと思います。また haml, sass, coffeescript は使ったほうが良いでしょう。
Microsoft Azure アカウントの取得
Microsoft アカウントを取得し、サインアップします。
Microsoft Azure
クレジットカード、電話番号の認証をすることになります。
仮想マシンの起動
Azure にログインしたら Virtual machines - Add を選択し仮想マシンを追加します。ここでは Ubuntu 16.06 LTS を選択したものとします。
ドメイン
VM の Essentials の中に Public IP address/DNS name label 欄があります。これをクリックして命名することにより、ドメイン名が割り当てられます。
現在ですと Tokyo/East を選択すると xxx.japaneast.cloudapp.azure.com のような名前が割り当てられるようです。少々長くなってしまいますね。
ポートの開放
Resource groups で設定します。 Network security group (盾のアイコン) をクリックすると Inbound security rules/Outbound security rules が見えてきますので、ここでルールを設定します。
Ubuntu の設定
仮想マシンにログインすればあとはいつもの GNU/Linux 環境なのですが、忘れやすいところをメモしていきます。
localtime の変更
Azure の時刻設定が UTC になっています。以下の記事を参考に JST に変更します。
ファイアウォール
最近の Ubuntu では ufw という iptables のラッパーが用意されており、これを利用して設定します。
昔ながらの人は ufw を無効化した上で iptables を利用してもより細かい設定ができますので良いかもしれません。
openssl のビルドに失敗する
Ruby の ext/openssl でビルドが失敗することがあります。このような場合は Makefile に一行追加しソースの場所を明示するとビルドが通ります。
top_srcdir = /usr/local/src/ruby/ruby-2.3.1
まとめ
sinatra はちょっとしたアプリケーションを簡単に作って動かすことができますし、 Microsoft Azure などの IaaS を使うと、ほとんどハマりどころもなくクラウド上にアプリケーションの動作環境が構築できるので便利ですね。以上でこの話はおしまいです。