○純正 CentOS AMI

先日、「マーケットプレイス」に純正のCentOS AMIが登場しました。

そして、AWSに足りない機能を独自に実装していて、それ以上の機能をAWSにプロダクト/サービス/アップデート
としてリリースされてしまったエンジニア達の気持ちを垣間見ました。

しかし、実際に純正 CentOS AMIを試してみると、文字通り「純」なCentOSでした。
つまり、AWS上で便利に使えるような拡張はされておらず、必要最低限的なパッケージしかインストールされて
いないようでした。

実は、SUZ-LAB CentOS AMIは下記の二つの相反するコンセプトで作成していました。

  • 誰もが癖を意識することんなく使えるように必要最適限のパッケージのみで提供
  • AWS上(cloudpack)でよく使う定番機能(パッケージ)は組み込み済み

上記はとても矛盾を含んでいるので、特にAWS上の定番機能の組み込みは、cloudpackのメンバーには物足りず、
独自で更に拡張したAMIを作るということもしてました。

そこで、「必要最適限のパッケージのみで提供」は「純正」に任せ、「SUZ-LAB」はより、AWS上(cloudpack)で
利用する上での定番機能を盛り込んだものにしていくことにしました。

本当のライバルはAmazon Linuxと勝手に思ってます。

これで、「純正」との住み分けはできたのですが、上記の「AWS上で利用する上での定番機能を盛り込んだもの」で
考えると、むしろ、対抗するのはAmazon Linuxとなります。

では「彼を知り、己を知れば、百戦危うからず」、Amazon Linuxの特徴をまとめてみます。

  • AWSがサポート(プレミアムサポートも同様)
    • これは強力です。 時折、なぜAmazon Linux使っていないのかという気持ちにさせられます。
  • cloud-initや各種コマンドラインツール等、プリインストール済み
  • ENIの動的アタッチに対応(ネットワークも勝手に設定)していたり、CloudFormation連動用のスクリプトも
    搭載されていたと思います。
    • 間違ってたら指摘してもらえると嬉しいです。
  • ただし、Amazon Linux対応の商用プロダクトは少ないのではないでしょうか。
    • しかし、トレンドマイクロ製品等続々と対応していっているように思います。

サポートに関しては、直接のサポートは無理ですが、実質「SUZ-LAB AMI」使った多くのTipsを本ブログで
紹介しているので、「直接サポート VS ブログのTips」でどこまで食らいついていけるか挑戦してみたいと
思います。

商用プロダクトのサポートに関してですが、CentOSは天下のRHELクローンです。
多くの商用プロダクトはRHELに対応していると思います。
そして、ついでにCentOSも対応しているプロダクトもよく見かけます。
この部分は、まだSUZ-LAB AMIの方が有利な気がします。
引き続き「虎の威を借る狐」作戦で進めていきます。

AWS上(cloudpack)での定番機能

現状、SUZ-LAB AMIは下記の特徴があると思います。
(特長ではありません)

  • 独自カーネル(yumでアップデートできます)
    • 他のものも最近は同様
  • それでも必要最低限パッケージに近い
    • telnetやtcpdumpも入ってない
  • yumリポジトリは様々なものを登録
    • 実際の登録済みリポジトリは後述
  • 監視はNagiosを想定(NRPEがインストール済み)
    • 当初は他の監視も考慮して入れてなかったのですが業務上、限界に
  • Fluentdもインストール済み
    • ログ等をS3にアーカイブするのに必要かと

尚、yumリポジトリは下記のようになります。

# yum repolist
...
repo id repo name status
atomic CentOS / Red Hat Enterprise Linux 6 - atomicrockett 679
base CentOS-6 - Base 6,346
cr CentOS-6 - CR 0
elrepo ELRepo.org Community Enterprise Linux Repository - 209
epel Extra Packages for Enterprise Linux 6 - x86_64 8,218
extras CentOS-6 - Extras 17
remi Les RPM de remi pour Enterprise Linux 6 - x86_64 864
rpmforge RHEL 6 - RPMforge.net - dag 4,457
treasuredata TreasureData 20
updates CentOS-6 - Updates 1,018
repolist: 21,828

(無作為に登録してるわけではありません)

そして、純正AMIの登場で拡張に対する枷が外れた今、次のような仕組みを入れていく予定です。

cloud-initの導入

yumでインストールすることを知ったので導入します。

# yum info cloud-init
...
Available Packages
Name : cloud-init
Arch : noarch
Version : 0.6.3
Release : 0.7.bzr532.el6
Size : 162 k
Repo : epel
Summary : Cloud instance init scripts
URL : http://launchpad.net/cloud-init
License : GPLv3
Description : Cloud-init is a set of init scripts for cloud instances.
: Cloud instances need special scripts to run during
: initialization to retrieve and install ssh keys and to
: let the user run various scripts.

cloud-initが読み込むUser Dataのテンプレートも、いくつか用意する予定です。

CDPの積極的な組み込み

まずは、「Web Storage Archiveパターン」になります。

FluentdでWeb Storage Archiveパターン

今後も、様々なパターンを適用していく予定です。

SUZ-LAB Formationとの連動

「CDP Advent Calendar 2012」の方で紹介したCloudFormationのテンプレート(自称 SUZ-LAB Formation)の
基本AMIになるように考えています。

CDP Templates

前述したcloud-initの導入が、この連動を加速させると思っています。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら