はじめに
こんにちは!技術三課の三木です。
情報処理技術者試験の中止が決まりましたね。
(私含め)勉強していた方はがっかりしたかと思います。
とはいえ、知識が自分から失われる訳ではありませんから、過度に気を落とさずに元気に行きましょう。桜がきれいですね。
AWSアカウント設計のポイント
本記事はAWSを導入するにあたり設計を任された人向けの記事です。
この記事ではAWSアカウント設計をする際のポイントを約10分で説明します。
概要
端的に言うと、AWSアカウントを単一アカウント(シングルアカウント)で運用するか、複数アカウント(マルチアカウント)で運用するかという2択です。
もちろんそれぞれにメリット・デメリットがありますので、目的・状況にあったものを選択する必要があります。
それぞれの強み・弱みは以下の通りです。
# | 運用方法 | 単一アカウント | 複数アカウント |
---|---|---|---|
1 | AWSアカウントの管理(一覧性) | 〇 | △ |
2 | AWSリソースの管理(一覧性) | 〇 | △ |
3 | VPC設計/運用の単純さ | 〇 | △ |
4 | CloudTrail、AWS Config等の管理の単純さ | 〇 | △ |
5 | アクセス制御設計の単純さ | △ | 〇 |
6 | 利用料(請求)の分離 | △ | 〇 |
7 | リソース制限の抵触しにくさ | △ | 〇 |
どっちがいいの
基本的にはシンプルな構成にした方が、運用のコストが下がります。
つまり単一アカウントが最もシンプルであり、運用のコストも下がります。
ただし例えば以下のような要件がある場合は複数アカウントがおすすめです。
- 環境毎(本番環境と開発環境など)で権限を明確に分けたい
- 部署ごとに請求を分離したい
- アカウント事に役割を分けたい(運用管理環境と本番環境など)
特に最近は複数アカウントに跨って利用することを意識したAWSサービスも増えてきていることもあり、複数アカウントの運用も一般的になってきています。
ただし、複数アカウントで運用する場合でも分割数は最小限に抑えた方が良いと考えられます。
詳細説明
そもそもAWSアカウントとは
AWSにおける環境・リソース管理の分割単位のことです。また利用料金の請求もアカウント単位で行われます。
別のAWSアカウントに存在するAWSリソースを見る事は出来ませんし、もちろん操作することもできません。
ポイント解説
1 AWSアカウントの管理(一覧性)
単一アカウントの場合は、管理する必要があるAWSアカウントは1つだけです。複数アカウントの場合は、分割している分だけAWSアカウントをそれぞれ管理する必要があります。統合的に管理する場合は、それぞれの情報をどこかに集約して管理することになります。
2 AWSリソースの管理(一覧性)
単一アカウントの場合、権限を所持していればAWSリソースをすべて見ることが出来ます。複数アカウントの場合、そのアカウント内で作成されているAWSリソースしか確認することが出来ません。環境毎にアカウントを分割した場合は別環境のリソースを見ることが出来ないので注意が必要です。
3 VPC設計/運用のシンプルさ
VPCとはAWSにおけるネットワークの単位です。単一アカウントの場合、複数アカウントに比べてVPCを集約しやすいため、設計/運用対象となるVPC数が(一般的に)減ります。
複数アカウントの場合、まずアカウントごとにVPCが分かれるため、設計/運用対象となるVPC数が(一般的に)増えます。
4 CloudTrail、AWS Config等の管理の単純さ
CloudTrailやAWS Configのような監査・構成管理サービス等は基本的に自アカウント内のリソースを対象としています。単一アカウントの場合、これらはサービスをそのまま利用すれば良いのでシンプルです。
複数アカウントの場合、これらを特定のアカウントに集約するなど、統合的に管理する手法を考える必要があります。
5 アクセス制御設計の単純さ
「AWSリソースの管理」と関連してきますが、AWSアカウント内のリソースに対するそれぞれの権限を設計していくことになります。単一アカウントの場合、(一般的にはAWSリソースの所属する環境や利用目的ごとに権限設定が異なるため)IAM User等の権限設計が複雑になります。
複数アカウントの場合、環境や利用目的ごとにアカウントを分離している場合、IAM User等の権限設計がシンプルになります。
6 利用料(請求)の分離
AWSアカウントごとに利用料金が請求されることとなります。単一アカウントの場合、部門別や環境別にコストを配分する際に、完全な分離が出来ません。(コスト配分タグというものもありますが、未対応のAWSサービスもあるため完全には分離できません。)
複数アカウントの場合、環境や利用目的ごとにアカウントを分離している場合、その単位で利用料金を分離することが出来ます。
7 リソース制限の抵触しにくさ
AWSではAWSリソースの可用性を保証するために、各サービスには利用上限が存在しています。(リクエストする事で上限は緩和出来ます。)例えばVPCでは、アカウント内で作成できるVPC数(リージョンごと)上限は5つまでとなっています。
単一アカウントの場合、(複数アカウントと比較して)AWSリソースの量が増えるため、この上限に抵触しやすくなります。
複数アカウントの場合、(単一アカウントと比較して)AWSリソースの量が減るため、この上限に抵触しづらくなります。
尚、各リソースの上限については参考リンクに資料を載せておきました。気になる項目だけでも、ぜひ確認してみてください。
まとめ
- シンプルな構成の方が運用コストが低い。
- 単一アカウント・複数アカウントのどちらにもメリット・デメリットが存在する。自分に合った最適なものを選ぶ。
- 悩んだらサーバーワークスへ!
参考資料
『AWS SUMMIT 2017 - AWSにおけるマルチアカウント管理の手法とベストプラクティス』 『AWS Docs - サービスエンドポイントとクォータ』
三木 宏昭 (執筆記事の一覧)
クラウドインテグレーション部 技術1課
紅茶と親子丼とAWSが好き
2021年の目標:毎日リングフィットアドベンチャーのコントローラーを持つ
2021 APN ALL AWS Certifications Engineers