私は、chef serverを使用して、すべてのサーバーをscmのchefの制御下に置く過程にあります。それは素晴らしい働きをします....私はそれが大好きです。私は禅を手に入れ始めていると思いますが、それでももっと理解が必要です。
以前、ec2でamiをビルドし、常にamiを再構築していましたが、少なくとも高速で起動します。
シェフと一緒に、私は収集します、常にベアボーンインスタンスから始めて、あなたのamiを構築するためにナイフを使用することです。
amiの起動には約20分かかりますが、シェフのインストールには約5〜6分かかります。
私が抱えている問題は、負荷分散の下で4台のサーバー、2台のredis、マスターとスレーブ、および2台のnginxサーバーを実行していることです。
リモートマシンには、Pythonスクリプトがあり、Redisマスターまたはスレーブがダウンしているかどうかを常にチェックし、nginxサーバーが正常である場合はロードバランサーをチェックしています。
さて、シェフの下で、サーバーがダウンした場合、私はさらに15分以上待たなければなりません。ここで、事前に構築されたamiの下では、時間の長さは新しいインスタンスを起動する時間でした。
私が持っている質問は次のとおりです。
1)ナイフと対話するためのPython APIはありますか?Pythonでは、botoを使用してamiを起動しました。今、私はナイフを実行するためにポペンを使用する必要があります。私のコードは、amiがいつ稼働しているかを知ることで、さらに処理を続行することに依存しています。
2)シェフクライアントがプリインストールされているamiを使用するのがベストプラクティスですか?それは約6ミニッツを剃ります。
3)最後に、私は他に何が欠けていますか?どんなアドバイスも素晴らしいでしょう。