クラウドフォーメーションテンプレートを整理するベストプラクティスは何ですか?クラウドフォーメーションテンプレートを整理するにはどうすればいいですか?
たとえば、他のプロジェクト間で共有されるセキュリティグループがあるとします。 (たとえば、ポート80 e 22上の接続のみを受け入れるsg)。
プロジェクトごとにSGを維持するのがベストプラクティスですか?または、SGのみを管理する単一のクラウドフォーメーションテンプレートを作成しますか?
クラウドフォーメーションテンプレートを整理するベストプラクティスは何ですか?クラウドフォーメーションテンプレートを整理するにはどうすればいいですか?
たとえば、他のプロジェクト間で共有されるセキュリティグループがあるとします。 (たとえば、ポート80 e 22上の接続のみを受け入れるsg)。
プロジェクトごとにSGを維持するのがベストプラクティスですか?または、SGのみを管理する単一のクラウドフォーメーションテンプレートを作成しますか?
AWS CloudFormationのベストプラクティス[1]ガイドは優れたリソースです。
そのページの説明に従って、ネストされたスタックを作成することをお勧めします。複数のプロジェクトで使用されるセキュリティグループは、おそらくVPC、サブネット、およびルートとともに低レベルのスタックに存在する必要があります。プロジェクトは、下位のスタックに記述されているリソースを構築する上位のスタックに存在することができます。これを決定するのを助けるために、各リソースのライフサイクルを考慮してください。リソースXはリソースYなしで存在できますか?そうでなければ、おそらくリソースXは下位レベルのスタックに定義されるべきです。
複数のチームがある場合は、それも考慮してください。あなたのセキュリティ/ネットワークチームは、DevOpsチームが必要としないリソースにアクセスする必要があります。
[1] http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html
をプロジェクト間でセキュリティグループを共有するかどうかは、単純性と分離とのトレードオフです。プロジェクト間で1つのセキュリティグループを共有することで、プロジェクトごとに小さなテンプレートを作成し、それらをまとめて管理することができます。スタックごとに1つを持つことで、他のプロジェクトに影響を与えることなく1つのプロジェクトの設定を変更することができます。
少数のセキュリティグループをプロジェクト間で共有することをお勧めします。私はそれらをアカウント全体で共有されているリソース用のCloudFormationスタックに入れました。以来、サブネット、ルーティング、ゲートウェイ
このスタックは他のすべてに依存し、別々に管理されます。プロジェクトテンプレートを作成すると、グローバルスタックからの出力がパラメータとして渡されます。