俺の報告

RoomClipを運営するエンジニアの日報(多分)です。

オートスケーリングで気をつけること3つ - 日報 #142

さくら自作CDNが回りだして非常にいい感じだったのですが、
まだまだ課題は山積みです。
帯域制限、LBセッション、各サーバCPUという一般的なボトルネックに加えて、
NFSというボトルネック箇所もあり、
今後の展開は中々香ばしいものになりそうです。

今日は相変わらず話すことがないので、オートスケーリング周りで気をつけることを列挙してバイバイしたいと思います。

オートスケーリングする時に注意しとくと捗ること。

1. 起動デプロイにする

AMIが固定されるので、インスタンス起動時に最新版にオートデプロイされる必要があります。
cronでも@reboot設定などで対応できますし、起動スクリプトにしてもいいと思います。

2. インスタンスTerminate時のログ処理

自動でインスタンスが削除されるので、
インスタンスに固有のデータをためとくと回収不能になります。
得たログなどは必ずどこかへ送信しきらないといけません。
FluentdなどはOS停止信号を得ると自動でbufferを処理し切る設定などがありますが、
一般的にはshutdown時のスクリプトに色々書いておくのが必要になると思います。

3. Memcachedの外部化

インスタンスは常にポコスカ生まれたり死んだりするので、
とにかくインスタンス固有の何かに頼るのを諦めなければなりません。
厄介なのはMemcachedですが、ElastiCacheを使ってデータを共有しておくことが重要です。

4. その他諸々

ぼんやりした話ですが、 SSHでサーバに入ることを前提とする作業などは微妙なオペレーションになります。
VPCをしっかり設計していればNATの振り分けポートを敷き詰めるように配置できるのか知りませんが、、、
WANに浮いている状態では実質SSHはあまりいい方法ではなくなります。
また、Launch、Terminate時にCloudWatchからNotification送れるのでそれも設定するといいと思います。

以上ですた。