AWSのアカウントが増えてくると、
- どのアカウントに何の権限を与えるか
- アカウントごとに請求額はいくらなのか
など管理が煩雑になってきます。
そんなときに便利なのが、AWS OrganizationsやAWS Control Towerです。
ただこの二つ、概念や使い方の違いが非常に分かりにくいです。
そこで今回の記事では、AWS OrganizationsとAWS Control Towerの違いについて簡単に解説していきたいと思います。
- AWS Organizationsとは何か
- AWS Control Towerとは何か
- 両者の概念や使い方の違い
そもそもAWSにおけるアカウントとは
AWSアカウントの概念
そもそもAWSにおけるアカウントとは何でしょうか。
私たちの身近にあるアカウントと言えば、
- SNSのアカウント
- ECサイトのアカウント
などが分かりやすいのではないでしょうか。これらは、ユーザー各個人に割り当てられるもので、アカウントと人物が1対1で結び付けられるものです。
ところが、企業などの組織で利用されるAWSアカウントとは、アカウントの所有者と人物を1対1で結び付けるものではありません。(※AWSを個人で利用している場合は除きます)
AWSにおけるアカウントとは、いわばテナントのようなものです。AWSアカウントを所有する組織が、AWSクラウドのリソースを利用できる権利を得ることができます。
そして、テナントであるAWSクラウドのリソースを、個人と紐づいたIAMユーザーが利用していくことになります。
そして、SNSで個人がアカウントを複数所有できるのと同様に、組織もAWSアカウントを複数所有することができます。飲食店経営者が、テナントを複数借りることができるのと同じですね。
AWS複数アカウント所有のメリット・デメリット
AWSアカウントを複数所有する組織もあると言いましたが、もちろん複数所有することにはメリットとデメリットが発生します。
- AWS権限を明確に分離できる
- AWS利用料金を明確に分離できる
AWSアカウントを複数所有することで、アカウントごとにサービスやリソースの利用権限を分離することができ、セキュリティやガバナンスの強化につながります。
例えば、企業の部署ごとにアカウントを設け、各部署ごとに権限を分けることで、各部署に最低限の権限を与えられたり、権限の管理が簡単になったりというメリットがあります。
また、AWSアカウントを複数所有すると、アカウントごとの利用料金を把握することができ、どのアカウントにいくら利用料金が発生しているのか分かりやすくなります。
AWSの利用料金はアカウントごとに請求されます。そのため、例えばアカウントを部署ごとに設ければ、
- A部署の利用料金は~円
- B部署の利用料金は~円
といったように、組織の中でAWS利用料金を明確に把握できるのです。
- AWSアカウント管理が複雑になる
もちろん、アカウントを複数所有するということは、それだけアカウントを管理しなければなりません。つまり、AWSアカウントの管理が複雑になるというデメリットが発生します。
そこで登場するのが、AWS OrganizationsやAWS Control Towerといったサービスです。
それでは、ここからは両者の役割や使い方の違いなどを簡単に説明していきます。
AWS Organizationsとは
AWS Organizationsでは、以下の3つを実現することができます。
- 複数AWSアカウントを一元管理
- AWSアカウント作成の自動化
- 請求の簡素化
複数AWSアカウントを一元管理
AWS Organizationsを理解する上で特に重要となる概念が、
- 組織単位(OU)・・・複数アカウントのセット
- サービス管理ポリシー(SCP)・・・AWSサービスとアクションの権限を定義するもの
です。これらを用いて、以下のような管理体制を作成します。(一例です)
まず、AWS Organizationsを利用するrootとなるMaster Accountを用意し、そのアカウントに他のアカウントを一元管理させます。
次に、OU単位でアカウントを分離します。
そして、OUごとにSCPでAWSアクションに対しての権限を付与します。
このように、Master AccountがOrganizationsを利用することで、複数アカウントを一元管理する構成を作成することができます。
AWSアカウント作成の自動化
AWS Organizationsの登場以前は、AWSアカウントの作成する際、
- AWSアカウント作成
- 連絡先情報入力
- お支払情報入力
- (必要に応じて)一括請求設定
といった手順をマニュアルで実施する必要がありました。
ところが、AWS Organizationsを利用すれば、CreateAccountというAPIでPythonを利用したコードでアカウントの作成を自動化することができます。
請求の簡素化
AWS Organizationsを利用することで、複数アカウントのAWS利用料金の請求をMaster Accountに一括請求することができます。
たしかにAWS Organizationsを利用しなくとも、EC2インスタンスのタグ付けを利用すればEC2インスタンスの利用料金をタグごとに分類することができます。
しかし、「Dirrect Connectのデータ転送料金」など、一部サービスではタグ付けが不可能なサービスも存在します。これではアカウントごとの明確な利用料金を把握することができません。
AWS Organizationsで複数アカウントを一元管理すれば、上記のような心配もなくなります。
AWS Control Towerとは
AWS Organizationsと似たマルチアカウント管理サービスに、AWS Control Towerがあります。
AWS Control Towerとは、一言でいうと
マルチアカウント管理環境を簡単にセットアップしてくれるサービス
です。AWS Control Towerを有効化することで、以下のサービスの簡単セットアップを約60分でAWS側が行ってくれます。
- AWS Organizations : 多数の AWS アカウントの管理
- AWS Single Sign-On (SSO) : 多数の AWS アカウントへのログイン
- Account Factory (AWS Service Catalog) : 新規アカウント払い出しのセルフサービス化
- AWS Config : AWS アカウントの設定の評価、監視
- AWS CloudTrail : AWS アカウント内の操作の証跡
つまり、AWS Organizationsとの似たサービスのようでしたが、違いをまとめると以下のようなイメージです。
Organizations
マルチアカウントをOU単位で一元管理し、SCPによるセキュリティの強化や利用料金請求の簡素化を図れるもの
Control Tower
マルチアカウント環境の整備を簡単にセットアップしてくれるサービスで、OrganizationsやSSO、CloudTrailなどのセットアップを含む
まとめ
OrganizationsもControl Towerもマルチアカウントに対応したサービスであることがお分かりいただけたのではないでしょうか。
イメージ的には、Control Towerでマルチアカウント環境をセットアップするサービスの中にOrganizationsが含まれているといった感じでしょうか。
AWSアカウントを複数所有すると管理が複雑になりますが、OrganizationsやControl Towerといったサービスがあることで管理を簡単にできるのいいですね。ありがたいサービスです。