Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

コスト最適化について ・コストとは - 管理コスト - 開発コスト - セキュリティリスクから発生しうるコスト - 障害対応にかかるコスト - 賠償にかかるコスト 将来的に予想される コストを考慮した対策 コスト最適化 =

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Oktaを活用した権限の付与 •社員へのアクセス権の付与を自動化 - 社員のOktaプロファイル情報から必要な 権限を把握 - 担当するプロダクトに応じて自動付与 •業務レベルに応じた権限の制御 担当領域や技術に応じた権限を付与 - 新卒社員 :読み込み権限 - エンジニア:基本的な権限 - 管理者  :管理権限 新卒 担当者 ReadOnly Access Standard Access development production Operator Access Root Access SRE

Slide 11

Slide 11 text

Oktaを活用した権限の付与 ●メリット - 社員のOktaプロファイルを更新するだけで良い - クラウドサービスアカウント内での ユーザー管理が不要 ▶ 管理の一元化 - 過剰な権限の付与を防止

Slide 12

Slide 12 text

Oktaでの安全なキー発行 •一時的セキュリティ認証情報の取得 期限付きのアクセスキーを発行可能 必要な権限で安全にアクセス - IAMユーザー管理から解放 - アクセスキーの情報流出リスクを削減 - 権限に基づいたサーバーへの SSHログイン SSMエージェントを活用して EC2インスタンスへの厳格なSSHを実現 Access login AccessKey

Slide 13

Slide 13 text

SNSアカウントの管理 •Statusbrewを活用 対応するSNSは全てStatusbrewで管理 利用者の担当プロダクトや権限を制御 - 集約による管理コスト削減 •SNSアカウントへのアクセス制御 SNS担当者がStatusbrew経由で投稿や予約が可能 - SNSへ直接ログインを禁止 - ログイン情報流出や退職管理の リスクを軽減 •予約投稿の承認フローや細かな分析など多機能 Post Access ・・・

Slide 14

Slide 14 text

GitHubリポジトリ管理 •課題 1000以上のリポジトリ、100以上のチーム - 管理者による権限の確認や管理は非現実的 - 意図しないリポジトリの公開や更新の調査が困難 •解決 - スクリプトによるリポジトリの自動定期監視 - 公開リポジトリ・チームの検知 - オーナー情報の変更通知 - Forkなど流出の可能性がある アクションの検知 - リポジトリの自動的なチームへの追加 - 定期的な自動バックアップ機能 Jenkins GitHub Slack 1, Information acquisition 2, Notification

Slide 15

Slide 15 text

GitHubリポジトリ管理 ●非現実的な数のリポジトリ管理を自動化  必要な監視項目が増えた場合はスクリプトを拡張すれば良い ●リポジトリが自動的にチームへ追加されるため管理漏れを防げる ●定期的なバックアップによる万が一への対応 ●意図しない公開やForkを即座に把握  通知が飛んできた場合のみ対応すれば良いため管理コストが大幅に削減

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

共通基盤システム(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 サービスごとに開発 共通基盤で開発

Slide 19

Slide 19 text

共通基盤システム(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によって

Slide 20

Slide 20 text

共通基盤システム(camplat) •secure 各サービスで共通する個人情報の一元管理 - 個人情報保護法で定義される個人情報 - 要配慮個人情報 - 個人識別符号           配送先情報 service backend secure secure database ・名前 ・生年月日 ・性別 ・郵便番号 ・住所 ・電話番号 チャットメッセージ service backend ・プライベートな文章 会員登録 service backend ・名前 ・生年月日 ・性別 個人情報管理システムの 品質が全サービスで安定 管理、調査が 容易になる 厳しいセキュリティ要件 を設ける

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Amazon S3の運用ルール •S3バケットの保持 - 終了したプロダクトであっても バケットは保持 - 同名バケットの取得による 悪用リスクへの対策 •公開バケットの禁止 - オブジェクトへ直接アクセスできる状態を禁止 - S3の静的Webホスティング機能も使わない - ポリシーを制御してCloudFrontからのみアクセス •バージョニングの有効化 - 意図しないファイル損失からの復旧 •S3アクセスログの有効化 User CloudFront S3 Access Access Forbidden

Slide 23

Slide 23 text

セキュリティ情報の集約 •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

Slide 24

Slide 24 text

安全なVPN接続 •Pritunlを採用 - どこからでも安全な社内環境へのアクセス を実現 •全てのAWSアカウント毎にVPNサーバーを設置 - 必要に応じて接続先を切り替え - Pritunl経由のアクセスを許可すれば良いだけなので 管理コストの削減にも繋がる AWS Account A Pritunl A AWS Account B Pritunl B AWS Account C Pritunl C Pritunl

Slide 25

Slide 25 text

安全なVPN接続 •SSO認証による安全性の担保 GoogleWorkspaceに存在するユーザーで認証 - 退職者が社内のPritunlを利用することはできない - アクセスログの追跡が可能 •PrivateSubnetへの安全な接続 踏み台サーバーが不要 ローカル開発での生産性向上 •iPhoneやAndroidにも対応 Internet Pritunl Private Subnet Public Subnet Google Workspace Private Servers Internet Gateway Authentication Access

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

No content