Ansible のような自動化ツールを実行してクラウド (AWS など) でインフラストラクチャ スタックを構築する場合、自動化ツールを使用してクラウド内の別のリージョン/VPC にスタックを構築するだけで十分ですか? または、自動化する方が理にかなっていますか?ツールとスクリプトをローカルに (自分のデータセンター/マシン)?
どちらも使用されているようですが、ベストプラクティスの基準があるかどうか疑問に思っていました.
Ansible のような自動化ツールを実行してクラウド (AWS など) でインフラストラクチャ スタックを構築する場合、自動化ツールを使用してクラウド内の別のリージョン/VPC にスタックを構築するだけで十分ですか? または、自動化する方が理にかなっていますか?ツールとスクリプトをローカルに (自分のデータセンター/マシン)?
どちらも使用されているようですが、ベストプラクティスの基準があるかどうか疑問に思っていました.
すべてをローカルで実行します。
プラス
マイナス
その他の考慮事項
PS: 決定的な答えがあるかどうかはわかりませんが、これが私たちの主張です。
xeraaの良い答えとは対照的に、AWS 内から可能な限り実行します。
ここから得られる本当の利点は、 Ansibleを実行する集中型のJenkinsサーバーを使用できることです(この場合、Ansible を使用した実際の AWS プロビジョニングのTerraformは、EC2 インスタンスを構成し、管理タスク用のアドホック プレイブックを実行するために使用されます)。
その後、資格情報やセキュリティ グループ/NACL を使用して、これらの Jenkins サーバーへのアクセスを制御できます。
このようにすることは、好きなものを構築したり、好きなものを破壊したりできる何らかの形式の資格情報を持つ人々の数を制御できることを意味します。
理想的には、IAM EC2 インスタンス ロールを介して Jenkins サーバーに認証情報を提供するだけで済みますが、まだ完全には達成されていません。
このことの 1 つの真の利点は、ほぼ独占的に Windows を使用しているフロント ライン/セカンド ラインのサポート担当者が、夜中に物事を管理するための優れた Web GUI にアクセスし、実行するために特別にアクセスできる Jenkins ジョブを実行できることです。サーバー/サービスの再起動や、VPC の一部の再構築などを行います。
開発者が自分のマシンからアクセスできる別の「dev」アカウントがあり、Ansible (および Terraform) コード ベースを開発する際に、そのコード ベースがテスト環境および実稼働環境で使用される前に、ここで構築します。