いまやAWSアカウントは環境ごと、または組織ごとに作成して運用するマルチアカウント構成が基本になっています。
改めて分割することで得られるメリットをまとめました。
分割するメリット
環境ごとのコストを把握しやすくなる
使用したAWSリソース分の請求はAWSアカウントごとに行われるので、環境ごとにコストがどれだけかかっているかを容易に把握・管理できるようになります。
誤操作による事故を防ぐ
例えば開発環境用と本番環境それぞれのEC2インスタンスが同じアカウントに存在する状況で開発のEC2だけを停止したい場合、
コンソールから選択を誤って本番環境のEC2を停止してしまう...のようなオペレーションミスが起こる可能性を下げることができます。
また権限管理もしやすくなります。
アカウントごとのリソース数制限による事故を防ぐ
AWSでは1アカウントで作成できるリソース数に上限が設けられています。
これはサービスクォータ
と呼ばれ、誤操作等で大量のリソースを作ってしまい大支出になるのを防ぐための仕組みです。
(サービスごとに上限値が設けられていて、一部サービスは申請することで引き上げることが可能です。)
アカウントを分けることで「開発環境のリソースの作りすぎで本番環境のリソースが作れない」のような事故から防ぐことができます。
マルチアカウント構成に関連するAWSサービス
AWS Organization
マルチアカウント構成を採用する場合、AWS Organizationを活用することで以下のメリットを得られます。
- 全てのアカウントの請求情報を1カ所で管理することができます
- アカウントごとのコストを確認することができます
- 複数のアカウントを組織と呼ばれるグループでまとめて一括で権限を設定することができます
AWS IAM アイデンティティセンター
AWS IAM アイデンティティセンター(旧AWS SSO)を活用することで、アカウントへログインするためのID、パスワードを1カ所で管理できます。
Customize AWS Console Header(Chrome拡張機能)
マルチアカウント構成で分けているとはいえ、誤って意図しないアカウントのコンソール上で誤操作を起こすリスクが存在します。
この拡張機能を使うことでアカウントごとのAWSコンソールのヘッダに好きな色をつけることができるため、そのリスクを下げることができます。
私の場合は本番環境を赤、検証環境を黄色、開発環境を緑色に設定しています。