Slide 1

Slide 1 text

スタートアップ企業でのAWS マルチアカウント運用の実践と普及 多田 貞剛 July Tech Festa 2021 winter D6

Slide 2

Slide 2 text

2 自己紹介 • 多⽥ 貞剛 @tada_infra • 株式会社スナックミー SRE 担当 • 筋トレ -> サウナ -> サ飯 のトライセットを決 めるのがマイブーム • JTF 初登壇

Slide 3

Slide 3 text

3 会社紹介 『新しいおやつ体験を想像し、おやつ時間の価値をあげる』 栄養価が⾼く、それでいて美味しさに妥協しないスナックによっ て、おやつそのもの質を上げる。 また、モノだけではなく、新しいおやつ体験をデザインし、おやつ の時間の価値を向上させる。 それによって、おやつの時間が彩りとなり、豊かな⽣活を実現す る。

Slide 4

Slide 4 text

会社紹介 • おやつ体験 BOX 『snaq.me』 • ⽉額 1,980円(税込、送料込) • 4週 or 2週毎に100種類以上の商品からお客様にパーソナライ ズした8種のおやつをお届け

Slide 5

Slide 5 text

会社紹介 おやつ診断、商品リクエスト、商品評価などのデータを取得してお 届けしてます。

Slide 6

Slide 6 text

6 お話しする #推しテク • 事業拡⼤と⼀緒に既存システムを拡張したり新規システムや関わ る開発者も増えてきた • 事業や開発のスピードを可能な限り落とさず、セキュリティや 管理ができた状態でシステムをスケールさせていきたい • アカウント運⽤管理サービスの適⽤と組織内での普及にまつわる お話をします! • 皆さんの中でもっといい運⽤ある!や私の会社はマルチアカウン ト運⽤でこうしてる!っていうのを#JTF2021W #JTF2021W_D で教えていただけるとありがたいです

Slide 7

Slide 7 text

アジェンダ 1.従来の AWS アカウント管理の課題 2.アカウント管理の課題の対応 3.マルチアカウント運⽤と普及の取り組み

Slide 8

Slide 8 text

従来のAWSアカウント 管理の課題

Slide 9

Slide 9 text

従来のAWSアカウント管理の課題 • ⼊社して1⽇⽬にAWSアカウントが発⾏された • アカウントは1つしかなかった • 社内に情報がほぼないので中に⼊ってみてみた

Slide 10

Slide 10 text

従来のAWSアカウント管理の課題 • 本番環境で使っていない検証⽤やテストで作った野良リソー スも1アカウントで管理されていた • 今どんな AWS リソースやサーバー(OS/MW等)がどんな⽤ 途で存在しているのかが管理しきれてなかった • 管理側として検証やテストの環境分離しつつもリソース情報 を全員⾒れるものとして管理したい

Slide 11

Slide 11 text

• AWSアカウントへのログインが IAM ユーザーでの直ログイ ンになっていた • ⾮エンジニアにも IAM ユーザーを払い出しているが権限が 強いものもあり危険度は⾼い • ユーザー管理コストが⾼いのもあるが、セキュリティをもっ と⾼めたい要望もあった 従来のAWSアカウント管理の課題 ϩάΠϯ৘ใ͕࿙ ΕͨΒૢ࡞͞ΕΔ

Slide 12

Slide 12 text

• 本番システム構成も変えてづらかったり、開発したものが本番に デプロイした時に動作しないこともあった • アーキテクチャの変更の影響確認や開発したものを本番に上げ る前の確認するフローがなかった • ローカルだと動くけど本番デプロイで動作しない事象も起こっ ていた • ex. 開発環境である Mac のコンテナ上で動いたけど ECS の コンテナでは動作しない 従来のAWSアカウント管理の課題

Slide 13

Slide 13 text

• アカウント管理・運⽤の課題 • リソース管理の課題 • IAM ユーザー/権限管理やセキュリティの課題 • 開発フロー/アーキテクチャの課題 従来のAWSアカウント管理の課題

Slide 14

Slide 14 text

アカウント管理の 課題の対応

Slide 15

Slide 15 text

アカウント管理の課題の対応 • 複数の AWS アカウントを⼀元管理するの に役⽴つサービス • 新規アカウントの作成、請求の簡素化にも 役⽴つ • 他の AWS サービスと統合しており、管理 するアカウントに渡って設定管理できる

Slide 16

Slide 16 text

アカウント管理の課題の対応

Slide 17

Slide 17 text

• アカウントの分離の進めていくにあたっては Landing Zone の考 え⽅を参考にして進めている • Landing Zone はベストプラクティスに基づいた、 AWS のマルチアカウン トセットアップをサポートする仕組み • Control Tower が東京リージョンになかったため個別実装にした ※参考 https://aws.amazon.com/jp/builders-flash/202007/multi-accounts-best-practice/ https://aws.amazon.com/jp/builders-flash/202009/multi-accounts-best-practice-2/ アカウント管理の課題の対応

Slide 18

Slide 18 text

• AWS Organizations を使ってまずはアカウントをステージングと サンドボックスに分割することにした • ステージングアカウント:本番前の開発とテストをしやすくす る • サンドボックスアカウント:個⼈検証をやりやすくする アカウント管理の課題の対応

Slide 19

Slide 19 text

アカウント管理の課題の対応

Slide 20

Slide 20 text

• ステージングとサンドボックスを作った後、アカウントの利⽤⽅ 針を開発者に共有 • どういう構成か • どういう⽤途で使って欲しいか • どのブランチでステージングを使って欲しいか 等 アカウント管理の課題の対応

Slide 21

Slide 21 text

• 社内システムで開発した機能が本番で動作しない問題が発⽣ し、開発者と振り返りした時にステージングが開発フローの中 で使われてないことが発覚 • アカウントの使い⽅や構成を伝えただけでは当然使われず、開 発フローや⽅針をこれまでのワークフローの中に組み込めてな かった アカウント管理の課題の対応

Slide 22

Slide 22 text

マルチアカウント運用 と普及の取り組み

Slide 23

Slide 23 text

1.アカウントのリソース情報や⽅針の確⽴ 2.アカウントのセキュリティ向上 3.開発のワークフローに追加したアカウントを組み込む マルチアカウント運用と普及の取り組み

Slide 24

Slide 24 text

リソース管理の課題

Slide 25

Slide 25 text

• リソース管理は構成図を作るのと構成情報をドキュメントと してアウトプット • サーバー内部の情報は Systems Manager で管理 マルチアカウント運用と普及の取り組み

Slide 26

Slide 26 text

• AWS の利⽤料は複数アカウント分を Mackerel で可視化し、 AWS Budget で個別アカウントの予算を管理 マルチアカウント運用と普及の取り組み

Slide 27

Slide 27 text

• アカウントでのリソース運⽤ルールを指標にして使いもらい やすくした マルチアカウント運用と普及の取り組み

Slide 28

Slide 28 text

セキュリティの課題

Slide 29

Slide 29 text

マルチアカウント運用と普及の仕組み • アカウントのログイン⽅式が直ログインに なっているのをAWS Single Sign-On (SSO) を利⽤ • GSuite をIdPに委任し、SAML認証でロ グインする⽅式 • AWS Organizations を使うと管理している アカウントにログインできる

Slide 30

Slide 30 text

マルチアカウント運用と普及の仕組み • SSO 経由でのログイン実⾏することによって GSuite のアカ ウントさえあれば AWS アカウントでのユーザー管理がなく なった • セキュリティの課題+IAM ユーザー管理運⽤負担を軽減 • 利⽤者も使いやすくなった

Slide 31

Slide 31 text

• CloudTrail,Config,GuardDuty 等のセキュリティサービスを共 通化して展開 • CloudFormation の StackSets を使って各アカウントに展 開 マルチアカウント運用と普及の取り組み

Slide 32

Slide 32 text

マルチアカウント運用と普及の仕組み • これまでは IAM ユーザーに権限を付与していたところを SSO と Organizations の SCP で制御する • 権限設定もドキュメント管理する

Slide 33

Slide 33 text

開発フローの課題

Slide 34

Slide 34 text

マルチアカウント運用と普及の仕組み • 開発フローの中にステージングを組み込めていなかったので 開発チームと相談して組み込んだ • 開発チームの開発フローの中で本番デプロイ前の⼯程でス テージングを間に挟んで確認してもらうことにした

Slide 35

Slide 35 text

マルチアカウント運用と普及の仕組み • 徐々にステージングアカウントを使った本番デプロイ前の検 証が増えた • AWS リソースレビューも実施して開発チームとの協⼒し て回していきたい

Slide 36

Slide 36 text

まとめ

Slide 37

Slide 37 text

まとめ • 事業拡⼤や利⽤者増加に合わせたアカウントの追加において Organizations が便利 • Organizations と連携した他のサービスを使ってセキュリティを ⾼めて運⽤する • マルチアカウント浸透のためには現場へ協⼒を働きかけて、理解 を得て進めることが重要だと痛感

Slide 38

Slide 38 text

Thank you!