84

「プリベーク」されていない AMI EC2 インスタンスを使用する予定です。つまり、スピンアップすると、AWS Linux のベア インストールになります。ブートストラップ プロセスは、python、tomcat など、必要なさまざまなインストールを取り込みます。最小で 3 つのインスタンス、最大で 8 つのインスタンスがあります。

これらの要件を考えると、Amazon Cloud Formation (CloudInit) を使用するよりも Puppet/Chef を使用する方が便利ですか?

私が見ることができる最善の方法は、Puppet を使用した場合、スクリプトと比べて何が起こっているかを確認する監査が容易な宣言型プログラミングを使用できることです。また、CloudInit には 16k のスクリプト サイズ制限があり、これに遭遇する場合と遭遇しない場合があります。

CloudInit から Puppet または Chef に移行した人はいますか? 特定の理由で、ここで私の質問に答えてください。

4

4 に答える 4

83

CloudInitに勝る利点はありますか?はい、絶対に、それらの多く!

もちろん、CloudInitスクリプトを実行してサーバーをプロビジョニングすると、上から下への実行を記述できます。しかし、構成ファイルを変更したり、ユーザーを追加したり、パッケージを更新したり、新しいパッケージをインストールしたりする必要がある場合はどうなりますか?サーバーにログインしたり、そのためのスクリプトを記述したりすることになり、必然的にサーバーの状態が不調和になります。

CloudInitは構成管理ではありません。構成管理ソフトウェアの使用を開始する場合は、クラウドinitを1つのタスクに使用します。それは、Puppet /Chef/その他のエージェントをブートストラップすることです。

Puppetは、パッケージのインストールの自動化、sshキーのセットアップ、Tomcatヒープの調整を支援するだけではありません。それは物事の状態を保証します。開発者が午前3時にJavaアプリのトラブルシューティングを行い、Tomcat構成を変更すると、Puppetはそれを元に戻します。すべてまたはノードのグループのPythonのバージョンをすばやく変更できます。誰かが別のバージョンをインストールすると、Puppetはそれを元に戻します。

アプリケーションスタックが変更され、RabbitMQ、Jetty、または新しいRDBMSなどの使用を開始すると、変更を数十または数千のサーバーに簡単にテストして展開できます。

バックエンドレポート、監査、セキュリティコンプライアンスなど、構成管理ソフトウェアを使用する理由は他にもたくさんあります。

于 2012-08-17T00:50:56.537 に答える
64

構成管理の全体的なポイントは、マシンを予測可能かつ一貫して起動することです。CloudFormationとcloudinitは、純粋にAWSに限定されている場合に最適です(ただし、CloudFormationテンプレートのデバッグは悲惨な経験です)が、データセンターリソースとAWSの両方を使用するアプリケーション、ローカルテスト環境、または開発マシンについてはどうでしょうか。

純粋にAWSに存在する場合は、cloudinitだけで解決できると思いますが、どのような規模のアプリケーションでも現実的であるとは確信していません(たとえば、Netflixは、作成したOSSテクノロジーを使用してAMIをプリベイクしますそして世界にリリースされました;詳細についてはこのビデオを検討してください)。高可用性アプリケーションはトランスリージョンであり、多くの場合VPCに基づいており、VPNを介してデータセンターにバックアップする傾向があります。これは、デモ、ステージング、テスト、または開発環境にも影響しません。プロビジョニングマシンを担当している人として、私が最後にやりたいことは、作業を繰り返すか、複数のプロビジョニング方法のデバッグに行き詰まることです。

したがって、シェフまたは人形。AWSでも、データセンターと同じように機能します。また、Vagrantを実行している開発マシンでも、時々必要なデモ環境と同じように機能します。cloudinitとChefまたはPuppetの両方を維持するよりも、cloudinitからChefまたはPuppetを起動したいです。

于 2012-08-17T12:08:04.830 に答える
5

使い捨てサーバーの場合、たとえば自動スケーリング グループの背後で実行している場合、おそらく cloudinit で十分だと思います。Linux シェル スクリプトまたは Windows PowerShell スクリプトでうまくいくはずです。

受け入れられた回答で述べたように、おそらくシェフ、パペット、またはドッカーを管理することを計画している長期実行サーバーの場合、利点が得られる可能性があります。それらを使用しても利点が見られない場合は、おそらくそのツールは必要ありません。

于 2015-02-04T20:09:24.537 に答える