前回のエントリの続きです。SoftLayer の一ヶ月無料トライアルに契約して、サーバーインスタンスを確認するまでの作業は前回のエントリを参照してください。なお今回のエントリ自体は SoftLayer に特化した部分はほとんどなく、どちらかというと自分の開発環境構築備忘録の色が強いです。でも、そういう用途にも使えるだけのクラウド環境が SoftLayer から提供されている、と理解していただければ。
まずおさらいとして、提供されたクラウド環境のスペックはこんな感じです(結構よさげ)。本来なら月額$50ですが、1ヶ月間は無料お試し期間になります:
CPU: 1 x 2.0 GHz Core
メモリ: 1024MB
システムディスク: 25GB
スワップディスク: 2GB
ネットワーク: パブリック/プライベート共 100Mbps
今回は起動した CentOS 6.0(minimal install/64bit) の環境を自分の目的用にカスタマイズする手順を晒すものです。まあ SoftLayer 独自の部分はありません。初めから LAMP 環境を選択して起動して特に追加設定が不要の人や、普段から CentOS の導入を行っている人にはありきたりでつまらない内容かもしれません。
まずは前回の最後と同様 ssh でサーバーに接続します。自分は Windows 環境から PuTTY を使っています。鍵ファイルなどは不要で、直接 root でログインできます。root の初期パスワードはポータルサイトから確認可能です。
賛否両論あるとは思いますが、個人的にはこの「鍵ファイルが不要」で「SSHアクセス可能」はポイント高いです。実運用サーバーだと事情は変わってくると思いますが、開発用サーバーとして使う視点では自由度が高くて手軽なクラウド環境というのはやはり使い勝手いいです。
で、最初に何をするべきかというと・・・とりあえずカーネルやライブラリを最新のものにしておきましょう。yum を使って更新します:
# yum -y update
このコマンドを実行するとカーネルの更新が行われる(と思う)ので、一度再起動して新しいカーネルでロードします:
# shutdown -r now
再起動後、ここでアプリケーションサーバーやらデータベースやらを導入してもいいのですが、せっかく素の CentOS を借りることができたので、EC2 の Amazon Linux などでは敷居の高い環境を構築してみます。まずは X Window System 環境と日本語環境を導入します:
# yum -y groupinstall "X Window System" "Desktop"
# yum -y groupinstall "Japanese Support"
更にシステムロケールを変更します。/etc/sysconfig/i18n を編集して、LANG="ja_JP.UTF-8" に変更して保存します。
せっかく X Window System を導入したので VNC 環境も整えてしまいましょう。tigervnc サーバーを導入します:
# yum -y install tigervnc-server
一般的には VNC は一般ユーザー権限で実行するのですが root 権限で実行できないこともありません。必ずしもおススメしませんが(後々の説明が楽なので・・) root 権限で VNC サーバーを 5901 番ポートで実行する場合の方法を紹介します。tigervnc サーバー導入後に /etc/sysconfig/vncservers を編集します:
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp"
更に VNC 接続用のパスワードを設定します:
# vncpasswd
そのまま一度 vnc サーバーを起動して設定ファイル(~/.vnc/xstartup)を初期状態で生成します:
# /etc/init.d/vncserver start
生成された設定ファイルを編集します。具体的には GNOME のセッションをそのまま利用するように変更します:
#!/bin/sh
(最初に環境変数 LANG を変更)
export LANG="ja_JP.UTF-8"
:
:
(最後の部分を変更)
# xterm -geometory 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# twm &
gnome-session &
最後に VNC サーバーを再起動し、またシステムの起動と併せて実行されるように指定します:
# /etc/init.d/vncserver restart
# chkconfig vncserver on
これで VNC サーバー環境が整いました。PuTTY のような SSH ターミナルアプリだけでなく、VNC Viewer などの VNC クライアントからも接続できるようになったはずです。上記の設定を行った場合は VNC クライアントからの接続先 VNC サーバーとして(IPアドレス:1)となるように、最後に ":1" を付与して接続してください。
パスワードを聞かれるので vncpasswd で指定したパスワードを指定するとクラウドサーバーの X Window System 環境にアクセスできます。クラウドでデスクトップ環境!! それなりのスペックを持った仮想環境なので、ここまでできてしまえば LibreOffice とかも入れて立派なクラウド・デスクトップとしても使えそうです(今回はやりませんけど):
自分の場合はここから更に開発環境としてのカスタマイズを加えます。ウィンドウシステムが使えるようになったので Web アプリの開発/テスト用に FireFox ブラウザを入れておきましょう。上部メニューから アプリケーション - システムツール - 端末 を選択してGNOMEのターミナルを開き、以下のコマンドを入力します:
# yum -y install firefox
データベースは好みのものを。MySQL とかでもよかったのですが、最近はコミュニティの活発な MariaDB を使ってます。まずは /etc/yum.repo.d/mariadb.repo を以下の内容で新規に作成して yum のレポジトリを追加します(MariaDB 10.0.4 の、64bit 版 CentOS6 向け設定です):
[mariadb]
name=MariaDB
baseurl=http://yum.mariadb.org/10.0.4/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enable=1
リポジトリの追加ができたら、おなじみの yum で MariaDB をインストール:
# yum -y install MariaDB-server MariaDB-client
JDK(Java)環境も、Oracle などから Linux 版をダウンロードして導入してもいいですが、OpenJDK であれば以下のコマンドで導入されます:
# yum -y install java-1.7.0-openjdk-devel
PHP の場合だとこんな感じ:
# yum -y install php php-mbstring php-mysql
必要ならば Apache HTTPD サーバーも導入しちゃいましょう:
# yum -y install httpd
(2013/10/10 追記)
Java アプリケーションサーバーを忘れていました。Apache Tomcat あたりを入れておきます:
# yum -y install tomcat6
プログラミング言語が導入されたので Eclipse などの統合開発環境もインストールする準備が整いました。最新版の Eclipse を使う場合は上記で導入した FireFox を使って公式サイトからダウンロード&インストールの必要がありますが、少し古いものでもよければ以下のコマンドで導入できます:
# yum -y install eclipse
Eclipse までは必要ないけど vi ではないテキストエディタがほしい、という場合は最近流行りの Sublime Text 2 あたりがいいかも。こちらは公式サイトからダウンロード&展開します。ダウンロードファイル名が "Sublime Text 2.0.2.tar.bz2" であればコマンドはこんな感じ:
# tar vxjf Sublime\ Text\ 2.0.2.tar.bz2
# mv Sublime\ Text\ 2 /opt
# ln -s /opt/Sublime\ Text\ 2/sublime_text /usr/bin/sublime
これでターミナルなどのコマンドラインから "sublime &" と入力すれば起動するようになりました。
最後に壁紙も変えて、今のクラウド開発環境はこんな感じになりました:
サーバー類の自動起動を含めた設定変更などは省略していますが、おおまかにはこんな感じ。単なる開発用サーバーとしてだけでなく、X Window System が手軽に導入できることで開発用デスクトップとしても使えそうなクラウド環境が構築できました。スペックの異なる環境の比較にはなりますが、これまで Amazon Linux のマイクロインスタンスで使っていた開発サーバーにプラスアルファして環境を移行してみたのですが、アクセスの容易さも含めて快適に使えています。一か月ほど今開発中のアプリケーション用に使わせていただくつもりです。