Windows AzureでCentOS
今日、「クラウド電話API!Twilio API 勉強会 Vol.10 @東京」のイベントでちょこっとお手伝いと宣伝+自慢に行ってきたのですが、Microsoftさんのご好意によりWindows Azureのお試しアカウントを頂きました。IISの運用経験がほとんどないので、いったいどうしようかと思っていたのですが、お話を伺うと別に普通にCentOSも動くということなのでさっそく動かしてみました。Azureのイベントということで、なんか萌えキャラとかばんばん見せられたらうんざりと思っていたら、そんなの一瞬たりとも出てこなかったので大変好感を持ちました。まあAzure自体がまだ英語のままの部分もあったりして日本ローカルの部分は少ないっぽいんですが、そのお陰でセットアップまで一度も幼稚なアニメキャラとか見ないで済みました。すばらしいです。
Azure上の仮想サーバの作成自体はめちゃめちゃに簡単です。事前準備としてSSHでのログインに鍵認証を利用したかったので事前にopensslでcerまたはpam形式の鍵ペアを作成しておくといいでしょう。
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out cert.pem $ chmod 600 private.key $ openssl x509 -outform der -in cert.pem -out cert.cer
ダッシュボードで仮想マシンを作成します。下の方に新規追加ボタンがあるので「コンピューティング」→「仮想マシン」→「ギャラリーから」を選択すると「OpenLogic」としてCentOSが表示されます。
OpenLogicというのはCentOSのサポートなどを提供する会社だそうです。こいつを選択して、上で作成したキーの公開鍵の方を登録すれば準備完了です。しばらく待てばサーバが起動するので(デフォルトでSSHのポートが開いています)、早速ログインしてみましょう。サーバはデフォルトで○○.cloudapp.netという名前で公開されるようです。好きな名前をつけてください。最初のユーザーアカウントもここで決めることが出来ます。
$ ssh -i private.key your_name@○○.cloudapp.net
これでいつものCentOSにログインできます。特にサービスは起動していません。また外部からの接続もSSHのポートしか開放されていないので、このままでは何も出来ません。iptablesが起動しているのですが、Azureの環境自体でインバウンドのアクセスはコントロールできるので、細かい制御をしない場合はiptablesを落としてしまってもまあ大丈夫です。
が。困ったことにビルド関連のツールが一切入っていません。そこでyumでインストールしようと
$ sudo yum groupinstall 'Development Tools'
を実行してみたのですが、kernel-headerのバージョンがどうこうといわれてエラーになってしまいます。というのも、デフォルトでyumはkernelを除外するようになっており、その設定を変更しないといけないからです。/etc/yum.confには
exclude=kernel*
としっかり記述されているので、これを
#exclude=kernel*
に書き換えるとインストールできるようになります。なぜ除外されていたのかわかりませんが、開発関連のツールのインストールが終われば元に戻しておいてもいいでしょう。
ここまで来たら、あとはいつもの作業です。nginxやrbenv、bundlerやrailsをインストールするともうほとんど完成です。めでたしめでたし。
おっと、1つ忘れてはいけないことが。Azure上の仮想マシンの一覧から作成した仮想マシンを選択し、その管理画面からエンドポイントを選択します。デフォルトではSSHしか開放されていないので、ここにHTTPを追加してみます。
しばらく待つと設定が完了し、リモートから80番ポートへのアクセスを受け付けるようになります。
これで準備が完了しました。あとはAzureのストレージを利用するgemなんかを試してみると面白いかもしれません。
コメントを残す