こんちゃ、パッションの伝道師、鰯です。

昨年末ぐらいに、AWSから新世代の数値計算向けEC2インスタンスとして発表されてから、大人気の新世代インスタンスですが、それもそのはず、新しいインスタンスは前世代インスタンスよりパフォーマンスが良く、特に、Webアプリケーションには最適なインスタンスだと思います。

自分は、c3系のインスタンスが発表された時、c3というプレフィックスから、自分には関係ないなんて思って、詳細を確認してなかったのですが、よくよく見たら、超絶コスパの良い、素敵インスタンスではありませんかっ!!

特に弊社ではWebアプリケーションで、c1.medium をメインに使っているのですが、新たに発表された、c3.large は、c1.medium と数セントしか変わらずなのに、CPUもメモリもディスクも、とにかく速いっ!速いっ!

というわけで、さっそく、メインのインスタンスタイプを、c3.largeに変えていきましょうということなんですが、今まで、c1.medium では、エフェメラルディスクが、一つだったのですが、新たな c3.large は、SSD 16GB x 2 の構成なので、これをいい感じに使うために、RAID0 を組もうということで、エフェメラルストレージをRAID0 にする記事です。

結論から

ドキュメント読めっ!!

まずはカジュアルに RAID をはじめる

検証環境: Amazon Linux 2013.09

1. マネジメントコンソールからインスタンスストレージを装備!!

Step4 の『Add Strage』で、『Add New Volume』で、2つのインスタンスストレージを追加

ephemeral-storage

起動後、ログインして確認すると、起動直後はこんな感じになっていると思います。

あれ?1つしかない…。後々、知ったのですが、これは cloud-init にデフォルトで設定されていて、オプションが有効だと、起動時に自動でエフェメラルドライブをマウントしてくれます、っても、1つだけですが。。

デバイスを確認すると、ちゃんと、sdb と sdc もあります。ちなみに、なんで、xvdb とか、xvda1 とかなってるの?ってことについては、Xenの仕様が、そのまま反映されてるだけ。それから、この xvd というプレフィックスですが、Xen Virtual block Device の略だそうです。

2. RAID0 を構築する

まずは、RAID を作成するため、一旦、/dev/xvdb は、unmountします。

っで、実際の RAID0 作成のコマンドについては、以下を参考にそのままの手順なので、省略しちゃいます。。

参考: Amazon EC2でEphemeral StoreをRAID0構成にしてディスクI/O性能を上げる

3. ephemeral0 が…

っで、本題は、RAID0 構築の話しではなく、背景から説明しますと、弊社では、Ansible/Packer を使って、AMI を構築して、AutoScaling とかしてるんですが、、。

RAID0 の設定(正確には rc.local にマウント作成を入れた)を、Ansible に追加して、AMI から何度起動しても、初期状態である、/media/ephemeral0 がマウントされていて、RAID0 になってくれない…。

試行錯誤して、途中、インスタンス起動時の 『User Data』(cloud-initの設定)で、以下のリンク先のような内容を入れれば良いみたいな話しを確認したのですが、この設定では何も変わりませんでした…。

How can I disable cloud-init? – Ask Ubuntu

んで、リトライすること10回ほど…

もう無理っすってところで、『助けてぇ〜〜〜サポートさまぁぁ』ということで、AWSのサポートに確認を投げると、、、。

/etc/sysconfig/cloudinit の、CONFIG_MOUNTS を、 “no” に設定という話し。

『なにーーーーーーっ!!』そんな設定があったとは…。

そして、”sysconfig/cloudinit” で、ググってみると、AWSのドキュメントが!?、、、、。

Amazon Linux AMI

ほんと、すみません、こんな、くだらない質問して、ほんと、すみません、すみません、すみません。。。。

あわせて読みたい記事