DMM における会員基盤プラットフォームへのAWS導入から活用事例の紹介

Similar documents
10年オンプレで運用したmixiをAWSに移行した10の理由

更新履歴 Document No. Date Comments 次 D JP 2017/05/01 初版 1. 概要 はじめに 情報源 A10 Lightning Application Delivery Service(ADS) 導 構成 動作概要 構築概要 2. 事

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

Enterprise Cloud + 紹介資料

PowerPoint プレゼンテーション

ナビタイムサービスにおける、Amazon ECS を活用したシステム移行 ~『乗換NAVITIME』での移行事例 ~

PowerPoint Presentation

PowerPoint プレゼンテーション

AWS Deck Template

タイトルを1~2行で入力 (長文の場合はフォントサイズを縮小)

PowerPoint プレゼンテーション

FUJITSU Cloud Service for OSS 「コンテナサービス」 ご紹介資料

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2


スライド 1

PowerPoint プレゼンテーション

Nintendo Switch(TM)向け プッシュ通知システム 「NPNS」

よくある問題を解決する~ 5 分でそのままつかえるソリューション by AWS ソリューションズビルダチーム

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

PowerPoint_template_v1.3.pptx / パワーポイントテンプレート

PowerPoint プレゼンテーション

Microsoft Word - AWSBlueprint final.docx

PowerPoint Presentation

スライド 1

スライド 1

AWS Shield と AWS で構築するセキュアで柔軟性の高いアプリケーション

PowerPoint プレゼンテーション

スライド 1

はじめてみよう AWS ~これだけでわかる、できる、AWS のコアサービスを活用した基本のシステム構成~

クラウドネイティブにセキュリティを 活用する!API を連携して実装する方法

データベースの近代化:シンプルなクロスプラットフォーム、最小のダウンタイムで実現するクラウド移行

サーバレスアーキテクチャで実現した M-1 グランプリ敗者復活戦投票システム

そこが知りたい!AWSクラウドのセキュリティ

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Wagby Cloud

Slide 1

CLUSTERPRO X 4.0 新機能

目次 1. はじめに SSL 通信を使用する上での課題 SSL アクセラレーターによる解決 SSL アクセラレーターの導入例 SSL アクセラレーターの効果... 6 富士通の SSL アクセラレーター装置のラインナップ... 8

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Presentation Template Koji Komatsu

<4D F736F F F696E74202D2082A282DC82B382E795B782AF82C882A FC96E CF68A4A A2E >

Startup_on_AWS_usecases_StartupDay

App Bridge Monitor ファーストステップガイド Ver


オージス総研0707セミナー

Microsoft PowerPoint - AWS紹介-VIOPS2 [互換モード]

AWS の運用監視入門 (AWS CloudWatch)

プロダクト仕様書 SLB

スライド 1

FUJITSU Cloud Service for OSS 「ソフトウェア カフェテリア」 ご紹介資料

変更履歴 項番版数内容更新日 版新規作成 2013 年 11 月 18 日 1

Leveraging Cloud Computing to launch Python apps

AWS 認定 DevOps エンジニア - プロフェッショナルサンプル試験問題 1) あなたは Amazon EBS ボリュームを使用する Amazon EC2 上で実行されているアプリケーションサーバ ー向けに 自動データバックアップソリューションを導入する業務を担当しています 単一障害点を回避し

CLUSTERPROXSingleServerSafe SingleServerSafe ご紹介 2007 年 10 月

aws_summit_abematv_fresh

主なスキル Citrix NetScaler の機能の理解 基本的な NetScaler ネットワークアーキテクチャの把握 NetScaler ライセンスの取得 インストール 管理 SSL を使用して NetScaler を保護する方法の理解 トラフィック処理および管理のための NetScaler

スライド 1

PowerPoint Presentation

PowerPoint Presentation

利用約款別紙 SkyCDP for AWS 基本サービス仕様書 この仕様書は SkyCDP for AWS の基本サービスに関する内容 方法について記述したものです 尚 SkyCDP for AWS オプションサービスをご利用のお客様は各 SkyCDP for AWS オプションサービスのご契約内容

AWS における ベストパートナーを見つける 7 つの方法 相澤恵奏アマゾンウェブサービスジャパンアライアンス技術本部テクニカルイネーブルメント部部長パートナーソリューションアーキテクト #AWSInnovate 2019, Amazon Web Services, Inc. or its affi

クラウド開発者のためのCloud Design Pattern 入門

実務に役立つサーバー運用管理の基礎 CompTIA Server+ テキスト SK0-004 対応

PowerPoint プレゼンテーション

サーバレスアーキテクチャで実現した『M-1グランプリ2015』敗者復活戦投票システム』

Microsoft PowerPoint - AWSサミット pptx

タイトル

Hundreds of Thousands of Customers in 190 Countries

AWS のコンテナ管理入門(Amazon EC2 Conatainer Service)

HyConnect/ オープンパブリックトライアルサービスサービス仕様書 2016 年 1 月 13 日 本トライアルサービスは全て無料で利用可能です 1. リージョンについて本トライアルサービスでは 仮想システムを東日本リージョン 1 東日本リージョン 2 西日本リージョン 1 の 3 リージョン

AWS におけるマルチアカウント管理の手法とベストプラクティス

PowerPoint Presentation

Bluemix いつでもWebinarシリーズ 第15回 「Bluemix概説(改訂版)」

CXD-210 Citrix XenApp および XenDesktop の管理 概要 XenAppとXenDesktopのいずれの使用経験もほとんどまたはまったくない受講者を対象としています プラットフォームを適切に運用するために必要なXenAppおよびXenDesktopの基礎知識が得られます

IRIS Cloud manager 2.indd

Yahoo! JAPANにおけるOpenStack on Kubernetes導入までの道のり

PowerPoint プレゼンテーション

Oracle Cloud Adapter for Oracle RightNow Cloud Service

PowerPoint Presentation

目次 API 公開の課題 なぜAPI 管理が必要なのか API 管理のベストプラクティス IBM API Connect を使ったAPI 管理 オージス総研のAPI 運用サービスの紹介 Copyright 2017 OGIS-RI Co., Ltd. All rights reserved. 2

システムインテグレータのIPv6対応

FINAL FANTASY XV POCKET EDITION を支える AWS サーバレス技術 LOGO ILLUSTRATION: 2016 YOSHITAKA AMANO 2018 SQUARE ENIX CO., LTD. All Rights Reserved.

Automation for Everyone <デモ で実感できる、組織全体で活用できるAnsible Tower>

Leveraging Cloud Computing to launch Python apps

版 HinemosVM クラウド管理機能のご紹介 NTT データ先端技術株式会社 2019 NTT DATA INTELLILINK Corporation

新しい 自律型データ ウェアハウス

PowerPoint プレゼンテーション

D. Amazon EC2 のインスタンスストアボリュームへ 1 時間ごとに DB のバックアップ取得を行うと共に Amazon S3 に 5 分ごとのトランザクションログを保管する 正解 = C 会社のマーケティング担当ディレクターから " 何気ない親切 " と思われる善行を目にしたら 80 文字

Hundreds of Thousands of Customers in 190 Countries

Presentation Title Here

オンラインゲームの インフラ検証 PICTURES Tech Seminar ~映像制作パイプラインとアーティストのテクニック 5~ 株式会社Aiming 菅野 明洋

Microsoft PowerPoint - CLUSTERPRO_BIG-IP.ppt[読み取り専用]

PowerPoint Presentation

FUJITSU Cloud Service for OSS 「ログ監査サービス」 ご紹介資料

2 目次 1. 実証事業の全体概要 1.1 Androidスマートフォンへの利用者証明機能ダウンロード ( 仕組み ) 1.2 iosスマートフォンへの利用者証明機能ダウンロード ( 仕組み ) 1.3 システム検証と安全性対策検討 2. 利用者証明機能ダウンロードに関するシステム検証 2.1 An

Oracle Real Application Clusters 10g: 第4世代

<4D F736F F F696E74202D2082DC82E982ED82A982E8834E FC96E55F CF68A4A A2E >

Presentation Title Here

Transcription:

DMM における会員基盤プラットフォームへの AWS 導入から活用事例の紹介 株式会社 DMM.com ラボ岩崎磨 / 飯田涼太 / 西村政輝 2017.6.2 AWS Summit Tokyo 2017 1

法務情報 DMM は第三者の製品 サービスについて 特定の製造者やサービス提供者につき 製品やサービスを評価するものではありません 当社事例は あくまで当社事案であり各社のシステム サービス要件等によって 機能 パフォーマンスその他の面で該当しない場合があります 本プレゼンテーションは当社構築した AWS システムに関する技術者の現時点での感想に基づいています 2

発表者紹介 IT戦略本部 本部長 I Infrastructure. システム本部 チームリーダー I Kanazawa. システム本部 リードエンジニア I Scala. 3

アジェンダ はじめに DMM のクラウドへの取り組み状況 事例前半 会員基盤フロントエンド改修に合わせて AWS 移行した話 事例後半 内製基盤アプリケーションの AWS 移行におけるマネージドサービス活用例 4

DMM のサービス紹介 5

DMM のクラウド利用状況 6

DMM でのクラウド利用状況推移 EC2 利用時間 毎年前年度比率 2 倍強で利用リソース量増加 ゲームでの活用から基盤への展開フェーズへ 2017 年データは 5 月時点での予測値 2014 年 2015 年 2016 年 2017 年 7

DMM クラウド推進の取り組み 8

大切にしていること スピード感何かあっても作ってからごめんなさいするスタイル (DS 方式 ) 標準化ではなくリファレンス化ルール ( 標準化 ) の押し付けでは活用は広がらないエンジニアが作った機能を横展開して皆の効率をあげていく軸 9

勉強会はたくさん開催 エンジニアはみんな勉強会大好き 新社屋セミナースペースを活用してAWS勉強会を連日開催 10

開発者向け AWS 自由利用環境の提供 DMM のエンジニア デザイナーは AWS 環境を私的利用でも自由に利用できるようにしました 名付けて AWS 実弾演習場 DMMの開発者 1 人ひとりにアカウントを発行しAWSサービスが好きなように試せる環境を提供 コストについては使いすぎ抑止のためにBillingAlertを設定 新機能のAWS Organizationsでアカウント作成 BillingAlert 設定 権限剥奪については集中的に運用 11

会員基盤フロントエンド改修に合わせて AWS 移行した話 事例紹介前半 DMM 会員機能の一部の AWS 移行について 2017.6.2 AWS Summit Tokyo 2017 12

事例の概要 背景としてオンプレ上で稼働するモノリシックなサービス基盤が存在 急激な事業拡大による運用コスト肥大化が課題 もっと事業をリードできるスピード感を求めてマイクロサービス化を進めていく中で AWS を利用したら解決が捗りました! 13

アジェンダ 当時基盤の課題点 私たちの解決事例 まとめ 14

当時の基盤の課題点 15

当時の基盤の課題点 基盤として まだ改善の余地が見込める 1. もっと運用をツール化できる 2. もっと検証精度を上げられる 3. 検証時間も短縮できる 16

課題点の具体例 1 インシデントやイベント対応など運用がツール化できておらず属人化しがち 対応が後手に回り復旧時間が長期化 障害 担当者連絡 担当者対応 復旧 17

課題点の具体例 2 サーバの維持管理を含めた費用対効果の観点から検証環境と本番環境の構成が一部異なり 検証環境では再現しない場合がある 開発環境 OK 検証環境 OK ユーザ環境 NG 18

課題点の具体例3 モノリシックかつ複雑な基盤となっており 変更は小さくても 影響が小さいとは限らない 常にじっくり時間をかける保守的な対応 Web Server 19

私たちの解決事例 20

課題点1: 復旧時間の短縮に向けて Availability Zone Availability Zone virtual private cloud 21

課題点1: 復旧時間の短縮に向けて Multi-AZの Auto Scaling Groupを設定 Multi-AZでの Clustering Availability Zone Availability Zone virtual private cloud 22

課題点 1: 復旧時間の短縮に向けて 基本的に人の手を介さずに設定に従った自動復旧を設定することで Multi-AZ 高可用性と AWS のマネージドサービスにより復旧までを時短化 障害 担当者連絡 担当者対応 復旧 23

課題点 2: リリース前の検証精度向上に向けて 必要な時だけ 全く同じ構成の環境を用意 関係者 ONLY ユーザ用 検証用 24

課題点2: リリース前の検証精度向上に向けて 検証が済んだらアクセスもリソースも解放 ユーザアクセスを 解放 リソースを解放 ユーザ用 検証用 25

課題点 2: リリース前の検証精度向上に向けて 26

課題点2: リリース前の検証精度向上に向けて 構成をstackとしてテンプレ化し AWS CloudFormationで環境を量産 Ansible + Packerでベースとなる Amazon Machine Imageを 用途ごとに作成 27

課題点 2: リリース前の検証精度向上に向けて クラウドのオンデマンドなリソースに AWS CloudFormation をかけ合わせることでサーバを遊ばせずに いつも同じ状態で検証可 無駄もなく効率的に 事前検証精度を向上 開発環境 OK 検証環境 OK ユーザ環境 OK 28

課題点 3: 検証時間の短縮に向けて マイクロサービスとして分離し 影響範囲を明確化 Web Server Web Server Web Server Web Server LB 29

課題点3: 検証時間の短縮に向けて マネージドサービスを利用した 変更管理により漏れなく対応しつつ 新規に生成した環境でスピーディな検証が可能に 30

課題点 3: 検証時間の短縮に向けて AWS を利用することでマイクロサービスとして影響範囲を明確にするだけでなく その時々に応じた最適なリソースをスピーディかつ正確に構成して検証可能に 対応周知 じっくり検証 日時調整 実施 31

まとめ 32

まとめ マネージドサービスの活用 Multi-AZ の高可用性で障害を抑制 障害時の自動復旧で時短化 潤沢なリソースと CloudFormation の利用 同一環境を無駄なく生成 破棄 検証精度を向上しつつ 時間も短縮 33

内製基盤アプリケーションの AWS 移植におけるマネージドサービス活用例 事例紹介後半 DMM の高ワークロードを支える API Gateway / OAuth2 認可基盤 2017.6.2 AWS Summit Tokyo 2017 35

アジェンダ プロジェクト概要 構成図 AWS 移行で得られたもの AWS 移行で注意したところ スケーリングと性能見積もり サービスディスカバリ 35

プロジェクト概要 構成図 36

プロジェクト概要 オンプレミスで製造 構築した内製 DMM API GatewayをAWSへ移行するプロジェクト 最重要なのは 耐障害性 DMM.comのプラットフォーム基盤の窓口となるシステム 障害発生時の影響範囲が大きい APIの窓口としての安定性と低いレイテンシも必要 オンプレミス側との通信にAWS Direct Connectも導入する 37

オンプレ時の構成図 www.dmm.com / co.jp 他サブドメインなど (数千リクエスト毎秒) 今回のAWS移行対象 内製 DMM API Gateway / OAuth2 認可基盤 (Akka Streams and HTTP製) Backend API servers LB (L4) モバイル端末 提携先システム etc. LB (L4) 38

AWS移行後の構成図 nginx ALB MySQL RDS Aurora HashiCorp Valut EC2 Systems Manager パラメータストア ECSクラスタ ap-northeast-1a ap-northeast-1c EC2 Systems Mamager Parameter Store AWS Direct Connect モバイル端末 提携先システム etc.. DMM.com データセンター Redis Sentinel ElastiCache (Redis Cluster) 39

ECSタスクと関連するコンポーネント Application Load Balancer APIコール(HTTPS) Amazon ECS アプリケーション本体のコンテナ HTTP/HTTPSはALBと連携 Agent類はSidecarパターンで用意 Datadog Agent アプリケーション監視 メトリクス収集 APIコール(HTTP) fluentd with fluentd-kinesis-plugin Kinesis Firehose S3へログ収集 メトリクス 収集 ログ収集 アプリケーション タスク構成 Amazon Kinesis Firehose Amazon S3 40

AWS 移行で得られたもの 41

AWS 移行で得られたもの 1. 堅牢なインフラ環境の入手 複数データセンター級の冗長性 (Multi-AZ) インスタンス プロセス障害時のオートヒーリング 2. ミドルウェア運用からの解放 手段 : フルマネージドサービスの活用 ALB+ACM ECS RDS ElastiCache Kinesis Firehose EC2 Systems Manager パラメータストア 採用例少ないと思うので次で紹介します! ( 他はありふれてるサービスのため省略 ) 42

EC2パラメータストアでできたこと アプリケーション用のシークレット値の取得 格納 管理コンソールや AWS CLI AWS SDKを用いての操作 AWS KMSと連携し シークレット値を 暗号化できた ここ 設定のイメージ例 43

EC2 パラメータストアで嬉しかったこと シークレット値管理のミドルウェア運用等が省力化できた! 省力化対象 before ( 当社オンプレミス ) after (AWS) ミドルウェア運用 HashiCorp Vault (HA 構成 ) HashiCorp Consul ( クラスタ構成 ) nginx SSL 証明書管理 必要 不要 ( フルマネージド ) ACL 設計 HashiCorp Vault 固有の ACL AWS IAM に統合 44

AWS 移行で注意したところ 45

クラウド環境利用における注意点 1. 動的なスケーリングを前提とした Elastic な構成 AWS 移行後は インスタンス利用料が従量課金 節約のためのスケーリングを行うことにした 2. 動的なネットワーク割当への対応 ( 例 ) アプリの設定変更をオートスケール対象全台にプッシュしたい AWS のサービスディスカバリ機能の活用で対応 内部 DNS AWS CLI/SDK 46

ElastiCacheのレプリケーション遅延対策 懸念 Redis (Master-Slave構成) のレプリケーション遅延 局面 DMM API Gatewayへの連続リクエスト 例: (Write) 認可要求 (Read) API利用時の認可判定 対策 ElastiCache Redis Clusterを採用した上で Redis Clusterへの参照 更新をプライマリノードのみに限定 実質的なMulti-Master構成として活用 メリット レプリケーション遅延の考慮が不要 負荷対策 Redis Clusterのシャーディングで分散 47

スケーリングと性能見積もり 48

出典 DMM 2017 オートスケーリング 戦略 DMMのサービスの特 性として オートスケー ルはスケジュールベース を基本として問題ない 主要商材がエンターテ イメントということもあ り ピークタイムが夜間 で不変であるため x軸単位 時 分(十の位) y軸単位 秒間リクエスト回数 赤4時間分と黄8時間分は オンデマンドインスタンスで スケールする オフピークの負荷は リザーブドインスタンス購入で節約 49

オートスケール設定で注意したこと スケールアウト時の注意点 主としてスケジュールベース 副として負荷ベースを採用 懸念 負荷ベースではインスタンス起動やウォームアップが後追い イベント等のスケーリングだけ個別対応 スケールイン時の注意点 ECSはドレイニング後のEC2インスタンスを自動でターミネート してくれない 現状(2017.6.2現在) Lambda等で仕組みの構築が必要 補足 オートスケールインはDMMの場合早朝時間帯 社員就寝中.zzZ 50

ベンチマーク概要 観点 リクエスト数ごとのレスポンスタイムはどの程度か インスタンスのスケーリングに応じてキャパシティもスケールするか 条件 下記インスタンスでの秒間 1 10,000 リクエスト時のレスポンスタイム コンポーネントインスタンスサイズ台数 ECS RDS (Aurora MySQL) ElastiCache (Redis Cluster 3 シャード ) c4.xlarge (4vCPU/8GB) db.r3.xlarge (4vCPU/30.5GB) cache.r3.large (2vCPU/13.5GB) 4,8,12 台でそれぞれ確認 4 台 (M1 RR3) 6 台 (M3 RR3) 51

ベンチマーク構成図 DMM API Gatewayを中心に負荷試験クライアントとAPIスタブを用意 APIスタブ (ping-pong) DMM API Gateway (OAuth2認可検証 ルーティング) ap-northeast-1a HTTPS HTTP 負荷試験 クライアント HTTP HTTP TLS終端処理 ap-northeast-1c 52

ベンチマーク結果(ECS 4台) (ms) 毎秒4,500リクエストが安定限界だったがオフピークはこれで十分そう 見えにくいですが 大体16ミリ秒くらいです タイムアウト10秒 53

ベンチマーク結果(ECS 8台) (ms) 毎秒6,500リクエストまで良好な成績 毎秒1万リクエストにも対応 参考 ECS 4台 54

ベンチマーク結果(ECS 12台) (ms) 毎秒1万リクエストにも余裕の対応 明らかにオーバースペック 参考 ECS 4台 参考 ECS 8台 55

ベンチマーク結果(ECS 12台 percenitile値) AZ間の通信が頻繁に発生した場合でも19ミリ秒程度のレスポンスタイム 外れ値を除外し 95パーセンタイル値まで掲載 56

サービスディスカバリ 57

LambdaベースでECSのディスカバリを実現 ③ 解決策の一つとして ECS上の 配置情報をAWS SDKで取得し DMM API GatewayのIPとportを 管理サイトへ通知するLambdaを作成 Lambdaの実行トリガーには ECSイベントストリームが利用できた ① ユースケースとして APIルーティング追加や OAuthスコープ追加など 管理サイトからECS上の DMM API Gateway全台に 更新をBroadcastしたい API Gateway 管理者 ② しかし ECS上の DMM API Gatewayは オートスケールする IPアドレスとportが 動的に変わっていく ap-northeast-1a ap-northeast-1c 管理サイト (新規作成) 58

最後に 59

まとめ AWS 環境への移行で嬉しかったこと マネージドで高可用なシステムが従来より簡単に構築できた! 高ワークロードなシステムの構築も問題なかった! AWS 環境の使いこなしで気を付けたこと インスタンスの利用料はオートスケールの活用で節約 サービスディスカバリは SDK 等の活用で利用者側が作成 60

ご清聴ありがとうございました 本日のプレゼンテーションはDMMで構築したAWSシステムに関する技術者の現時点(2017.6.2)での感想に基づいています DMMは第三者の製品 サービスについて 特定の製造者やサービス提供者につき 製品やサービスを評価するものではありません DMMは第三者の製品 サービスについて 何らかの保証を提供するものではありません