cloudpack カスタマイズなCentOS 6.6 HVM AMI Imageを作りました

# cloudpack カスタマイズなCentOS 6.6 HVM AMI Imageを作りました #

ふと思うところがあり、スクラッチからカスタマイズ済みのCentOS HVM向けAMIを作ってみました。

AWS Marketplaceで配布されるイメージは、話ではRootボリュームのAttach / Dettachに難があるとかで、万が一Rootボリュームの起動にコケたりする際の障害データの回収など大変らしいので、それなりには役に立つかもしれません。

![CLP CentOS 6.6 HVM](http://quickpress.blob.core.windows.net/kzmx/2015/01/CLP_CentOS66.png)

| 名称 | AMI ID | Root device type | Virtualization type | Description |
|:-----------|:------------|:------------|:------------|:------------|
| CLP CentOS 6.6 HVM |  ami-28abbc29 | ebs | hvm | Cloudpack's customized CentOS 6.6 AMI Image. |

Community AMIsから検索で「**cloudpack**」とキーワードを入れて検索してもらえば見つかるでしょう。

## At your own risk!・自己責任 ##

言わずもがなですが「**At your own risk!・自己責任**」で使ってください。
商用運用などのサポートが必要になりましたら、**cloudpack**([http://cloudpack.jp/](http://cloudpack.jp/ "cloudpack"))へ、ご依頼くださいませ。

## カスタマイズされている点 ##

カスタマイズといっても、後にカスタマイズしやすいように、シンプルで極力ミニマルなバニラ状態で構成をしています。

### SELinux ###

無効化されています、必要な方は/etc/selinux/configで編集し、enabledにして再起動してください。

### IPv6 ###
無効化しています。

	net.ipv6.conf.all.disable_ipv6 = 1
	net.ipv6.conf.default.disable_ipv6 = 1

### メモリのswap ###
メモリを使い切らないとswapしません

	vm.swappiness = 0

### 他ファイルやネットワーク周りのパラメータ ###

	kernel.sem = 250 32000 100 128
	fs.file-max = 6815744
	net.ipv4.ip_local_port_range = 9000 65500
	net.core.rmem_default = 262144
	net.core.rmem_max = 4194304
	net.core.wmem_default = 262144
	net.core.wmem_max = 1048576
	fs.aio-max-nr = 1048576

### リポジトリ ###
CentOS-Baseとepelが有効になっています。

### SR/IOV ###
CentOS6.6からカーネルにはSR-IOVドライバが含まれていた為、rpmによる追加ドライバのインストールなどを行っていません。
よって、以下の設定のみ行っています。稼働するかは**未検証**ですので、稼働された方は是非ご連絡いただけますと僕が喜びます。

	cat /etc/modprobe.d/ixgbevf.conf
	options ixgbevf InterruptThrottleRate=1,1,1,1,1,1,1,1 

## cloud-init ##

このイメージはcloud-initによって、以下の作業を自動的に行ってくれます。
カスタマイズされたい方は、必要に応じて/etc/cloud/cloud.cfgを修正してください。

### SSH ###
SSH(TCP 22)でログインが可能です。
以下の二つのアカウントに同一のSSHキーが自動配備され、ログイン可能になります。
また、一般ユーザーの場合はsudoでの権利昇格が可能です。

| 名称 | 権限 | ホームディレクトリ | SSHキー |
|:-----------|:------------|:------------|:------------|
| root | 管理者 | /root | 起動時に指定したSSHキーペア |
| maint | 一般ユーザ | /home/maint | 起動時に指定したSSHキーペア |

### root volumeの物理伸張および論理伸張 ###

このイメージは8GBのEBSボリュームで構成されたものですが、Root volumeのサイズ変更に対応しています。

例えば、起動時にRootVolume100GBで起動した場合は以下の手順で自動的にディスク容量が伸張されます。その場合は、パーティションテーブルの変更を把握する為、一度は再起動を行ってください。

1.初回起動時 パーティションを最大化(growpart)
2.パーティションテーブル認識の為に再起動
3.拡張されたパーティションテーブルに合わせ、論理ボリュームが伸張(resize2fs)

### インスタンスストアのマウント ###

一部のEC2(HVM)では、Instance Store（Ephemeral Disk）という、高速なSSDディスクを使うことができます。
このイメージでは、Instance Storeは利用できる場合に自動でマウントを行います。
また、Instance Storeが0本の場合でも、4本未満の場合でも問題なく起動します。

| 名称 | ディスクデバイス | マウント先 |
|:-----------|:------------|:------------|
| Instance Store 0 | /dev/xvdb (/dev/ephemeral0) | SWAPパーティションにすべて割り当て |
| Instance Store 1 | /dev/xvdc (/dev/ephemeral1) | /media/ephemeral1 |
| Instance Store 2 | /dev/xvdd (/dev/ephemeral2) | /media/ephemeral2 |
| Instance Store 3 | /dev/xvde (/dev/ephemeral3) | /media/ephemeral3 |

Instance Store 0が利用可能な場合は、SWAPパーティションを準備し、SWAPに割り当てます。
SWAP発生時などに、EBSへアクセスが発生し、その際の課金を回避する為にあります。

なお、Ephemeral Diskは非永続化領域であり、インスタンスのStart/Stopによってデータが消去されますので(Rebootは大丈夫)、注意してください。
キャッシュ領域や一時的なデータ領域として利用するのが良いと思います。

### 時刻同期 ###

chronyがデフォルトで起動するようになっており、起動時に同期します。
なお、表記タイムゾーンはAsia/Tokyo(JST)となっています。

### Locale ###

ja_JP.UTF-8となっています。日本語でメッセージが表示されます、SSHなどではUTF-8でログインしてください。

### リポジトリやパッケージのアップデート ###

アップデートは勝手に行います。