AWSご相談事例001:休日だけEC2インスタンスを増やしたい(Autoscalling)

KK
2022-12-16
2022-12-16

年三日坊主のKKです。

当社の祖業はホスティングサーバーの提供ですので、長くお付き合い頂いているお客様もホスティングサーバーをインフラとしてサービス構築することに慣れていらっしゃる場合が多いです。
しかしながら、様々な理由からホスティングサーバーではお客様のご要望にお応えしきれないこともあります。

当社のAWS導入支援サービスではAWSインフラ環境をカスタマイズしてホスティングサーバーのようにご利用頂けるようサポートを提供しており、当社ホスティングサーバーラインナップには無いような構成やご要望にも柔軟に対応しています。
そのため、これまで当社のホスティングサーバーをご愛用頂いていたお客様がAWS利用に踏み出される際にも、当社にご相談頂けることが多いです。

今回ご紹介するのはそのような元々当社のホスティングサーバーをご利用下さっていたお客様からのご相談です。

◆ご相談ポイント

1.元々ホスティングサーバーで数年にわたって提供してきたWebサービスのインフラを改善したい。
2.可用性や保守性を確保するため複数台での冗長構成としたいが低負荷時のコストは抑えたい。
3.利用者の使い勝手が悪くならないように高負荷時には自動的にリソース増強されるようにしたい。
4.特に休日など高負荷が予想される特定の日は負荷が高まる前に自動的にリソース増強してアクセス増に備えたい。

◆実現方法の検討

こちらのお客様はこれまでにもホスティングサーバーでは要件の合わないシステムでAWSをご利用頂いており、上記の1~3は当社で既に実現させて提供してきた実績がありました。
特に2、3はAWSのAutoScaling(オートスケーリング)という機能でEC2インスタンス(仮想サーバー)を負荷に応じて最少2台から最多4台まで自動的に台数変更することで実現しています。

つまり4を実現するということは休日など事前に高負荷が予想される日だけAutoScalingでEC2インスタンスの最少台数を3台に変更できれば良いということです。
これはAuto Scaling のスケジュールされたスケーリングという機能で実現できます。

この機能を利用する上で注意しなければならないのは実行タイミングです。
例えば、毎週金曜日にリソース増強し、毎週月曜日に元に戻すのであれば以下のように増減2つのスケジュールアクションを設定するだけで実現できます。
しかしながら、今回ご相談頂いたお客様の指定された1年分の日程は祝日や大型連休、年末年始、お盆など単純にはパターン化できないものを大量に含んでいました。

そのため、お客様指定の日程に合わせて以下のように一度だけ実行されるスケジュールアクションを増減合わせて合計100個以上設定することで、ご要望を実現させました。

しかしながら、これはあまり良い実装だったとは思っていません。
というのも、このAuto Scaling のスケジュールアクションは1 つの Auto Scaling グループあたり最大 125 個までしか設定することができません。
今回は幸運にもお客様のご要望がこの制限の範囲内に収まったため、なんとか1年分を1回の登録作業で実現することができましたが、この制限以上の設定数となる場合はスケジュールアクションの登録を半年ごとに行うような運用を考えなければなりませんでした。

この点については正直もっと良いやり方をご存じでしたら教えて頂きたいです。

お客様のご要望にお応えすることは当然ですが、その実装や運用が本当に最善であったか常に自身に問いかけ、より良いソリューションを提供できるよう心がけていきたいと思っています。

なお、表示される内容は利用状況やAWSの仕様変更ににより変化しますのでご注意ください。