プログラマでありたい

おっさんになっても、プログラマでありつづけたい

AWSのEC2でAmazon Linux AMIを使うかどうか?


 最近、微妙に気になっているテーマがあります。EC2でインスタンスを使う際に、Amazon Linux AMIを使うかどうかという点です。何を言っているのだ、お前というような悩みなので背景を簡単に書いておきます。

Amazon Linux AMIを使わないようにしようかなと思った理由



 そもそものキッカケは、Chefを使うようになったことです。Chefで環境をコードで記述するようになると、ローカルの開発環境であろうが、検証・本番環境でも基本的にはコマンド1つで構築できます。しかし、気が付いてしまいました。ローカルの開発環境に、Amazon Linuxをインストール出来ないことに。このことはChefを使い出すと同時に、VirtualBox+Vagrantを使いだしたことで顕著に感じるようになりました。
 また私の所属しているチームの特性上、様々なプロジェクトに関与してプラットフォームもAWSだけではなくオンプレや他のクラウドも色々と扱います。そうなると、AWSでしか使えないAmazon Linux AMI向けのレシピを書くのは効率が悪いのではと思うようになりました。RHELやCentOSに集約したほうが良いのかなぁと考え始めたのが発端です。

Amazon Linux AMIのリスク



 そんな中で色々なAWSギークな人に会う度に、ディストリビューションは何を使っていますかと聞いて回っておりました。返ってきた返事は、会社の事業や本人の考え方で多種多様でした。そんな中で一番印象的だったのは、日本で有数のChefとPHP使いの人の「Amazon Linux AMIは使わない。ロックイン・リスクが高い」との意見でした。ちなみにに、では何を使っていますかと聞くと、「Gentoo一択。余計なモノは一切ないし、必要であればコンパイルすれば良い」という勇ましい答えを頂きました。

Amazon Linux AMIを使いたい理由



 一方で、私は何でAmazon Linux AMIを使いたいのでしょうか?突き詰めて考えたことは無かったのですが、考えてみると2点程あるようです。1点目は、安心感です。元々使い出したキッカケは、2〜3年ほど前(?)にCentOSがゴタゴタして、継続性が危ぶまれていた時です。その時に颯爽と現れたのがAmazon Linux AMIです。母体が企業ベースということもあり、安定して管理され随時バージョンアップされている様を見て、無料でこれはありがたいなと安心した覚えがあります。
 次の理由は使いやすさ。やはりAWS用に開発されたOSということもありEC2で使うには一番使いやすいです。AWSの管理ツールがデフォルトで入っていることや、適切なパッケージが選択されていること、また更新も速いです。あまりお世話になることは無いのですが、サポートに説明する時も恐らく楽でしょう。

まとめ



 考え中ということで全くまとまっていませんが、Amazon Linux AMIを使うかどうか悩んでここ半年くらい考えていることです。RHEL/CentOSに回帰するのも良いし、実は、Chefをもう少し使い込んでRHEL/CentOSとAmazon Linux AMIをもっと透過的に使えるレシピを掛けば解決するのかもという気もしています。(困っているのは、パッケージのバージョン指定とかなので)
 そんなこんなをMarketPlaceにCentOSが出たことを知って急に思い出しました。皆さんどうしていますか?是非、ご意見聞かせてください。


See Also:
自律的なシステムを目指して!!第2回 JAWS−UG 神戸 開発運用の現場でのChef活用


参照:
CoreOS (alpha) on AWS Marketplace