概要
- AWS上でEC2、RDSの組み合わせでMulti-AZ構成で立ててみたが、いざリクエストを投げると思った性能が出ない場合があると思います。
- 筆者の組織でもアプリの作りの問題も(大いに)あるのですが、EC2を異なるAZ間で配置した場合にEC2-RDS間での性能が出ない。。。
- Single-AZ構成にならざるをえなかったのですが、どうしてもDBレプリケーションは組みたくない、でも冗長化したい!!というか、launchが迫った時点で発覚して冗長化構成組んでるよって言っちゃってた。。。
対策案
- DNSフェールオーバー
- ELB経路切替
これくらいかなー
両方ともRDSのAZが切り替わったことを検知して、上位のアプリサーバ(EC2)をA系からC系とかに切りかえる方法をとった。
各案詳細
やってみた
DNSフェールオーバー
- やっぱ伝播(最近は問題にならないらしいけど)がきになる。
- しかもIoTサービスで数s単位でデータを吸い上げる仕組みだったので、待てない!
- ボツ
ELB経路切替
これだと数minくらいのダウンタイムでなんとかしのげるようになった。
まとめ
- この仕組み自体アンチパターンだし、そもそもクラウドに行く理由ないよねって思ってます。
- アプリを早く改修してもらわないと(涙)
- 【緩募】もっといいやり方あったら教えてください!!