2012年12月18日火曜日

逆襲の"SUZ-LAB AMI"!

スズキです。

AWS Advent Calendar 2012」の12/17(月)分です。
現在18日のようですが、まだ寝てないので、気分は17日の35時ということで...
(今回はコードも図も無い文字ばかりの「らしくない」エントリです...)

純正 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"の導入が、この連動を加速させると思っています。


以上、AWSバカのオ◯ニーでした...
--------
http://www.suz-lab.com

0 コメント: