elasticache for redisを本番導入してみました

20
ElastiCache for Redis を本番導入してみました 1 14113日月曜日

Upload: -

Post on 06-May-2015

4.563 views

Category:

Technology


0 download

DESCRIPTION

「2014/01/18 AWSプロダクトシリーズ|よくわかるクラウドデータベース」講演資料

TRANSCRIPT

Page 1: ElastiCache for redisを本番導入してみました

ElastiCache for Redisを本番導入してみました

114年1月13日月曜日

Page 2: ElastiCache for redisを本番導入してみました

目次

• 自己紹介• Redis運用に最低限必要な知識

• gumiでのRedis運用方法

• (現在の)ElastiCache for Redis運用注意点

• まとめ

214年1月13日月曜日

Page 3: ElastiCache for redisを本番導入してみました

目次

• 自己紹介• Redis運用に最低限必要な知識

• gumiでのRedis運用方法

• (現在の)ElastiCache for Redis運用注意点

• まとめ

314年1月13日月曜日

Page 4: ElastiCache for redisを本番導入してみました

自己紹介

• 本間 知教(ほんま とものり)

• 株式会社gumi

• System Operation Engineer• 国内アプリのサーバ運用全般

• アプリのイベントとかは作ってないです

• 好きなAWSサービス:Amazon S3@CkReal

414年1月13日月曜日

Page 5: ElastiCache for redisを本番導入してみました

目次

• 自己紹介• Redis運用に最低限必要な知識

• gumiでのRedis運用方法

• (現在の)ElastiCache for Redis運用注意点

• まとめ

514年1月13日月曜日

Page 6: ElastiCache for redisを本番導入してみました

Redis運用に最低限必要な知識

• キーバリューストア• データ取得は全てインメモリ

• メモリ以上のデータ格納時の挙動は、 maxmemory-policyで制御(default:volatile-lru)

• 2種類のデータ永続手段• Append-only file(追記型ファイル)

• RDBスナップショット

• 複数データベースが使える

614年1月13日月曜日

Page 7: ElastiCache for redisを本番導入してみました

目次

• 自己紹介• Redis運用に最低限必要な知識

• gumiでのRedis運用方法

• (現在の)ElastiCache for Redis運用注意点

• まとめ

714年1月13日月曜日

Page 8: ElastiCache for redisを本番導入してみました

現在運用中のサーバ構成例

memcached

RDS(MySQL5.5)

app

player-shard

others

staticjobqredis

M

S

M

S

masterSQS

814年1月13日月曜日

Page 9: ElastiCache for redisを本番導入してみました

ElastiCache for Redisを利用したサーバ構成

redis

RDS(MySQL5.6)

app

jobq

S

SQSstatic(S3)

914年1月13日月曜日

Page 10: ElastiCache for redisを本番導入してみました

アプリでの利用例

• ユーザの行動結果を即時反映させたいイベント

• 使用例• イベントランキング

• プレイヤーのマッチング処理

1014年1月13日月曜日

Page 11: ElastiCache for redisを本番導入してみました

運用での利用例

• イベント収集ツール(Sentry)のバッファ

• 最近のツールは、Redisを利用するものがある

• ちょっとした検証でEC2を立てるのはコストが大きい

1114年1月13日月曜日

Page 12: ElastiCache for redisを本番導入してみました

Redisサーバ運用状況

• master-slave構成がメイン

• masterはRDBなし、slave側でスナップショット生成

• EC2(Xen)のforkは遅くなる

• 用途によって、データベースを複数利用

• 最近はmemcachedのキャッシュをredisへ移行

• memcachedのeviction発生タイミングは、開発者がつかみづらい

1214年1月13日月曜日

Page 13: ElastiCache for redisを本番導入してみました

目次

• 自己紹介• Redis運用に最低限必要な知識

• gumiでのRedis運用方法

• (現在の)ElastiCache for Redis運用注意点

• まとめ

1314年1月13日月曜日

Page 14: ElastiCache for redisを本番導入してみました

ElastiCache for Redisでできることできないこと

できること (まだ)できないことEC2運用からの開放S3からのデータロードAOFファイルの設定awscliからも扱えるレプリカのマスター昇格

自動フェイルオーバーRDBのS3バックアップインスタンスタイプ変更PITR機能

1414年1月13日月曜日

Page 15: ElastiCache for redisを本番導入してみました

ElastiCache for Redisでできることできないこと

できること (まだ)できないことEC2運用からの開放S3からのデータロードAOFファイルの設定awscliからも扱えるレプリカのマスター昇格

自動フェイルオーバーRDBのS3バックアップインスタンスタイプ変更PITR機能

現時点でRDSほど高機能ではないことに注意

1414年1月13日月曜日

Page 16: ElastiCache for redisを本番導入してみました

ElastiCache for Redisを本番導入してみて

• masterの稼働場所として、性能的には全く問題ない

• スナップショットを利用したいときは、EC2を利用

• FAQや公式ドキュメントでも推奨されている

• cache.t1.microはappendonlyをサポートしていない

• 障害発生時の挙動はまだ未経験

• AOFファイルが壊れたり、slaveのスナップショットから復元させるといったケースがあった

1514年1月13日月曜日

Page 17: ElastiCache for redisを本番導入してみました

目次

• 自己紹介• Redis運用に最低限必要な知識

• gumiでのRedis運用方法

• (現在の)ElastiCache for Redis運用注意点

• まとめ

1614年1月13日月曜日

Page 18: ElastiCache for redisを本番導入してみました

まとめ

• Redisが短時間で利用可能になるのは、インフラメンバーが少ない企業ではとても嬉しい

• 当初想定していた機能はまだ未実装ではあったが、本番環境でも問題なく利用できる

• 今のところ、障害は発生していない^^;

1714年1月13日月曜日

Page 19: ElastiCache for redisを本番導入してみました

ElastiCache for Redisの今後に期待!!

1814年1月13日月曜日

Page 20: ElastiCache for redisを本番導入してみました

ご清聴ありがとうございました

1914年1月13日月曜日