Upgrade to Pro — share decks privately, control downloads, hide ads and more …

100を超えるクラウドサービス環境をSREで効率的にコスト最適化した話 | CA BASE NEXT

100を超えるクラウドサービス環境をSREで効率的にコスト最適化した話 | CA BASE NEXT

□ 登壇者
藤本 拳,神山 拓哉

□ 発表について
株式会社CAMは占い、エンタメ、ファンプラットフォームなど多くのサービスを展開しています。
弊社が管理しているサービス数は50以上にも達し、全てのサービスはパブリッククラウド上で稼働しています。
それに付随して、契約しているクラウドサービスのアカウント数は開発環境、本番環境、テスト環境などを含め100を超えています。

サービスごとに担当のエンジニアが開発をしており、その際に様々なリソースがパブリッククラウド上で作成されるので、アカウントごとのリソース管理が難しく、トータルのインフラコストも比例して増えていきます。
また、サービスごとに瞬間的なトラフィック対策としてスケールアウトも頻繁に実施されるのでよりコスト監視体制が必要とされています。

そんなCAMの特性に対して、SREでどのように全クラウドサービス環境を効率的にコスト最適化しているかの仕組みと手法についてお話させていただきます。

詳細はこちら

□ CA BASE NEXT (CyberAgent Developer Conference by Next Generations) とは
20代のエンジニア・クリエイターが中心となって創り上げるサイバーエージェントの技術カンファレンスです。
当日はセッション・LT・パネルディスカッション・インタビューセッションを含む約50のコンテンツをYouTube Liveを通じて配信します。
イベントページ

□ 採用情報
サイバーエージェントに少しでも興味を持っていただきましたら、お気軽にマイページ登録やエントリーをおねがいします!

◆新卒エンジニア採用
エントリー・マイページ登録はこちら
採用関連情報のまとめはこちら

◆新卒クリエイター採用
エントリー・マイページ登録はこちら

◆中途採用
採用情報はこちら

2016ba6b977a2e6691811fa66d5f4336?s=128

CyberAgent
PRO

May 28, 2021
Tweet

Transcript

  1. None
  2. 1.自己紹介 2.CAMの特徴 3.コスト最適化について 3.1 管理コスト削減 3.2 開発コスト削減 3.3 セキュリティ 4.おわりに

  3. 1.自己紹介 2.CAMの特徴 3.コスト最適化について 3.1 管理コスト削減 3.2 開発コスト削減 3.3 セキュリティ 4.おわりに

  4. 藤本 拳 2019年度 新卒入社 株式会社 CAM Site Reliability Engineer KenFujimoto12 神山 拓哉

    2017年度 新卒入社 株式会社 CAM Site Reliability Engineer @citNoname
  5. 1.自己紹介 2.CAMの特徴 3.コスト最適化について 3.1 管理コスト削減 3.2 開発コスト削減 3.3 セキュリティ 4.おわりに

  6. CAMの特徴 •占い、エンタメ、ファンプラットフォームサービスなど幅広く展開 •クラウドプラットフォームの利用割合 AWS 80%、GCP 20% •AWS 56サービス、106アカウント •GCP 33サービス、98アカウント

    •SRE 4名在籍
  7. コスト最適化について ・コストとは - 管理コスト - 開発コスト - セキュリティリスクから発生しうるコスト - 障害対応にかかるコスト

    - 賠償にかかるコスト 将来的に予想される コストを考慮した対策 コスト最適化 =
  8. 1.自己紹介 2.CAMの特徴 3.コスト最適化について 3.1 管理コスト削減 3.2 開発コスト削減 3.3 セキュリティ 4.おわりに

  9. IDaaSサービス(Okta) •クラウドサービスアカウントのログイン管理に Oktaを採用 •様々なクラウドサービスへのログインを提供 - 手軽なアカウントの切替 - ルール設定で自動的な権限の付与 が実現 login

    login
  10. Oktaを活用した権限の付与 •社員へのアクセス権の付与を自動化 - 社員のOktaプロファイル情報から必要な 権限を把握 - 担当するプロダクトに応じて自動付与 •業務レベルに応じた権限の制御 担当領域や技術に応じた権限を付与 -

    新卒社員 :読み込み権限 - エンジニア:基本的な権限 - 管理者  :管理権限 新卒 担当者 ReadOnly Access Standard Access development production Operator Access Root Access SRE
  11. Oktaを活用した権限の付与 •メリット - 社員のOktaプロファイルを更新するだけで良い - クラウドサービスアカウント内での ユーザー管理が不要 ▶ 管理の一元化 -

    過剰な権限の付与を防止
  12. Oktaでの安全なキー発行 •一時的セキュリティ認証情報の取得 期限付きのアクセスキーを発行可能 必要な権限で安全にアクセス - IAMユーザー管理から解放 - アクセスキーの情報流出リスクを削減 - 権限に基づいたサーバーへの

    SSHログイン SSMエージェントを活用して EC2インスタンスへの厳格なSSHを実現 Access login AccessKey
  13. SNSアカウントの管理 •Statusbrewを活用 対応するSNSは全てStatusbrewで管理 利用者の担当プロダクトや権限を制御 - 集約による管理コスト削減 •SNSアカウントへのアクセス制御 SNS担当者がStatusbrew経由で投稿や予約が可能 - SNSへ直接ログインを禁止

    - ログイン情報流出や退職管理の リスクを軽減 •予約投稿の承認フローや細かな分析など多機能 Post Access ・・・
  14. GitHubリポジトリ管理 •課題 1000以上のリポジトリ、100以上のチーム - 管理者による権限の確認や管理は非現実的 - 意図しないリポジトリの公開や更新の調査が困難 •解決 - スクリプトによるリポジトリの自動定期監視

    - 公開リポジトリ・チームの検知 - オーナー情報の変更通知 - Forkなど流出の可能性がある アクションの検知 - リポジトリの自動的なチームへの追加 - 定期的な自動バックアップ機能 Jenkins GitHub Slack 1, Information acquisition 2, Notification
  15. GitHubリポジトリ管理 •非現実的な数のリポジトリ管理を自動化  必要な監視項目が増えた場合はスクリプトを拡張すれば良い •リポジトリが自動的にチームへ追加されるため管理漏れを防げる •定期的なバックアップによる万が一への対応 •意図しない公開やForkを即座に把握  通知が飛んできた場合のみ対応すれば良いため管理コストが大幅に削減

  16. 1.自己紹介 2.CAMの特徴 3.コスト最適化について 3.1 管理コスト削減 3.2 開発コスト削減 3.3 セキュリティ 4.おわりに

  17. Infrastructure as Code (IaC) •AWS CloudFormation (AWS) •Google Cloud Deployment

    Manager (GCP) SREが最適な構成のリソーステンプレートを コンポーネント単位で作成し、全プロダクトで使用する ▶ 再現性を担保し、開発コストが下がる Terraformなど、外部ツールと比較すると - 最新のクラウドサービスがすぐにサポートされる ▶ 最先端のサービスをいち早く検証導入できる - ツールのバージョン管理に依存しない Template CloudFormation AWS Account A AWS Account C AWS Account B SRE 作成 展開 Deployment Manager
  18. 共通基盤システム(camplat) •共通ロジックの基盤開発 以下のような機能は共通基盤として作成 - 決済 (payment / leaf) - メール配信

    (mail) - 個人情報管理、セキュア情報の保全 (secure) - 共通ユーザーID (guid) - 動画配信 (orb) - 端末(デバイス)制限管理 (device) - ビデオ通話 (sola) - リアルタイムチャット (calamari) - サーバーサイドレンダリングシステム (ssrer) ▶ 新規開発コスト、管理コストダウン OSS FrameWork 共通ロジック ビジネスロジック サービスA OSS FrameWork ビジネスロジック 共通ロジック OSS FrameWork ビジネスロジック 共通ロジック サービスA サービスC OSS FrameWork ビジネスロジック サービスA ・決済 ・大規模メール送信 ・個人情報管理 ・動画配信 etc 共通ロジック OSS FrameWork ビジネスロジック OSS FrameWork ビジネスロジック 共通ロジック(API) サービスA サービスC サービスごとに開発 共通基盤で開発
  19. 共通基盤システム(camplat) •guid 共通ユーザーIDシステム 複数サービスを横断して、ユーザーを一意に特定 し、動向を追えるトラッキングを実現する ビジネスサイド ユーザー情報の集計が容易 データ分析 サービス間を越えたレコメンドが容易 guid

    2 guid 3 サービスA サービスB サービスC guid(API) ビジネスサイド guid:1 サービス Aとサービス Cでの 課金状態を調べたい。 → 各サービスでユーザー IDが同じ なので、 調査が容易 データ分析 guid: 2 登録しているサービスに応じ て、サービス Aでレコメンド結果 を表示させたい。 → 他に登録しているサービス Cの 結果取得が容易 guid 1 guid 1 guid 2 guidによって
  20. 共通基盤システム(camplat) •secure 各サービスで共通する個人情報の一元管理 - 個人情報保護法で定義される個人情報 - 要配慮個人情報 - 個人識別符号          

    配送先情報 service backend secure secure database ・名前 ・生年月日 ・性別 ・郵便番号 ・住所 ・電話番号 チャットメッセージ service backend ・プライベートな文章 会員登録 service backend ・名前 ・生年月日 ・性別 個人情報管理システムの 品質が全サービスで安定 管理、調査が 容易になる 厳しいセキュリティ要件 を設ける
  21. 1.自己紹介 2.CAMの特徴 3.コスト最適化について 3.1 管理コスト削減 3.2 開発コスト削減 3.3 セキュリティ 4.おわりに

  22. Amazon S3の運用ルール •S3バケットの保持 - 終了したプロダクトであっても バケットは保持 - 同名バケットの取得による 悪用リスクへの対策 •公開バケットの禁止

    - オブジェクトへ直接アクセスできる状態を禁止 - S3の静的Webホスティング機能も使わない - ポリシーを制御してCloudFrontからのみアクセス •バージョニングの有効化 - 意図しないファイル損失からの復旧 •S3アクセスログの有効化 User CloudFront S3 Access Access Forbidden
  23. セキュリティ情報の集約 •AWS Config AWSリソースのセキュリティリスクを検知するサービス 弊社ではアカウント数が多く、 ConfigのAggregatorでカバーされない 情報をTableauで可視化 情報を集中させることで管理コストを削減 Config AWS

    Account A Config AWS Account B Cloud Storage BigQuery サービスA サービスB サービスC 2. 検知リソース改善依頼 1. 監視 SRE 3. 確認 4. 対応 Jenkins S3 aggregate Tableau Tableau
  24. 安全なVPN接続 •Pritunlを採用 - どこからでも安全な社内環境へのアクセス を実現 •全てのAWSアカウント毎にVPNサーバーを設置 - 必要に応じて接続先を切り替え - Pritunl経由のアクセスを許可すれば良いだけなので

    管理コストの削減にも繋がる AWS Account A Pritunl A AWS Account B Pritunl B AWS Account C Pritunl C Pritunl
  25. 安全なVPN接続 •SSO認証による安全性の担保 GoogleWorkspaceに存在するユーザーで認証 - 退職者が社内のPritunlを利用することはできない - アクセスログの追跡が可能 •PrivateSubnetへの安全な接続 踏み台サーバーが不要 ローカル開発での生産性向上

    •iPhoneやAndroidにも対応 Internet Pritunl Private Subnet Public Subnet Google Workspace Private Servers Internet Gateway Authentication Access
  26. 安全なVPN接続 •社内サーバーや管理画面などへ安全な接続を実現 Pritunlを経由させることでアクセスログの追跡が可能 不必要なIP開放などが不要になり管理も円滑 •リモートワークでの生産性アップに貢献 自宅からのIP制御付きの管理画面へのアクセス 自宅からのメンテナンスやリリース時のデバッグ作業が可能  - コロナ禍で急遽リモートワークになった際にも活躍

  27. 1.自己紹介 2.CAMの特徴 3.コスト最適化について 3.1 管理コスト削減 3.2 開発コスト削減 3.3 セキュリティ 4.おわりに

  28. おわりに CAMではTech Blog を精力的に更新中 CAMの技術情報を詳しくTech Blogにて公開!

  29. None