• 検索結果がありません。

Presentation Title Here

N/A
N/A
Protected

Academic year: 2021

シェア "Presentation Title Here"

Copied!
94
0
0

読み込み中.... (全文を見る)

全文

(1)

【初心者向けWebinar】

AWSでのNoSQLの活用

2015/07/14

アマゾン データ サービス ジャパン株式会社 ソリューションアーキテクト 森 祐孝

(2)

初心者向けWebinarのご紹介

• AWSについてこれから学ぶ方向けのソリューション

カットの技術Webinarです。

• 過去のWebinar資料

– AWSクラウドサービス活用資料集ページにて公開 http://aws.amazon.com/jp/aws-jp-introduction/

• イベントの告知

– 国内のイベント・セミナースケジュールページにて告知 http://aws.amazon.com/jp/about-aws/events/ (オンラインセミナー枠)

(3)

アジェンダ

• Introduction

• 基本的なサービスのご紹介

• NoSQLとRDB

• AWS環境でのNoSQL

• まとめ

(4)

アジェンダ

• Introduction

• 基本的なサービスのご紹介

• NoSQLとRDB

• AWS環境でのNoSQL

• まとめ

(5)

Introduction

• Amazon Web Service(AWS)では、様々なデータ

ベースサービスを提供しています。データベースサービ

スの中でNoSQLサービスにフォーカスし、NoSQLに関

する機能やRDBMSとの違いを紹介致します

• 現在NoSQLはRDBMSでは処理し辛い領域を補いながら

活用されており、NoSQLサービスの典型的な使い方や

使いどころについて紹介いたします

(6)

アジェンダ

• Introduction

• 基本的なサービスのご紹介

• NoSQLとRDB

• AWS環境でのNoSQL

• まとめ

(7)

基本的なAWS上でのWeb+DBサーバの構成

• よくある構成

– DNSサーバ

– Load Balancer (LB)

– WEBサーバ

– DBサーバ

– CDN+Origin

Availability Zone Availability Zone

(8)

• AWSのリージョン内の区分け • 地域的に近いデータセンタ群 • リージョン内のAZは、同時障害の確 率が低くなる様に設計 • 2箇所が同時に障害になること はほぼない • 複数のAZを利用する構成にすること でサービスの可用性を上げられる

Availability Zone (AZ)

基本的なAWS上でのWeb+DBサーバの構成

Clients

(9)

Clients Availability Zone Amazon EC2 Availability Zone • クラウド上の仮想サーバ • 用途に応じた様々なタイプ • CPU重視、メモリ重視、等 • 1時間単位の従量課金 • 不要になったら止めればいい • 様々なOSを選択可能 • Window Server、Redhat、 CentOS等 • イメージを保存して複製できる • 簡単バックアップ • 必要な時にすぐサーバ追加可能

Amazon Elastic Compute Cloud

(EC2)

(10)

Clients

Availability Zone Availability Zone

• クラウド上のRDBMS • MySQL, PostgreSQL, ORACLE, SQLServerから選択可 • 用途に応じた様々なタイプ • スタンダード、メモリ重視、等 • 1時間単位の従量課金 • タイプ変更も単価が変わるだけ • AWSのマネージドサービス • バックアップや障害時自動切替 • 高度な運用スキルは必要ない Amazon RDS

Amazon Relational Database Services

(RDS)

(11)

Clients

Availability Zone Availability Zone

• クラウド上の負荷分散機 • 複数のEC2にリクエストを分散 • ヘルスチェックで可用性もUP • 負荷状況に応じて自動でスケール • ELB自体が自動で拡大・縮小 • 1時間単位の従量課金 • 不要になったら止めればいい • API、機能毎にELB分けても安価 • AWSのマネージドサービス • LB運用はAWSにお任せ Elastic Load Balancing

Elastic Load Balancing (ELB)

(12)

Clients

Availability Zone Availability Zone

• クラウド上のオブジェクトストレージ • 無限に置けるファイル置き場 • 複数AZに自動で複製する耐久性 • S3単体でHTTPのファイル配信も • 画像や動画などのアセット配信 • 静的サイトならEC2不要 • 使った分だけの従量課金 • AWSのマネージドサービス • ファイル置き場にもう悩まない Amazon S3

Amazon Simple Storage Service (S3)

(13)

Clients

Availability Zone Availability Zone

• クラウド上のCDN • 静的ファイルを高速配信する ネットワーク • 自動で近くのエッジサーバから 配信 • S3をオリジンに設定することも • S3との通信は無料 • 使った分だけの従量課金 • AWSのマネージドサービス

Amazon CloudFront

CloudFront

基本的なAWS上でのWeb+DBサーバの構成

(14)

Clients

Availability Zone Availability Zone

• クラウド上のDNSサービス • 独自ドメインのレコードを設定 • API経由でも簡単操作 • 使った分だけの従量課金 • AWSのマネージドサービス

Amazon Route 53

Amazon Route 53

基本的なAWS上でのWeb+DBサーバの構成

(15)

AWS SDKs and CLI

• 各種言語むけのオフィシャルSDKやCLIを利用

Java Python PHP .NET Ruby nodeJS

iOS Android

Javascript

(16)

アジェンダ

• Introduction

• 基本的なサービスのご紹介

• NoSQLとRDB

• AWS環境でのNoSQL

• まとめ

(17)

NoSQL?

「NoSQL(一般に”Not only SQL”と解釈される)とは、

リレーショナルデータベース管理システム (RDBMS) 以外

のデータベース管理システムを指すおおまかな分類語であ

る。リレーショナルデータベースをやみくもに使用してき

た長い歴史を打破し、それ以外のデータベースの利用・発

展を促進させようとする運動の標語としての意味合いを持

つ。」

NoSQL - ウィキペディア https://ja.wikipedia.org/wiki/NoSQL

(18)

RDBMS?

• データは表形式で保存

• データベース言語SQLを利用してデータを操作

• トランザクション処理

– 関連付けられた複数の処理が「すべて成功」か「すべて失敗」のどちらかであ ることを保証

• データ一貫性

• スケールアウトが困難

– 高負荷時、アクセスが集中した場合、構造的にスケールアウトが難しいのでレ イテンシを稼ぐのが難しい

(19)

NoSQL

• RDBMSではないデータストアの特徴

– 固定されたスキーマに縛られないこと

– 関係モデルの結合操作を利用しないこと(場合によっては単に

そのような機能が欠落しているだけ)

– 水平スケーラビリティが確保しやすい事が多いこと

– トランザクションを利用できないものが多いこと

NoSQL - ウィキペディア https://ja.wikipedia.org/wiki/NoSQL

(20)

よく見かけるNoSQLデータベース

• Neo4j

• Couchbase

• DynamoDB

• Redis

• MongoDB

• Riak

• HBase

• Cassandra

• BigTable

• HyperTable

(21)

NoSQLの4つのデータモデル

• キーバリューストア(Key-Value Store)

– キーに対してバリュー(値)という単純な構造 – 高速なパフォーマンスとデータ分散が行えるため拡張性に優れている – データの読込がRDBと比較して高速であることが特徴 – 例)Riak、Redis

• カラムストア(Column Store)

– ワイドカラムストア(Wide-column Store)とも呼ばれます – 列指向とも言われることもありますが、データはRDBのようにレコード(行)で管理 される。アクセスはキーバリューと同じようにキーを使用して列単位 – 非定型の大規模データを格納することを主な目的としており、行ごとに任意の名前の カラム(列)を無数に(時には1行に数百万カラム)格納でき、RDBより柔軟性とパ フォーマンス、拡張性で優れていていると言われ、データの書き込みが高速であるこ とが特徴です – 例)HBase、BigTable

(22)

NoSQLの4つのデータモデル

• ドキュメントデータベース(Document Database)

– キーに対してバリューではなく、 JSONやXMLのスキーマレスでデータ構造が柔軟な より、複雑なドキュメントとしてデータを格納 – 複雑なデータ構造を扱うアプリケーションにおいては、生産性高く柔軟に開発できる メリットがありる – 例)MongoDB、CouchDB

• グラフデータベース(Graph Database)

– グラフ理論に基づき、相互に結びついた要素で構成され、それぞれの間に任意の数の 結びつきのあるデータ同士の関係をグラフとして表すのが適切なデータを対象とする ように設計 – グラフデータベースは、従来のRDBでは不可能だった形でデータの関係をモデル化し 探索するのに役立つように作られており、データをグラフ型で格納した場合、RDBと 比較して高速に横断検索をすることが可能 – 例)Neo4J、Polyglot

(23)

NoSQL vs RDBMS

トランザクション特性

➔BASE

得意/メリット

➔スケーラビリティ

不得意/デメリット

➔複雑なクエリ

➔トランザクション

トランザクション特性

➔ACID

得意/メリット

➔柔軟なクエリ

➔トランザクション

不得意/デメリット

➔スケーラビリティ

NoSQL

RDBMS

(24)
(25)

Atomicity、Consistency、Isolation、Durability

• 原子性(atomicity、不可分性)

– トランザクションに含まれるタスクが全て実行されるか、あるいは全く実行されない ことを保証する性質

• 一貫性(consistency)

– トランザクション開始と終了時にあらかじめ与えられた整合性を満たすことを保証す る性質 – 整合性条件を満たさない状態を起こすようなトランザクションは実行が中断

• 独立性(isolation)

– トランザクション中に行われる操作の過程が他の操作から隠蔽

• 永続性(durability)

– トランザクション操作の完了通知をユーザが受けた時点で、その操作は永続的となり、 結果が失われないこと

(26)
(27)

Basically Available, Soft-state,

Eventually consistent

• 主に分散システム上でのスケーラビリティを確保するた

めに厳密なトランザクションをあきらめている

– Basically Available:サービス提供中であっても、古いデータが返ることや、 データ更新作業のためにクエリが失敗する可能性がある – Soft-state:入力がない状態でも、結果整合性をたもつためのデータ更新作業に より、状態の変化がある可能性がある – Eventually consistent:データ更新モデルは結果整合性が取られており、入力後 の即時更新は保証されない

• すべてのNoSQLが完全にBASEとは限らない(実装によ

る)

(28)
(29)

RDBMS vs. NoSQL

• 日本ではSQL対応のデータベース(RDBMS)が多用されて

いる。

– RDBMSによる: トランザクション処理 or 分析処理(データウェアハウス) – ACID属性 vs. BASE属性

• 一般的にNoSQLの特徴として、下記の点があげられる

– ストレージ容量をスケールさせやすい – スループットをスケールさせやすい – 実際にストレージやスループットが増えてきた時に性能劣化しにくい

(30)

NoSQLの使いドコロ

• NoSQLの利用価値は?

– 低レイテンシ・高スループット、シンプルなAPI – Webセッション管理 – Publish・Subscribeモデル、イベント処理 – JSON形式データの格納 – ソーシャル・グラフ、BOM(Bill of material)ツリーの検索

これらの特徴が必要とされるところがNoSQLの使いドコロ。

ただし、これもNoSQLの一般的な特徴として、自前で運用する

のにはかなりの労力が必要とされる。

(31)

アジェンダ

• Introduction

• 基本的なサービスのご紹介

• NoSQLとRDB

• AWS環境でのNoSQL

• まとめ

(32)

Compute Storage

AWS Global Infrastructure

Application Services

Deployment & Administration

Networking Database Amazon DynamoDB Amazon RDS Amazon ElastiCache Amazon Redshift スケーラブルで高パフォーマンス AWS上で 利用可能なデータベース・サービス

AWSデータベース・サービス

(33)

AWSデータベース・サービスの概要

• フルマネージド・データベースの特性に応じた使い分け

NoSQL SQL Amazon ElastiCache • 低レンテンシ • インメモリ Amazon DynamoDB • 3拠点間での レプリケーション • SSDに永続化 Amazon RDS • トランザクション 処理 • RDBMSの 容易な運用管理 Amazon Redshift • 集計・分析処理 • データウェアハウス (大容量データ)

(34)

DynamoDB

NoSQLデータベースサービス

保証されたパフォーマンスとスケーラビリティ

ElastiCache

インメモリキャッシュサービス

デプロイ、操作、スケールが簡単

NoSQLデータベース・サービス

(35)
(36)

Amazon ElastiCacheとは

• 構築 – キャッシュクラスタを数クリックで起動 – EC2、RDSと同様、初期費用無し、時間単位の従量課金 • 移行 – 2種類のエンジン(memcached, redis)をサポート – 既存アプリケーションの変更不要 • 運用 – 可用性を向上させる機能 – モニタリング、自動障害検出、復旧、拡張、パッチ管理 機能を提供 • セキュリティ – セキュリティグループ、VPC対応、 メモリ内キャッシュをマネージドで提供するサービス →キャッシュに読み込まれたオブジェクトを保存し、性能負荷を軽減する

(37)

アプリケーションの高速化

目的 アプリを高速化する手法の一つ 消えても良いデータを格納してDBアク セス・負荷を低減 メモリにキャッシュしたデータを再利 用し 低遅延化・負荷低減 ELB App External APIs ElastiCache 用途 クエリ結果を再利用 (DBサーバの負荷低減、高速化) 揮発性の高いデータを格納 (セッション情報管理) 複雑な計算結果・二次データを再利用 (APPサーバの負荷軽減)

(38)

メモリキャッシュとは?

• Web+DBアプリケーションの典型的な構成

App RDBMS 1. クライアントからのリクエスト 2. Appサーバが、DBサーバに問い合わせ 3. DBサーバが結果を戻す 4. Appサーバがレスポンスをクライアントに返す

(39)

メモリキャッシュとは?

• トラフィックが増えると

App RDBMS 5. Appサーバ,DBサーバをスケール 6. 効果・効率・コスト的な面、DBをスケールさせる難易度は? ⇒ RDBをスケール“アウト”させるのは難しい。 App RDBMS

(40)

メモリキャッシュとは?

• DB負荷を軽減するためにキャッシュにデータを載せる

– アプリケーション側で、DBとキャッシュを使い分ける

App RDBMS

(41)

メモリキャッシュとは?

• データ参照時の操作

キャッシュ App RDBMS ■キーを検索軸に属性データがキャッシュにあるか? 取得して完了 ②なければDBへクエリ クエリ結果を取得 DBにクエリを実行した場合、 クエリ結果をキャッシュ 繰り返し ⇒(Point)キャッシュに最新結果が反映される ①あればキャッシュへ

(42)

メモリキャッシュとは?

• 更新時の操作

常にDBにInsert / Update その結果をオブジェクト書き込み キャッシュ RDBMS ⇒(Point)キャッシュには最新結果が反映される ■キーを検索軸に属性データをキャッシュに配置する App 繰り返し

(43)

セッション管理

• 共有キャッシュとして使った構成

 複数のAppサーバで共有するセッション用メモリ空間を実現  多くの言語やフレームワークが対応済み  セッションレプリケーションやロードバランサに依存しない構成が可能 App App キャッシュ L B ■セッションIDのキーを検索軸に属性データを参照

(44)

2 つのインメモリキャッシュエンジン

 マルチノードクラスタ

 オートディスカバリ

 非永続化

 リードレプリカ

 バックアップリストア

 永続化オプション

ElastiCache Redis memcached

(45)

memcachedとは?

• インメモリ key-value ストアキャッシュサーバ

 2003年にDanga Interactiveが開発(BSDライセンス)

 ブログサービス「Live Journal」の負荷対策用に作られたもの  多くのサイトで採用 (YouTube, Wikipedia, mixi, etc. )

• 特徴

 KVSのデファクトスタンダードプロトコル • Key-valueのシンプルなデータ構造 • パフォーマンス向上を重視  主要機能のみのシンプルな機能 • アクセス制御などのセキュリティ機能無し • マスタノード、シャーディング、レプリケーションなどの機構無し – データ削除は明示的、期限、LRUの3方式

(46)

Amazon ElastiCache for memcached

• 特徴

– 対応バージョン 1.4.5、1.4.14 (2015.7.14現在)

– memcached プロトコル準拠

– Cache Clusterという論理グループに、Cache Nodeを複数台起動

– ノードの自動検出機能のAuto Discovery対応Client Libraryを提供

– バックアップ機能(Snapshot)は持たない

CacheCluster A CacheCluster B Configration Endpoint Configration Endpoint Node Endpoin t Node Endpoin t Node Endpoin t Node Endpoin t

(47)

Redisとは?

• In-memory Key-Value Store

• 高機能なデータ構造、データ操作

– List, Set, Sorted Set, Hash

• 永続化機構

– SAVE/BGSAVE

• Snapshot,フルダンプ – Append only File

• 書き込みコマンドの記録 • 冗長化機構 – Replication • Pub/Sub機能 – 非同期メッセージング • Lua scripting – 高度な計算をRedisで実行可能 http://redis.io/

(48)

ElastiCache for Redis

• 特徴

– 対応バージョン: 2.6.13、2.8.6、2.8.19 (2015.7.14現在)

– 複数のCluster Group から構成されるReplication Group を構成し複数ノードで同期が取 れる – S3上のスナップショット(RDB)プリロード機能でElastiCache 上へのデータ移行も容易 – Multi-AZ配置での自動フェイルオーバーにも対応 – Snapshotベースでのバックアップリスト機能にも対応 – Redisの機能をほぼサポート • Lua Scripting • Pub/Sub

• Append Only File

• 対応しない機能

– CONFIG, SLAVEOFなど一部コマンドのみ無効

(49)

ElastiCache for Redisの高可用性と永続性

• マルチAZのための非同期レプリケーション機能 • ElastiCache は自動的に障害を検知し、1 つのリー ドレプリカへフェイルオーバーを行う • クラスターのスナップショットを作成することで データの保護に役立つ • スナップショットは、新しい Redis 用 ElastiCache クラスターをシードするためにも使用できる

(50)

ElastiCacheの料金体系

• オンデマンド キャッシュノード

– 初期費用無し、時間単位の従量課金モ デル – MemcachedとRedisでどちらも料金 は変わらず

• リザーブド キャッシュノード

– 予約金を支払うことで時間当たり価格 を割引(最大70%節減) – アベイラビリティゾーンの指定が不要 時間あたりの料金(東京リージョン) ※2015年7月14日現在

Standard Cache Nodes - Current Generation

cache.t2.micro $0.026 cache.t2.small $0.052 cache.t2.medium $0.104 cache.m3.medium $0.120 cache.m3.large $0.240 cache.m3.xlarge $0.485 cache.m3.2xlarge $0.965

Memory Optimized Cache Nodes - Current Generation cache.r3.large $0.273 cache.r3.xlarge $0.546 cache.r3.2xlarge $1.092 cache.r3.4xlarge $2.184 cache.r3.8xlarge $4.368

(51)

ElastiCacheの料金体系

• バックアップストレージ

– Redis向け機能

– 各クラスタに対して1つのSnapshotは無料

– 2つ以上のSnapshotから毎月 0.085 USD/GBが課金

• AZ間データ転送量

– 同AZ内でのEC2とElastiCache間の通信は課金対象外 – 同一リージョンの異なる AZにある EC2とElastiCache間のみ、 0.01 USD/GB が課金 http://aws.amazon.com/jp/elasticache/pricing/ http://aws.amazon.com/jp/elasticache/reserved-cache-nodes/

(52)

Availability Zone Availability Zone

Amazon ElastiCache

ElastiCache

AWS上でのWeb+DBサーバの構成(キャッシュサーバ)

• クエリ結果を再利用 • DBサーバの負荷低減 • 高速化 • 揮発性の高いデータを格納 • セッション情報管理 • 複雑な計算結果、二次デー タを再利用 • APPサーバの負荷軽減 Clients

(53)

マネックス証券様 Monex Insight

• Webベースのリアルタイム市場データ配信システム

– 投資家による取引の判断基準に使われるため、リアルタイム性が要求 される。 – 指数情報、業種情報、通貨ペア、コモディティ等を表示

• 大規模な顧客基盤を支えるために高いスケーラビリティも求められ

る。

• 株式市場の取引時間に合わせて、リソースの増減を制御

(54)

マネックス証券様 Monex Insight

(55)

ElastiCacheの使いどころ

• キー・ベースでのアクセス

– set(key, value)、value = get(key)

• あくまでキャッシュであり、主はRDBMS等に永続化されることを

前提とする

• 更新頻度が低く、アクセス頻度が高いデータをキャッシュ

-> キャッシュ・ヒット率が高い

http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-elasticache

(56)
(57)

Amazon DynamoDBの特徴

• 完全マネージド型の NoSQL データベースサービス

– ストレージの容量制限がない – OSやソフトウェアのパッチ等の運用管理の必要なし – サーバーの設定、サーバのプロビジョニングも必要なし

• ハイスケーラブル、低レイテンシー

• 高可用性– 3x レプリケーション

• シンプル且つパワフルAPI

クライアント

(58)

Flexible

キーバリューデータストア

• テーブル内のそれぞれのアイテ ムは属性と値のリストで保持さ れる • 1つ以上のAttributeを持ち、 アイテム間で不揃いであっても 問題ない • 属性はあとから追加できる

ドキュメントデータベース

• Jsonデータのサポート

(59)

DynamoDBを使い始めるには

1.

テーブルのKeyやIndexを決める

2.

Read/Writeそれぞれのスループットを決める

(60)

Table

table

items

attributes

Hash

Key

Range

Key

必須 キーバリュー型のアクセスパ ターン データ分散に利用される オプション 1:Nモデルのリレーション シップ 豊富なQueryをサポート ハッシュキー検索用 ==, <, >, >=, <= “begins with” “between” sorted results counts 先頭/末尾 N件 ページ単位出力 name/value 型、JSON 型 アイテム間で不揃いであ っても問題ない

(61)

Local Secondary Index (LSI)

• Range key以外に絞り込み検索を行うkeyを持つことができる

• Hash keyが同一で、他のアイテムからの検索のために利用

A1 (hash) A3 (range) A2 (table key) A1 (hash) A2 (range) A3 A4 A5 LSIs A1 (hash) A4 (range) A2 (table key) A3 (projected) Table KEYS_ONLY INCLUDE A3 A1 (hash) A5 (range) A2 (table key) A3 (projected) A4 (projected) ALL

(62)

Global Secondary Index (GSI)

• Hash Key属性の代わりとなる

• Hash Keyをまたいで検索を行うためのインデックス

A1 (hash) A2 A3 A4 A5 GSIs A5 (hash) A4 (range) A1 (table key) A3 (projected) Table INCLUDE A3 A4 (hash) A5 (range) A1 (table key) A2 (projected) A3 (projected) ALL A2 (hash) A1

(63)

Data Types

• String (S)

• Number (N)

• Binary (B)

• String Set (SS)

• Number Set (NS)

• Binary Set (BS)

• Boolean (BOOL)

• Null (NULL)

• List (L)

• Map (M)

JSON用に定義

(64)

Documentデータ型 (JSON)

• データタイプ (M, L, BOOL,

NULL) としてJSONをサポート

• Document SDKs

– 単純なプログラミングモデル – JSONから、JSONへの変換 – Java, JavaScript, Ruby, .NET

Javascript DynamoDB string S number N boolean BOOL null NULL array L object M

(65)

プロビジョンドスループット

• テーブルごとにReadとWriteそれぞれに対し、必要な分

だけのスループットキャパシティを割り当てる(=プロ

ビジョンする)ことができる

• 例えば下記のようにプロビジョンする

– Read : 1,000 – Write : 100

• 書き込みワークロードが上がってきたら

– Read : 500 – Write : 1,000

• この値はDB運用中にオンラインで変更可能

(66)

• CreateTable • UpdateTable • DeleteTable • DescribeTable • ListTables • GetItem • PutItem • UpdateItem • DeleteItem • Query • Scan • BatchGetItem

• BatchWriteItem • ListstreamsDescribeStream • GetShardIterator • GetRecords

Table API

Streams API

DynamoDB

In preview

(67)

DynamoDBの料金体系

• プロビジョンドスループットで決まる時間料金

– Read/Writeそれぞれプロビジョンしたスループットによって時間あたりの料金 がきまる – 大規模に利用するのであればリザーブドキャパシティによる割引もあり

• ストレージ利用量

– 保存したデータ容量によって決まる月額利用料金 – 計算はGBあたりの単価が適用される – GBあたり$0.285(2015/07/14現在@東京リージョン) http://aws.amazon.com/jp/dynamodb/pricing/

(68)

DynamoDBの料金体系

• プロビジョンドスループット

– 書き込み • $0.00742 :10 ユニットの書き込み容量あたり/1 時間 – 読み込み • $0.00742 : 50 ユニットの読み込み容量あたり/1 時間

• キャパシティユニット

上記で「ユニット」と呼ばれている単位のこと – 書き込み • 1ユニット:最大1KBのデータを1秒に1回書き込み可能 – 読み込み • 1ユニット:最大4KBのデータを1秒に1回読み込み可能(強一貫性を持たな い読み込みであれば1秒辺り2回)

(69)

DynamoDBが使われているユースケース

• KVSとして

– Webアプリケーションの永続的なセッションデータベース – ユーザー情報の格納するデータベース

• 広告やゲームなどのユーザー行動履歴DBとして

– ユーザーIDごとに複数の行動履歴を管理するためのデータベース

• ソーシャルアプリのバックエンドとして

– モバイルアプリから直接参照できるデータベースとして

• 他にも

– バッチ処理のロック管理 – フラッシュマーケティング – ストレージのインデックス

(70)

Availability Zone Availability Zone

Amazon DynamoDB

AWS上でのWeb+DBサーバの構成(NoSQL)

DynamoDB • シンプルにKVSで管理が可能なレ ベルであれば・・ • 3箇所冗長の可用性 • 容量制限なし • OSやソフトウェアのパッチ等 の運用管理の必要なし • ダウンタイムゼロで変更可能 なスループット Clients

(71)

Availability Zone Availability Zone

Amazon DynamoDB

AWS上でのWeb+DBサーバの構成

(NoSQL、RDBMSハイブリット)

• NoSQL、RDBMS併用 • トランザクション処理が必須 • NoSQLを高速化のためのキャッシュ • NoSQLで大量データを扱うために使 用 例)ECショッピングサイト カート処理、商品情報 NoSQL(DynamoDB) 在庫管理、決済関連 RDBMS(MySQL等) Clients DynamoDB

(72)

東急ハンズ株式会社様でのAWSご活用事例

参考 DynamoDBの紹介と東急ハンズでの活用についてより。詳細は以下をご参照ください。 https://www.hands-lab.com/tech/entry/99.html • 毎年8月末にハンズ恒例の大セール 「ハンズメッセ」開催。 • ネットストア(ハンズネット)も同時開催 • セール開始時(00:00)にお客様が殺到 • サーバーが落ちる • というのを2年くらい経験 コストを抑えつつ、セールの爆発的なトラフィッ クにも耐えられる仕組みの構築が急務 Amazon DynamoDB導入の背景

(73)
(74)

株式会社マイネット様でのAWSご活用事例

DynamoDBをメインDBにすることで、 可用性向上のための運用はAWSが実施。 トラフィック増減もアーキテクチャを変 えずにパラメータ変更だけで対応。 DynamoDBで管理が難しいデータは RDB(RDS)で管理するも、全体のボ リュームは小さくなるため運用が容易に。 参考 AWS事例のページより。詳細は以下をご参照ください。 http://aws.amazon.com/jp/solutions/case-studies/mynet/

(75)

AWSの利用: 人気のドット絵ファンタジー 「騎士とドラゴン」のインフラ をAWSで運用 ビジネス効果: 少数精鋭で開発を行う中で、運用 面の負担を最小化、ゲームの開発 リソースを最大化

株式会社リプレーション様でのAWSご活用事例

参考 AWS事例のページより。詳細は以下をご参照ください。 http://www.awsmicrosite.jp/game/case-studies/ripplation.html 短期間でのユーザー数の急上昇にも わずかなスケールパラメータの調整で対応

(76)

デイリーアクティブユーザーがわずか6日間で

5,000/日から30,000/日に跳ね上がった時に行った作業

AWS EC2のインスタンス数を増やして

(77)

DynamoDBの使いどころ

• キーとクエリーでのアクセス

• 3拠点でデータが保全されることによる堅牢なシステム

の構築

• スループットの容易な増減によるピーク負荷への対応

• 事実上の容量無制限なデータベース

-> サイジングが不要

http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-dynamodb

(78)
(79)

NoSQL on EC2

• EC2上にNoSQLデータベース・ソフトをインストールし、自ら運用管 理を行う • AWS上では、スケーラブル、従量課金、高可用性で他のマネージド サービスとの連携することができ、また、ハードウェアを管理すこと なく様々なNoSQL製品を使う事ができる • マネージド・データベースのメリットは享受できないが特殊な要件が 必要とされた場合 – AWSで提供されていないNoSQLを利用したい – データベースのOSにログインし、ローカル・アクセスでバッチ処理を実行した い 等々 • 運用管理コストが上がる点も考慮する – 構築から運用(バックアップや障害時切替など)を行う必要がある

(80)

Magazine Luiza

レコメンデーション・システム

• Eコマース・サイト向けのレコメンデーションシステム

• ソーシャル・ネットワーク機能を実装

• 5万以上の製品

• 月間 2億PV

• ユーザの行動をグラフで

表現・分析

• サイトとメールでの

レコメンデーション

* AWS re:Invent 2013 セッションBDT303 より引用 Graph Databaseの活用

(81)

Magazine Luiza

レコメンデーション・システム

(82)

Magazine Luiza

レコメンデーション・システム

• 既存システムと比較して、10倍の高速化と60%の

コスト削減に成功

(83)

アジェンダ

• Introduction

• 基本的なサービスのご紹介

• NoSQLとRDB

• AWS環境でのNoSQL

• まとめ

(84)

まとめ

• ワークロードに適したデータベースを選択する

(複数DBを併用しても良い)

• NoSQLアプリケーションのコストを最小化するため、スケールす

る設計を行う

• マネージドサービスを上手に活用して運用コストを下げる

• AWSのマネージド・サービスでカバーしきれないシナリオの場合、

NoSQL on EC2を活用

• バックアップやパッチ適用作業等も考慮

(85)
(86)

参照リンク

• ElasiCashe ユーザーガイド – http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/UserGuide/WhatIs.html • ElasiCashe FAQ – http://aws.amazon.com/jp/elasticache/faqs/ • DynamoDBユーザーガイド – http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Introduction.html • DynamoDB FAQ – http://aws.amazon.com/jp/dynamodb/faqs/

(87)

参照リンク

• ホワイトペーパー:Riak on AWS – http://media.amazonwebservices.com/AWS_NoSQL_Riak.pdf • ホワイトペーパー:MongoDB on AWS – https://d0.awsstatic.com/whitepapers/AWS_NoSQL_MongoDB.pdf • ホワイトペーパー:Amazon ElastiCache を使用したスケールに応じたパフォーマンス – http://d0.awsstatic.com/whitepapers/performance-at-scale-with-amazon-elasticache.pdf • AWSクラウド活用資料集 – http://aws.amazon.com/jp/aws-jp-introduction/ • 国内のお客様のAWS活用事例 – http://aws.amazon.com/jp/solutions/case-studies-jp/

(88)

詳しくは、http://aws.amazon.com/training をご覧ください

メリット

• AWS について実習や実践練習を通じ て学習できる • AWS を熟知したエキスパートから直 接 AWS の機能について学び、疑問の 答えを得られる • 自信をもって IT ソリューションに関 する決定を下せるようになる

提供方法

e ラーニングや動画 セルフペースラボ クラスルーム トレーニング

AWSトレーニングでは様々な学習方法をご提供しています

(89)

公式Twitter/Facebook

AWSの最新情報をお届けします

@awscloud_jp 検索

最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを

日々更新しています!

もしくは http://on.fb.me/1vR8yWm

(90)

AWS初心者向けWebinar

• AWSをこれからご使用になる技術者向け、ソリュー

ションカット

• 今後の配信予定

– 7/28(火) 【AWS 初心者向け Webinar】RDB の AWS への

移行方法(Oracle を例に)

※18時~19時15分の時間帯です!

• 申し込みサイト

(91)

AWS Black Belt Tech Webinar 2015

• AWS中上級者向け、サービスカット

• 今後の配信予定

7月は「

AWS 運用機能月間

」です!

– 7/15(水)12:00〜【緊急特番】Amazon API Gateway – 7/15(水)18:00〜 AWS CloudTrail & Config

– 7/22(水)12:00〜【緊急開催】AWS Device Farm

– 7/22(水)18:00〜 AWS CLI & AWS Tools for Windows PowerShell – 7/29(水)18:00〜 AWS CloudHSM & AWS Key Management

Service

• 申し込みサイト

– http://aws.amazon.com/jp/about-aws/events/

(92)

AWS Black Belt Tech Webinar 2015

• 今後の配信予定

8月は「

AWS DB月間

」です!

– 8/5 (水)18:00〜 Amazon DynamoDB

– 8/12(水)

お盆のためお休み

– 8/19(水)18:00〜 Amazon ElastiCache

– 8/26(水)18:00〜 Amazon DynamoDB

• 申し込みサイト

http://aws.amazon.com/jp/about-aws/events/

(93)

AWSの導入、お問い合わせのご相談

• AWSクラウド導入に関するご質問、お見積り、資料請

求をご希望のお客様は、以下のリンクよりお気軽にご相

談ください。

(94)

Table table items attributes Hash Key Range Key 必須 キーバリュー型のアクセスパ ターン データ分散に利用される オプション 1:Nモデルのリレーションシップ豊富なQueryをサポート ハッシュキー検索用==, &lt;, &gt;, &gt;=, &lt;=“begins with”“between”sorted resultscounts先頭/末尾N件 ページ単位出力name/value 型、JSON 型アイテム間で不揃いであっても問題ない

参照

関連したドキュメント

 □ 同意する       □ 同意しない (該当箇所に☑ をしてください).  □ 同意する       □ 同意しない

Oracle WebLogic Server の脆弱性 CVE-2019-2725 に関する注 意喚起 ISC BIND 9 に対する複数の脆弱性に関する注意喚起 Confluence Server および Confluence

(2)指摘、注意及び意見 ア 指摘 なし イ 注意 なし ウ 意見.

Guasti, Maria Teresa, and Luigi Rizzi (1996) &#34;Null aux and the acquisition of residual V2,&#34; In Proceedings of the 20th annual Boston University Conference on Language

[r]

[r]

【留意事項】 手続きに時間がかかる場合がある

[r]