スライド 1

Similar documents
スライド 1

スライド 1


lifedesign_contest_No3

PowerPoint プレゼンテーション

<4D F736F F F696E74202D2082A282DC82B382E795B782AF82C882A FC96E CF68A4A A2E >

PowerPoint プレゼンテーション

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

数字で見る AWS 190 か国で 100 万を超えるアクティブなお客様日本で 2 万を超えるお客様 120 億ドルのビジネス規模 (2016 見込み ) 昨年度比で 58% の増加 16 地域に 42 のデータセンター群 2006 年のビジネス開始以降 60 回の値下げ 2016 年には約 1,0

PowerPoint Presentation

SpringSecurity

PowerPoint プレゼンテーション

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

Slide 1

PowerPoint プレゼンテーション

Presentation Title Here

[当日発表資料]AWS_Summit_CYBIRD_fix.key

PowerPoint Presentation

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

今更聞けない AWS クラウド入門

最新アップデート AWS IoT Solution 〜 事例とサービスアップデート 〜

製品概要

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

AWSアンチパターン祭り

Leveraging Cloud Computing to launch Python apps

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

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

PowerPoint Presentation

最新 IoT デザインパターン 〜AWS IoT と AWS Greengrass を用いた構築パターン〜

Presentation Title Here

スライド 1

Enterprise Cloud + 紹介資料

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

企業 IT を支える AWS クラウドプラットフォームとre:Invent 2015 発表 新サービス・機能 update ~ここから始めるクラウド化、ベスト・プラクティスのご紹介~

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

Presentation Title Here

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

Hundreds of Thousands of Customers in 190 Countries

AWS Deck Template

WTM2019SingleSignOn

AWS Deck Template


AWS で実現するセキュリティ・オートメーション

(1)

AWS Deck Template

流通業界におけるデジタルトランスフォーメーションの実践

AWS Well-Architected フレームワークによるクラウド ベスト プラクティス

Server and Cloud Platform template

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

AWSSummitTokyo2018

Startup_on_AWS_usecases_StartupDay

PowerPoint Presentation

Presentation Title Here

AWS Mobile Deep Dive - 入門から実践までの最短コース 〜 ライブコーディングで学ぶ AWS を活用したモバイルアプリの開発 〜

AWS 麻雀 Ver1.1 JAWS-UG

AWSの最新テクノロジー動向 - AWS最大のユーザーカンファレンス AWS reInvent速報 -

TC-01 ビッグデータだけじゃない! Amazon DynamoDB の活用事例 Cassandra から DynamoDB への移行で見えたその特徴 サイバーエリアリサーチ株式会社中西健

FileMaker Cloud App FileMaker Pro FileMaker Go FileMaker WebDirect App FileMaker Cloud Amazon Web Services (AWS) Marketplace AWS FileMaker Server File

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

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

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

(Microsoft PowerPoint - \221\346\216O\225\224.ppt)

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

オージス総研0707セミナー

Make the Future Java FY13 PPT Template

Presentation Title Here

OGIS_サービス基盤としてのAWS

Slide 1

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

InfoFrame Relational Store V2.2 構築ガイド for Amazon Web Services RS J

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

Presentation Title Here

スライド 1

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

Hundreds of Thousands of Customers in 190 Countries

A.週間ランキングメールのパーソナライズ配信 (セグメント小)

Elastic MapReduce bootcamp

aws_summit_abematv_fresh

Presentation Title Here

AWSマイスターシリーズ ~CloudFront & Route53~

教えて!中堅企業の事例に学ぶ AWS 活用サクセスストーリー

Microsoft PowerPoint - janog15-irr.ppt

セミナースライド

スライド 1

PowerPoint プレゼンテーション

内容についての注意点! AWS クラウドのサービスは ご利利 用いただいた時間や量量により費 用が変動する従量量課 金金です そのため 事前に料料 金金確定 見見積を作成することはできない旨はご了了承ください! 特に断りがない場合 本資料料では 2014 年年 7 月 24 日現在の東京リージョンの

自己紹介 氏縄武尊 (Ujinawa Takeru) Work 株式会社オージス総研テミストラクトソリューション部 3 年目 ID 管理 認証周りの開発 OpenID Connect, AWS Private 滋賀県彦根市出身 Copyright 2016 OGIS-

PowerPoint プレゼンテーション

Microsoft PowerPoint - ABC_2011_1_9_yoichiro.pptx

Leveraging Cloud Computing to launch Python apps

商用監視ソフトウェアユーザの Zabbix 移行へ朗報 Zabbix Event Viewer のご紹介 【本邦初公開】

技術レポート 1)QuiX 端末認証と HP IceWall SSO の連携 2)QuiX 端末認証と XenApp の連携 3)QuiX 端末認証 RADIUS オプションと APRESIA の連携 Ver 1.1 Copyright (C) 2012 Base Technology, Inc.

_BlackBelt_ApplicationAuthPatterns

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

Notesアプリが iPadで動くDomino Mobile Apps ご紹介

_AWSを使ったモバイルアプリの設計と実装_公開版

SORACOM Beam-Funnel-Endorse

久原本家グループ本社

How to Use the PowerPoint Template

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

Transcription:

コマース用スマフォアプリにおける AWS 構成 &Cognito 活用事例 クルーズ株式会社 SHOPLIST.com 事業本部稲垣剛之 / 加川申祐技術統括本部 TeamZeus 田沢知志 CROOZ,Inc. 1

CROOZ って何やってる会社? CROOZ,Inc. CROOZ は ソーシャルゲームやネット通販を中心に 世界中にインターネットサービスを提供するエンターテインメント企業です

CROOZ,Inc. 3 アジェンダ SHOPLIST.com の AWS 構成 / 負荷概要 Congito 活用事例 今後の AWS 活用予定 方向性 今後 AWS に期待したいこと

CROOZ,Inc. 4 SHOPLIST.com の AWS 構成 / 負荷概要

SHOPLIST.com ご紹介 年間取扱高約 100 億円 (2014 年度 ) 単月取扱高 10 億円突破 (2015/4) 取扱高の90% 以上はスマートフォン経由 CROOZ,Inc. 5

インフラ構成概要 AWS cloud DB on instance (MariaDB / ElasticSearch) データセンター Route 53 ELB (Front) Web on instances ElastiCache (Redis) CloudFront nginx on instances S3 Amazon Redshift EMR 画像配信 サービス配信 CROOZ,Inc. 6

OS/Middleware 概要 CROOZ,Inc. 7 OS:CentOS6.4 Web:apache2.2 系 /PHP5.4 系 社内独自フレームワーク VENUS 使用 Cache:Amazon ElastiCache(Redis) DB( トランサ クション系 ):MariaDB 10.0.13 系 DB( 検索系 ):Elasticsearch 1.5.2 系 Amazon Elastic MapReduce(Spark 1.3.1)

インスタンスタイプ (2015/5 時点 ) インスタンスタイプは 3-6 か月単位で再検討 旧 / 新インスタンスを比較すると コストパフォーマンスは 3 割以上良い ( 印象 ) 現在メインで使用してるタイプは Web 系 :c3.2xlarge c3.xlarge DB 系 :r3.4xlarge r3.2xlarge EBS は gp2 をメインで使用 Cache:cache.r3.large その他 ( バッチ系 ):m3.xlarge CROOZ,Inc. 8

スケーラビリティに関して CROOZ,Inc. 9 年 3 回実施の メガセール 事例 通常時の約 5 倍のアクセス数 ( ピークは 10 倍 ) ピーク時の 過去最大リクエスト数は 1,000r/s ただし Latency はサイト全体 900ms を超えることはない

コストの考慮点 CROOZ,Inc. 10 1インスタンスあたりのrequests/sを想定 弊社参考例 Web(c3.2xlarge) 100r/s DB(r3.2xlarge gp2) 200r/s Cache(r3.large) 500r/s 想定 requests/sから必要インスタンスを算出売上の?% 以内をクラウドコスト目標に

画像配信に関して CROOZ,Inc. 11 画像配信は CloudFront を使用 オリジンは S3 に配置 サムネ作成は nginx/small LIGHT 使用 Reports & Analytics 機能もあり 数 TB/ 日の配信で利用 リザーブドプラン契約により 3-4 割安に

Congito 活用事例 CROOZ,Inc. 12

インフラ構成概要 CROOZ,Inc. 13 AWS cloud Cognito データセンター DB on instance (MariaDB / ElasticSearch) Route 53 ELB (Front) Web on instances ElastiCache (Redis) CloudFront nginx on instances 画像配信 S3 Amazon Redshift サービス配信 EMR

Cognito を選定した理由 CROOZ,Inc. 14 極力 EC2 を経由せず アプリ 新サービスからのアクセスを捌きたい SHOPLIST.com の認証基盤を今後新サービスにも展開したい アプリのパーソナライズデータやユーザの行動情報を活用したい

導入時に苦労した点 / 導入して良かった点 CROOZ,Inc. 15 既存の認証基盤を活用する場合 id 管理にのみ使用するのであれば一手間増えるだけになってしまう デバイス間のデータ同期の仕組みを新規で作らなくて良い Latency は気になるレベル

具体的なプログラムの概要 CROOZ,Inc. 16 SHOPLIST.com アプリでは developer authenticated identities を使用 ゲストモード (unauthenticated identities) にも対応 実装自体は容易です

ios 実装 CROOZ,Inc. 17 // ゲストログイン AWSCognitoCredentialsProvider *credentialsprovider = [AWSCognitoCredentialsProvider credentialswithregiontype:awsregionuseast1 accountid:_accountid identitypoolid:_identitypoolid unauthrolearn:nil // Arn は nil 指定 authrolearn:nil]; // Arn は nil 指定 AWSServiceConfiguration *configuration = [AWSServiceConfiguration configurationwithregion:awsregionuseast1 credentialsprovider:credentialsprovider]; [AWSServiceManager defaultservicemanager].defaultserviceconfiguration = configuration; // Developer authenticated identities CustomIdentityProvider *customidentityprovider = [[CustomIdentityProvider alloc] initwithidprovider:idprovider accountid:_accountid identitypoolid:_identitypoolid token:token]; customidentityprovider.logins = @{name:token}; AWSCognitoCredentialsProvider *credentialsprovider = [[AWSCognitoCredentialsProvider alloc] initwithregiontype:awsregionuseast1 identityprovider:customidentityprovider unauthrolearn:nil // Arn は nil 指定 authrolearn:nil]; // Arn は nil 指定 AWSServiceConfiguration *configuration = [AWSServiceConfiguration configurationwithregion:awsregionuseast1 credentialsprovider:credentialsprovider]; [AWSServiceManager defaultservicemanager].defaultserviceconfiguration = configuration;

ios 実装 (CustomIdentityProvider) - (BFTask *)getidentityid { // ゲストログインに対応していると切り替え時に self.identityid があるためサーバサイドにリクエストが通らないため サーバサイドにリクエストを飛ばしたことを判定する必要があります if (self.identityid && model.ismemberloginrequest) { return [BFTask taskwithresult:@{@"result" : @"1"}]; } else { return [[BFTask taskwithresult:nil] continuewithblock:^id(bftask *task) { if ( self.identityid && model.ismemberloginrequest) { return [BFTask taskwithresult:@{@"result" : @"1"}]; } else { return [self refresh]; } }]; } } - (BFTask *)refresh { BFTaskCompletionSource *source = [BFTaskCompletionSource taskcompletionsource]; ApiRequest *authapi = [_idprovider.apimanager generateauthapibytoken:_token]; // SHOPLIST の API リクエストの実装 [authapi requestasynccompletionhandler:^(apirequest *request) { NSDictionary *response = request.response; if (![request hassucceeded]) { [source setresult:response]; } else if ([[response valueforkey:@"result"] intvalue] == 1) { model.ismemberloginrequest = YES; self.identityid = [[response valueforkey:@"data"] valueforkey:@"identityid"]; self.token = [[response valueforkey:@"data"] valueforkey:@"token"]; [source setresult:response]; } else { [source setresult:response]; } }]; return [source task]; } CROOZ,Inc. 18

サーバサイド実装 (PHP) CROOZ,Inc. 19 class CognitoAuthenticator { public function register($token, $oldtoken = false) { $result = array(); $config = array('key' => 'XXXXXXX, 'secret' => 'XXXXXXX, 'region' => 'us-east-1 ); try { $idclient = CognitoIdentityClient::factory($config); $response = $idclient->getopenidtokenfordeveloperidentity(array( 'IdentityPoolId' => 'xxxxxxxxxxxxxx, 'Logins' => array( 'name' => $token, ) )); $identityid = $response->get('identityid'); $openidtoken = $response->get('token'); // 古い token のマージ ( 無期限 token というわけにもいかないので更新された場合の対応が必要 ) if ($oldtoken) { $mergeresponse = $idclient->mergedeveloperidentities(array( 'DestinationUserIdentifier' => $token, 'DeveloperProviderName' => xxxxxxxxxxxxxxxx, 'IdentityPoolId' => xxxxxxxxxxxxxxxxxxx, 'SourceUserIdentifier' => $oldtoken) ); $identityid = $mergeresponse->get('identityid'); } $result['identityid'] = $identityid; $result['token'] = $openidtoken; } catch (Exception $e) { // エラー処理 } return $result; } }

今後の AWS 活用予定 方向性 CROOZ,Inc. 20

今後の AWS 活用方針 AWS cloud Amazon Kinesis EMR データセンター Cognito DynamoDB Amazon Redshift Route 53 ELB (Front) Web on instances CloudFront Varnish on instances 画像配信 S3 ElastiCache (Redis) サービス配信 DB on instance (Maria / ES) CROOZ,Inc. 21

EC サイトを更に便利にするために CROOZ,Inc. 22 リアルタイムに精度の高いアイテムをお勧めデバイス間でのシームレス パーソナライズされたショッピング環境の提供 ユーザメリットにフォーカスした検索並び順 未来販売予測による売れ筋アイテムの効率的な在庫確保

今後 AWS に期待したいこと CROOZ,Inc. 23

今後リリースされる機能が盛りだくさん! CROOZ,Inc. 24 Machine Learning 未来販売予測 不適切レビュー 商品検知 Aurora 無停止 & 柔軟な RDB 拡張 Lambda 最低限インスタンスでのサービス実現 etc

今後 AWS に期待したいことは CROOZ,Inc. 25 無停止でのインスタンスタイプ変更 不正アクセスやアプリケーションレベルの攻撃をモニター 検知する WAF(Web Application Firewall) の仕組みを公開 EC2 がより少なくて済むようなコストメリットが高く 運用しやすいアーキテクチャー ミドルウェアの提供

ご清聴ありがとうございました CROOZ,Inc. 26