16
マイルドスケーリング (仮)をつくってみた 2015.07.25 JAWS-UG 上越妙高 アイレット cloudpack 事業部 武川 1

Mildscaling 20150725

Embed Size (px)

Citation preview

Page 1: Mildscaling 20150725

マイルドスケーリング (仮)をつくってみた

2015.07.25 JAWS-UG 上越妙高 アイレット cloudpack事業部 武川 努

1

Page 2: Mildscaling 20150725

自己紹介

15年くらいIT関連で働いています

システム開発/サポート/プリセールス/翻訳/営業等々

AWSエンジニアは一年目

好きなAWSサービスはEnterprise Support

2

Page 3: Mildscaling 20150725

本日のあらすじ

• 案件がやってきた

• 運用してみた

• マイルドスケーリングしてみた

3

Page 4: Mildscaling 20150725

案件がやってきた

• 某有名サイトの移行と運用

• 弊社はサーバ環境の作成と運用担当

• アプリケーションは別会社が作成

• LAMP構成(CMSもあり)

• イベントがある時には負荷があがる

4

Page 5: Mildscaling 20150725

構成図

5

Page 6: Mildscaling 20150725

イベント

• 短かい時は2時間、長ければ半日

• 平日夜、土日日中

• 週に1,2回

• 最大負荷は通常アクセスの50倍

6

Page 7: Mildscaling 20150725

イベント時構成図

7

Page 8: Mildscaling 20150725

当初の運用

• イベント前に1時間以上かけて二人体制で手作業で実施 • EC2を起動 • RDSのリードレプリカを作成 • 同期ツールで同期、同期ができているかを手作業で確認 • 監視ツールに登録 • ELBにEC2を接続

• イベント中のインスタンス追加は職人芸

8

Page 9: Mildscaling 20150725

Auto Scalingを使いたい

• 台数を指定するとEC2インスタンスのCreateとTerminateを自動で実施

• 時間とイベントによる増減が可能

• ELBに自動接続

• Lifecycle hookで独自処理の追加も可能

• サーバ停止の時は自動的に再作成

9

Page 10: Mildscaling 20150725

AutoScaling導入時の課題

• ヘルスチェックに失敗するとTerminateする問題

• 監視ツール(Nagios)が動的追加削除に対応していない。設定変更 = 再起動

• ReadReplicaの作成/削除は対応していない

10

Page 11: Mildscaling 20150725

運用作業の効率化

• コンソールの手作業からコマンドラインでスクリプトを順次作成 (shell,python)

• EC2の起動停止 • RDSリードレプリカの作成 • Nagios設定 • ELBへの接続

11

Page 12: Mildscaling 20150725

運用作業の効率化

• コンソールの手作業からコマンドラインでスクリプトを順次作成 (shell,python)

• EC2の起動停止 • RDSリードレプリカの作成 • Nagios設定 • ELBへの接続

12

Page 13: Mildscaling 20150725

13

作ったスクリプトを全てくみあわせる なづけて

Page 14: Mildscaling 20150725

マイルドスケーリング(仮)

14

• インスタンスがTerminateしないのでマイルド • コマンドひとつで追加削除なので運用者にマイルド

Page 15: Mildscaling 20150725

結果

• システム準備の作業が半分以下(ほとんどはリードレプリカの起動待ち)

• イベント時の運用対応が2人から0.5人程度に

• システムの他の部分に注力できるようになった

15

Page 16: Mildscaling 20150725

まとめ

• インスタンスを捨ててもよいように作ってあればAutoScalingが一番の選択肢

• 起動/停止スクリプトをつかったマイルドスケーリングは監視とDBの連携も簡単に制御できるので便利

• 最初からつくればよかった

16