とあるはてな社員の日記 - まっさらなサーバを30分で本番投入できるようにする
はてなスターの投入時のバックエンド10台追加が30分程度で完了しちゃう件。
次の日に、バックエンドのサーバを一気に10台近くまで増やして、おおむね快適に使える状態になっていると思います。この時に、新しいサーバをまっさらな状態から、だいたい30分程度で本番投入することができていました。これを、どのように実現したのかを軽く紹介したいと思います。
通常こんな設定がいりますよね、って内容です。まぁフロントエンドじゃなかったらFireWall設定は不要ですよね。
サーバをバックエンドの本番に投入するまでには、おおまかに以下のことが必要です。
- ハードの組み立て・設置
- OSのインストール
- アプリケーションの動作に必要なライブラリ等のインストール・設定
- 監視などインフラの一部として動作するための設定
- アプリケーションのデプロイ
- ロードバランサの設定への追加
今回のサーバ増設では、ハードの設置終了から、本番に投入されるまで、だいたい30分程度、OSインストールの終了後からは、だいたい10分程度で終えることができました。
ここをきちんと設定してると、ものすごく楽ですね。
OSのインストールは、キックスタートで、BIOS設定と最初のトリガーさえ与えれた後は、全てネットワーク経由で済むように自動化されています。ここも大量のパッケージをインストールするので、それなりに時間がかかります。
Puppetで、ライブラリとか監視インフラとかやられているそうです。面白そうだなぁ。
aperboy&co.の人が書いた記事があったなぁ↓
アプリケーションのデプロイは、ずいぶん前から、switchtower(現capistrano)で、ほぼコマンド一発で済んでおり、これはすぐに終わります。
残りの「アプリケーションの動作に必要なライブラリ等のインストール・設定」と「監視などインフラの一部として動作するための設定」の部分は、以前は相当の時間と人手がかかっていた部分なのでした。が、「なんでもrpmパッケージ化 & yum で一発インストール」と最近、話題に登っていた「設定自動化ツールpuppet」を導入することで、ほぼ自動化されるようになり、大幅な時間短縮ができるようになりました。