ビジネスのスピードを止めないためには、クラウドが大前提であり、創業当時から AWS を活用してきました。
Amazon ECS を活用することによって、運用負荷の軽減やアプリ開発を迅速化でき、
スポットインスタンスによってインフラコストを約 3 割、インスタンスにかかるコストを約 6.5 割削減できました。
全国のスーパーの 6 割以上の特売情報を配信する『トクバイ』を運営する株式会社ロコガイド。小売業と地域の消費者を結び付けるサービスを提供する同社は、2016 年の創業当時から AWS のサービスを使ってきました。このたび Amazon Elastic Container Service(Amazon ECS) を活用して運用負荷を軽減、アプリ開発の迅速化を実現するだけでなく、スポットインスタンスを駆使することで、インフラコストを約 3 割削減、Amazon Elastic Compute Cloud (Amazon EC2) にかかるコストを約 6.5 割削減しました。
トクバイは、新聞の折り込みチラシをそのまま掲載するだけではなく、当日の仕入れ状況に応じた特別価格などもリアルタイムに投稿することができ、クーポンやタイムセールなどのお得情報もトータルに配信できることが特長となっている PC / スマートフォン向けのチラシ・特売情報配信サービスです。
「私どもの事業展開は流動的で、オンプレミスに資産を持ってしまうとビジネスのスピードの足を引っ張ってしまう可能性があるため、クラウドを活用した事業展開が大前提でした。」と話すのは株式会社ロコガイド取締役 CTO の前田卓俊氏です。
また、クラウドサービスの中で AWS を選定した理由を次のように話します。「他社に比べて AWS は機能が豊富なだけでなく、コミュニティなどで必要な情報を容易に得ることができます。また、すでに社内に AWS のノウハウを持つメンバーが多く、開発の生産性やエコシステムを考えると AWS が最も要件に合致していると考えました。随時機能強化が行われていることも選定の後押しになりました。」
ロコガイドは、コンテナの高い可搬性や、構築・運用のワークフローの標準化のしやすさ、AWS の各種サービスとのインテグレーションがスムーズにできることに魅力を感じ、Amazon ECS を活用してきました。
しかし、活用が進むことで、コストが想定以上に膨らんでしまったことが課題になったと前田氏は説明します。「必要なシステムを次々と載せていった結果、クラウドに要するコストが想定の 1.5~2 倍に膨らみました。そこで、Amazon EC2 のコストを削減するためにスポットインスタンスを活用することにしました。」
スポットインスタンスは、大幅なコスト最適化を図ることができるだけでなく、2017 年後半に価格の安定化を含めた機能改善が進んでいます。その一方で、Amazon EC2 のコンピューティングリソースへの需要が集中することにより利用可能なスポットインスタンス数を充足できないようなケースでは、使用中のインスタンスが中断される可能性があり、サービスの安定化に向けた工夫が必要でした。そこで、ロコガイドでは、スポットインスタンスの集合体であるスポットフリートと AWS Auto Scaling を利用し、スポットインスタンスとオンデマンドインスタンスを併用する独自の方法を検討しました。スポットフリートの構成については、利用する全スポットインスタンスのうち 6 割を最低価格のスポットインスタンス群から、残りの 4 割を利用可能なすべてのスポットインスタンス群からそれぞれ配分することで可用性を高めました。このスポットフリートをベースとし、さらにオンデマンドインスタンスを加えた自動スケーリングが可能な AWS Auto Scaling を利用することで、最低価格群のスポットインスタンスが中断した場合でも、代替インスタンスを自動的に起動しリカバリできる仕組みを実現しました。こうした工夫により、システムの可用性向上とコストの最適化という 2 つの相反する要件を同時に満たすことに成功しました。
また、スポットインスタンスの中断が 2 分前に通知されるため、Web アプリケーションの場合はその間にロードバランサ―から適切に外し、Amazon ECS の場合はコンテナのインスタンスをドレイニング状態にして、既存のコンテナを安全に切り離して終了させるアプリケーションも自社開発しました。
「自社開発した時点ですでに価格が安定していたので、実際にはそれほど利用していません。現在では Amazon EC2 フリートを使えば、自動的に配分戦略を設定できると伺っているので、今後は Amazon EC2 フリートに切り替えていくことも検討しています。」と前田氏は話します。
こうした工夫の結果、運用性を低下することなくインフラコストを大幅に削減できたと株式会社ロコガイド 技術部 エンジニアの大谷 洋一氏は説明します。「インフラコスト全体で約 3 割のコスト削減が実現でき、Amazon EC2 だけに限定すると約 6.5 割の削減を実現できました。」
ロコガイドでは、AWS を使いこなすために AWS ビジネスサポートプランを利用しています。「ビジネスサポートプランは、スポットインスタンスを使って削減できたコストを活用する形で利用することにしました。エラーメッセージだけでは判断がつかない問題でも、AWS サポートに連絡すればすぐに解決できるため、非常に助かっています。また、ユースケースに応じてアップデート情報を提供していただけるので、とても助かります。」(前田氏)
Amazon ECS を活用することで、インフラ調達のリードタイムが大幅に短くなり、アプリケーション個別ではなく、共通のインスタンスを使ってすぐに開発に取り組めるようになったことも効果の 1 つです。新規にアプリケーションを開発する場合も、開発者が Docker イメージをビルドして、コンフィグを書くだけで本番環境に持っていくことができます。従来の半分くらいの手間で済むようになりました。
「Amazon ECS でできた余裕を監視の運用を見直すための時間に割くことができるなど、コストや時間を事業の成長や精度を上げるために使えるのは非常によかったと思います」と話す前田氏。大谷氏も、「Amazon ECS によって、インスタンスがいつ止まっても直ちにコンテナを別のインスタンス上で立ち上げて処理を継続できるアーキテクチャとしたことで、日常の運用が非常に楽になりました。」と語ります。
「今後も AWS を使い倒していきたい」と話す前田氏は、サービス基盤の開発や機能の開発のインフラとして、AWS を使い続けると説明します。また、Docker を今後も活用していきたいと考えている大谷氏は、AWS App Mesh などの Amazon ECS のマイクロサービス機能がもっと拡充することを期待していると話します。
「AWS には、私どものビジネスに直結する機能強化や提案いただくことはもちろん、考えてみなかったような進化を見せてくれることも期待しています。それによって、新しい考え方をするキッカケにもなるし、新事業の可能性も出てくると思います。当社としては、今後もより生活者とお店の結び付きを強くするサービスを提供し続けたいと考えています。そのために、多角的にデータを捉えられるようにデータ基盤の強化に取り組み、数ヶ月後には何らかの形にしたいと考えています。」(前田氏)