Windows Azure + Rails でサーバーを構築してみる

Paas/IaaSってなに?

Windows AzureはPaas/IaaSと呼ばれてるみたいです。

まずSaas(サーズ)とはSoftware as a Serviceの略で、

ソフトウェアを通信ネットワークなどを通じて提供し、利用者が必要なものを必要なときに呼び出して使うような利用形態のこと。サービス型ソフトウェアとも呼ばれる。

ということらしい。

そしてPaas(パーズ)とはPlatform as a Serviceの略で、

アプリケーションソフトが稼動するためのハードウェアやOSなどの基盤(プラットフォーム)一式を、インターネット上のサービスとして遠隔から利用できるようにしたもの。

Paasが初期のルーツで、その考え方を応用して深めたものがPaasらしい。

そしてIaas(イアース)とはInfrastructure as a Serviceの略で、

情報システムの稼動に必要な機材や回線などの基盤(インフラ)を、インターネット上のサービスとして遠隔から利用できるようにしたもの。また、そのようなサービスや事業モデル。

うん?PaasとIaasの違いってなんだ?というのは、、

当初考案された用語はHaaS(Hardware as a Service)だったが、より包括的な概念としてIaaS(Infrastructure as a Service)に取って代わられた。PaaSやSaaSがアプリケーションやソフトウェア環境であるのに対し、機材や回線などのハードウェア環境に重きを置いた用語である。

ということらしいです。HaaSってきくとわかりやすいけど、Hardwareに関わらない部分まで広範囲になってきたからIaasって呼ばれるようになったんだね。

MacRailsでAzure

ここのサイトを参考にしながらLinuxの環境で、Railsを用いてAzureでサーバーを構築してみます。

環境構築

まずは新しい環境になってからrbenvを使ってなかったので、元記事の環境に忠実にする的な意味合いと、単純にrbenvの方が好き(ややただの食わず嫌い)なのでqiitaの記事を参考にしてインストールしておいた。

ちゃんと理解してなかったけど、rbenvはrubyのバージョンマネジメントのためのツールで、gemってrubyに付属してるものなので「バージョン切り替える」=「gemも切り替える」ということになるんだ。

ここの記事が参考になりました。

ということでrailsをインストール

$ gem install rails --no-rdoc --no-ri

チュートリアルではVersion 3.2.12を使っているよう。

Railsアプリを作成

$ rails new new_app

Azureの仮想マシンを作る

こっちのインストラクションに従えと書いてあるのでこちらで。

Ruby on Rails Web App on Azure using Linux VM

Virtual Machineを作れたらそれで終わりで、途中でやめてしまってok

チュートリアルUbuntuでやってましたがCoreOSで作ってしまいapt-getが使えずにやり直した...)

VMが作れたら、sshでログインした状態で始める。さっき作ったユーザとDNSを使ってログインすればok

以下でrubyをインストール。バージョンはMacにインストールしているものに合わせることにする。

$ apt-get update -y # サーバーからパッケージ・リストを入手, 問い合わせは全て"y"で答える
$ sudo apt-get upgrade -y  # 有無をいわさずパッケージを更新
$ sudo apt-get install ruby2.2.1 ruby2.2.1-dev build-essential libsqlite3-dev nodejs -y  # rubyをインストール

Linuxコマンド集 - 【 apt-get 】 パッケージを取得してインストール/アップデートする:ITpro

VM側でアプリを動かす

まずはVM側にアプリを移動

$ scp -rC boda user@vm.cloudapp.net:

オプションはr再帰Cが圧縮あり。

gemをインストールします

$ sudo bundle install

Azure Management Portalにログインしてendpointを作成します。

Privateのポートを3000にするのに注意。これでパスが直接ルートに結び付けられるのかな。

そしたらrailsでサーバーを走らせたら、ドメインvm.cloud.comを叩いたら表示されます。