北海道大学情報基盤センター・プロジェクトサーバー虎の巻

皆さんこんにちは。本記事は[北大情報基盤センター](http://www.iic.hokudai.ac.jp/)のアカデミッククラウドシステムのプロジェクトサーバー（VPS的なやつ）を使用してウェブサイトの公開を考えている、北大の教職員及び学生向けの記事となります。


## サーバーを借りる
まずサーバーを借りるための申請を行います。[情報基盤センターポータルページ](https://igate.hucc.hokudai.ac.jp)から、サイトの管理者の学内アカウントでログインします。クラウドサービス画面に移るので、そこから「**追加・申請**」を開き、[マニュアル](http://www.hucc.hokudai.ac.jp/hosting_server.html)を見ながら入力していきます。


### アカウントについて

責任者本人が開発を行うのであれば問題ないのですが、私は学部生で教授から個人的な依頼によるものだったので、研究室に行ってログインしてもらって、横に付き添ってもらいながら入力しました。


### ドメインについて

`yyy.xxx.hokudai.ac.jp`という様なドメインを対象のサーバーのIPアドレスに割り当てることができます。`yyy`は任意ですが、`xxx`は工学部なら`eng`、医学部なら`med`のように責任者の所属セクションである必要があります。ただし、`yyy`の下に`zzz.yyy.xxx.hokudai.ac.jp`というようにサブドメインを生やしたりはできません。使えるのはあくまで`yyy.xxx.hokudai.ac.jp`というドメインひとつだけです。


### OSについて
記事公開時のデフォルトのOSはCentOS 5.5です。新規で使うには古いですが、マニュアルにもある通りOSの再インストールは可能です。自分はUbuntu 14.04にしました。その方法については後で触れます。

ただ、CentOS 5系のサポートが2017年3月31日に終わってしまうため近いうちにシステムがアップデートされてデフォルトのOSが変わる可能性があります。使い始めてから後になってから変えるに変えづらい部分なので十分検討した上で使いはじめると良いでしょう。


### パッケージについて
パッケージが幾つかありますが、自分で導入できるのであれば上級者パッケージの標準パッケージでいいと思います（それでも初めからLAMP環境はあります）。

### サーバーレベルについて
XL/L/M/Sの4種類あります。自分が作るものは小規模なものだったのでSにしました。どれくらいの差があるのかわかりませんが、よっぽど大規模なものでなければSで良いと思います。


## 借りてから公開するまで
サーバー管理は主にCloudStack上で行います。

### ポート開放とセキュリティ
インストール直後であればたしか22は開いていて`sshd`も走っているので、申請時にアップロードした公開鍵とペアの鍵を使えばすぐにSSHで接続できるようになっています。 **ただし最初は学内からのみしか接続できません。**

[2016年1月13日に起きた不正アクセス](http://d.hatena.ne.jp/Kango/20160114/1452715282)を受けて、学内のサーバーを外部へ公開するためには別途、接続ポート例外申請が必要となりました。そのため借りてすぐに自宅からSSHしようしたり、作ったサイトを大学LAN外から閲覧することはできません。

その申請ついては、サーバーを契約後に担当者と直接連絡を取って申請書を作成することになると思います。大学側のスタンスは最低限のポート開放しか行わないという感じなので、80を0.0.0.0/0で開けるにしても、借りた直後にとりあえず開けるということはさせてくれず、サイトが完成してから改めて学内からセンター側がチェックした上で許可が降りるという流れになります。

また、CMSなどでログインを要求するようなシステムのばあいはHTTPS（443）を使用するように言われます。証明書は各自用意するか、今なら無料Let's Encryptもありますが、**学内のサーバーであればSSL証明書を無料で発行してくれます（やったぜ）**。この辺も担当者に直接連絡を取って行ってください。ちなみにSSL等の管理は管轄は情報基盤センターとは別で、[HINES](https://www.hines.hokudai.ac.jp/)が行っているようです。


### OSを入れ替える
多分本題です。簡単に流れを書くと

1. インストールしたいOSのISOイメージを用意する
2. ISOイメージをアップロードする
3. CloudStackの管理画面を開く
4. アップロードしたISOイメージを読み込む
5. 読み込んだISOイメージをマシンにマウントする
6. マシンを起動してOSをインストールする
7. XenServer Toolsを導入する

という感じなります。

### ISOイメージをアップロードする
ISOイメージをアップロードはCloudStackの管理画面からではなく、**オンラインストレージサーバ**経由となります。https://silo1.hucc.hokudai.ac.jp/ か https://silo2.hucc.hokudai.ac.jp/ のWebDAVもしくは、`malt3.hucc.hokudai.ac.jp`へのSFTPでアップロードできます。これらのログインに使うIDとパスワードは、普段使う学内のアカウントのものではなく**契約時に送られてきた書類に記載されたものです**。オンラインストレージサーバは、サーバー契約時にサーバーのレンタル費用とは別に基本料金がかかったと思いますが、それに付帯したサービスのようです。

### ISOイメージをCloudStackの管理画面から読み込む
CloudStackの管理画面に入ると、右上に「☐上級者向け」（**横の`☐`はチェックボックスです**）とあるので、これにチェックを入れて「☑上級者向け」にして上級者モードにします。すると、左のメニューに「テンプレート」という項目が現れるので、そこから「マイISO」を選択し、先ほどアップロードしたISOファイルを指定し、対応するOSタイプ選んで追加します。OSタイプに対応するものがなければ、64bitなら「Other Linux（64-bit）」、32bitなら「Other Linux（32-bit）」としておきます。ちゃんと設定されていればISOファイルを読み込みはじめるので、待ちます。

### ISOイメージをマウントする
サーバーインスタンスの設定ページ移って、右上の「アクション」の「ISOをアタッチ」を選ぶと先ほど追加したISOファイルが選べるようになっているので、それを選択します。またインスタンスも設定も対応するOSタイプに対応するものに変更しておきます。

### OSをインストールする
インスタンスを立ち上げて、Cloud Stackの仮想端末を開くとアタッチしたISOからブートされていると思うので、これで好きなOSをインストールできると思います。

### XenServer Toolsを導入する
北大のクラウドシステムはXenServerによって仮想化されているので、ゲストOSにはクライアントツールのXenServer Toolsを導入する必要があります（なくても使えなくはないけど）。インスタンス設定画面の「アクション」の「ISOをアタッチ」に「xen-pv-drv-iso」をアタッチすると、`/dev/sr0`にマウントされるので、`mount`コマンドでマウントして対応するOSのツールをインストールします。


### 注意点など
#### OSの入れ替えを行うのであれば担当者に連絡した方がいい
自分はいろいろ聞きながらやりました。保証外と言いつつもちゃんと問い合わせれば回答してくれます。特にXenServer Toolsなどは利用者からは直接見えない部分なので、確認を取った方が良いでしょう。


#### Cloud Stackの仮想端末が死ぬほど使いづらい
基本的にサーバーをいじるときはSSHすると思いますが、インストール直後はそうもいかず、Cloud Stackの仮想端末を使わざるを得ません。とにかくこれが使いにくい。どう使いにくいかと言うと、キーバインドが完全におかしい。普通に使おうとするとまず`:`（コロン）が打てません。IMEでキー配列の設定をen-usに替えたりすると打てたりするんですが、**`_`（アンダースコア）に至っては完全に入力する手段がありません。**キーバインドの詳細は[CloudStack3.0のコンソールのキーバインド](http://dsp74118.blogspot.jp/2013/02/cloudstack30.html)のページが詳しいです。

SSHさえできるようになればいいのですが、そもそも`authorized_keys`と打てないのでなかなか容易ではありません。悩んだ挙句、`/etc/ssh/sshd-config`で`PasswordAuthentication yes`として一時的にパスワードログインを有効にして、SSHから公開鍵をアップロードしました。自分の場合は研究室のPCがWindowsだけしかなく管理画面にはそこからしかログインできなかったので、もしかしたらLinuxやMacなどを使えばキーバインドの問題もないかもしれません。


## まとめ
研究費や科研費でサーバーを借りるとなると民間のサービスなどは使いづらく、また大学のサブドメインも使えないので、学内のサーバーを借りたほうがいいとなりがちです。多少割高感がありますが、最小のSレベルでもメモリ3GBあったりSSLが無料なことを考えたら意外と適正な額に思えます。デフォルトのCentOS 5は使う気になれませんが、好きなOSが入れられるのであればそれも気になりません。

本エントリが多少なりでもこれから使う人の参考になれば幸いです。