イベントに参加した時に調べて知ったのだが、JAWS-UGは"Japan AWS User Group"の略だった。イベントの内容だけ見ていって参加したので、あしからず。。。
というわけで、今回は目黒にあるAmazon Japanに突撃してきた!
受付↓
ボルダリング部が練習してるらしい。めっちゃ登りたかった。。。
まずは受付の写真を貼っていったものの、どうもインターンやら大学の課題やらで忙しい。。。すでにイベントから1週間以上経ってしまっているので、メモをそのまま書く!
そろそろサマーインターン決まってくるし、、、時間がやばい、、、
・Mysql on EC2な運用
rockhopper6542 (colpr)
RDS使わずにMySQL on EC2している
オンラインマスタ切り替え
マニュアルオペレーションで切り替える方法
切り替えの流れ
神経等MsterDB & SlaveDBを構築
SlaveDB切り替え
MasterDB切り替え
メリット:サービス停止なしで切り替えられる。
デメリット:現状と同じだけの台数のインスタンスが必要
ウォームアップについて
事前にinnodb buffer poolにデータを読み込ませる。
できるだけ本番環境と同じメモリ状況でサービスインさせる
MySQL5.6からはinnodb_buffer_poolの内容をダンプできる
想定外の不可の場合は、SlaveDBにi2インスタンスを使う
高速なSSDなので、ウォームアップなしでサービスインする
=============================================================
・今更だけどAmazon Dynamoの論文解説するお
@imai_factoryさん
Dynamo: Amazon’s Highly Avialable Key-value Store
・100%書き込みに成功することを目標に作られた・
・Cap定理で言うとAとPを優先
・書き込み時に整合性を取るのではなく、読み出し時にアプリケーション側で整合性を獲るモデル。
・CassandraやRiakに影響を与えたと言われている
コンシステントハッシング???
1. Introduction
2. Background
RDBに可用性の面で満足が行かなくなってきた
2.1.
Query model: key value
ACID: Targeted Wek Consistency workload
Efficiency:
Commodity hardware
Up to 300ms latency in 99 percentile
Other assumption
Deployed on reliable network
Targets 100’s host of scalability
2.2 SLA
No average , median
更に耐久性と一貫性をConfigurable / Trade off可能にすることにより、アプリケーション側で要件に合わせて利用することができることを目指した。
2.3 Design Considerations
楽観的レプリケーション
オブジェクトのバージョンチェック
全ては書き込みを簡素化し、失敗をなくすため
アプリケーションが読み出し時に整合性チェックとは?
Incremental scalability
Symmetry
Decentralization
...
3. Related work
Structured P2P
bit trentとかみたいにseedのリストを持っているマスターサーバがいるP2P
Distributed File Systems
100%会っき込み可能で、
Key Valueでデータ・アクセスできれば良い
つまり
a zero-hop DHT
4. Design
4.1 System Interface
get(key), put(key, context, object)
4.2 Partitioning Algorithm
レプリケーションファクタ:N
書き込みQuorum :w
… : R
N, W, Rを調整することで、自分に必要なコンシステンシを確保する
5. Implementation
6. Lessons Learn
7. Conclusion
=============================================================
・とあるAWSサービスの運用移管とそのデータストア事情について
@key_amb (DeNA)
iemoのサービス買収時
SPOFが多い
単一AZに構築されている
SPOFをなくして、AZ冗長化した
DeNAのDB KPI
SHOW GLOBAL STATUSで取れるThreads_runningを特に重視している
困ったこと
一度作成したCache Clusterのインスタンスタイプは変更できない
どうしたか
colprと一緒で普通はEC2にMySQLを広ちくすることが多い。
レポーティングのデーモンとか入れたりするからっぽい?(RDSにどんな機能があるのかよくわからん)
=============================================================
・Cognite Sync
@suzryo (classmethod)
Amazon Cognitoの話。。。
=============================================================
・Amazon Auroraのちょっとしたこと
@con_mame
高いクエリ実行並列度・データサイズが大きい環境で性能を発揮
ログとストレージレイヤを分離して、シームレスにスケールするストレージサービスに移動
ある意味プラがブル
パフォーマンスがいい。
クエリの並列度が高い
データサイズが大きいケースで効果を発揮
ロック機構やQuery cacheなどに手を入れて性能向上を行ってい
Multicoreな環境でどうトランザクションを向上できるかっていう論文を参考にしている
mysqlだと、mutexの待ちでリソースを食ってしまう
会場の様子