技術書典11で「Amazon Web Servicesコスト最適化入門 マルチアカウント編」を頒布中です。
BOOTHでも購入できますが、送料(370円)がかかってしまうので、7/25までであれば技術書典のオンラインマーケットだと送料がかからずお得かと思います。オンラインマーケットだと物理本の発送が8月になってしまいますが、BOOTHは私が発送するので注文後数日で届きます。すぐに物理本が欲しい人はBOOTHまで。
マルチアカウントに対する障壁の高さ
6/19に開催された技術書同人誌博覧会(技書博)、7/11に開催された技術書典オフライン会場で多くの方と直接お話させていただく機会がありました。「AWSコスト最適化」に興味を持ってくれる方が多かったのは嬉しい限りでした(参加レポートは後日ブログにします)。
その一方で、本作のタイトルにある通り「マルチアカウント」に対して馴染みが薄い方が多い印象です。情シスやインフラなどでなければ、会社でAWS Organizationsに触れることはあまりないと思いますし、個人で複数のAWSアカウント(マルチアカウント)で運用している人は多くないでしょう(個人でAWSアカウントを持っていること自体もあまり多くない印象です)。
そこで本記事はAWS Organizationsで複数のAWSアカウントを個人でも運用した方がいいよという話です。
個人用途におけるマルチアカウントのメリット
普通に考えて個人でAWSを使うなら一つのアカウントで十分なことが多いです。それをわざわざAWS Organizationsを有効化する意味はなんでしょうか。
AWSアカウントの作成がめちゃめちゃ楽にできることがメリットです。
普通にAWSアカウントを新規作成するときは以下の手順を踏みます。このときにEメールアドレス、クレジットカード、携帯電話(SMS、音声)が必要です。
- ステップ 1: AWSアカウントの作成
- ステップ 2: 連絡先情報の入力
- ステップ 3: 請求情報の入力
- ステップ 4: SMSまたは音声電話による本人確認
- ステップ 5: AWSサポートプランの選択
AWS OrganizationsからAWSアカウント(メンバーアカウント)を作成すると、1つのステップで済みます。クレジットカード、携帯電話は必要ありません。親アカウント(管理アカウント)で設定されているためそれを引き継がれるからです。新しいEメールアドレスが必要ですが、GmailやYahoo!メールならエイリアス(+をつけるやつ)でいくらでもメールアドレスを増やすことができます。
参考
- Creating an AWS account in your organization - AWS Organizations
- AWS Organizations で作成されたメンバーアカウントにアクセスする
使い捨てのAWSアカウントを作ることができる
JAWS-UGやAWS主催のハンズオンセミナーで手を動かしながらすすめるときに、新規のAWSアカウントでやると良いです。理由は二つあります。
- 古いAWSアカウントだとハンズオンがうまくすすまない場合があるのを防ぐ
- 終わったらアカウントごと削除して料金発生を防ぐ
1は、昔からあるAWSアカウントだとデフォルトVPCがありませんし、使われていないAZ(ap-northeast-1b)が残っている場合があります。ハンズオンにおいて特にCloudFormationで構築する場合ではこれらが原因で失敗する場合があります。新規作成されたAWSアカウントだとそういったつまづきを減らせます。
2は、ハンズオンに参加された方ならあるあるだと思うのですが、終わった後にAWSリソースを削除し忘れたり、漏れがあるとその後もずっと料金が発生します。AWSアカウントごと削除すれば絶対に料金が発生することがありません。万が一削除した後に必要だとわかれば、90日以内であればAWSサポートに連絡して再開することができます。
検証用環境として活用する
対象者は少ないかもしれませんが、トラブルシューティングや本を執筆するときに、すでに手をいれた環境だと再現性が低くなるため、まっさらな環境で動作検証をすることがあります。そのときにさくっとアカウントを作れると便利です。
GCPのプロジェクトと同じような感覚
Google Cloud Platform(GCP)ではプロジェクトという単位で、リソースなどを作成・管理しています。このプロジェクトはAWSアカウントよりもさらに細かい単位(例えば機能別)で作られることが多いです。流石にそこまで細かくAWSアカウントを作成するのは面倒になりますが、そのぐらい気軽にAWSアカウントを作成してもいいのではと思います。
余談ですが、GCPでも組織を作成することができます。Google Workspaceと連携してGoogle Workspace配下のアカウントとGCPプロジェクトのアサインを簡単にするのが主なメリットになります。個人用途の場合、Cloud Identityを使うと独自ドメインで組織を作ることができます。
参考:組織の作成と管理 | Resource Manager のドキュメント | Google Cloud
マルチアカウントのデメリット
作ること自体は良いのですが、日頃の運用や削除時が問題になります。
アカウントの削除(解約)が面倒
作るのは簡単でも削除(解約)はひと手間かかります。削除はルートアカウントからでしか行えないのですが、AWS Organizationsによってメンバーアカウントを作成した場合はルートアカウントのパスワードが設定されていません。そのため、一度ルートアカウントのパスワードを再設定してから解約する必要があります。
また、解約した後は同じメールアドレスが使えないため、エイリアスでメールアドレスを増やした場合でも重複しないように気をつける必要があります。
セキュリティ
アカウントを作ると一つ一つのアカウントにおけるセキュリティが甘くなりがちです。個人用途でも守るところは守らないと攻撃されて多額請求される可能性があります。
アカウントのセキュリティに関しては、佐々木さん(id:dkfj)の本がオススメです。
コスト管理
アカウントが多くなると個々のアカウントにかかる料金を把握しづらくなります。どこのアカウントにどのサービスに料金が発生しているのかを調べる方法は実は簡単です。その答えは「Amazon Web Servicesコスト最適化入門 マルチアカウント編」にあります(宣言です)。この本を読むことで複数のアカウントであってもしっかりコスト管理できるようになるでしょう。
まとめ
個人でAWSを使う場合でもAWS Organizationsでメンバーアカウントを作成すると、色々良いことがあるという話を書きました。GCPのプロジェクトほどではないですが、気軽にアカウントをつくることができるのでハンズオンなどに便利だと思います。