株式会社えむぼま

トップページ > AWSソリューション 事例紹介 株式会社リプレックス様

AWSソリューション 事例紹介 株式会社リプレックス様

成長するビジネスに対応する、伸縮柔軟性のあるインフラ環境をAWSで実現
キーポイントは、コンテナと自動化

まとめ
「AWSのソリューション活用で、運用工数削減・自動化・コスト削減の効果アリ!」

課 題
アクセス数の増減差による、リソース利用効率の低下
従来型の運用作業によるオペレーションコストの増大
成 果
コンテナ化により、余剰リソースと新世代への移行工数の低下
AWS Elastic Beanstalk の導入による、手動作業の激減とオンプレミスの廃止
開発の効率化と、エンジニアの技術力向上
目 標
サービス成長に伴う、運用工数の削減とコストパフォーマンスの最大化

Before「背景と課題」

リプレックス株式会社は、2006年に東京都渋谷区で創業し、2016年からカシオ計算機の子会社として、Webサービスとアプリの開発を中心に事業を展開されている。同社の主力製品である 写真整理アプリ「Scene」は、新しい技術の導入のしやすさからAWS上に構築され、2013年にリリースされた。

この写真整理アプリ「Scene」は、撮影した写真の整理や他者との共有、アプリ内でプリント商品(年賀状やフォトブック等)を購入することができるなどの特徴を持ち、ダウンロード数は累計500万回を超え、GooglePlay日本ベストアプリを2度も受賞するなどの実績を残している。

だが、写真整理アプリ「Scene」が急成長を続ける裏側で、システムリソース面、運用管理面では大きな課題を抱えていた。

課題1:リソースコスト

アプリの利用者が順調に増加していくことで、システムへのアクセス数も比例して増加していった。リリース直後は顕著ではなかったアクセスが集中する時間帯も、利用者増加に伴って特定の時間帯であることがわかった。更に利用者が増加することで、余剰リソースが発生し、急なアクセス増加による負荷が発生する といった課題が表面化していった。

当アプリの開発を担当する塩澤 元氏は「今までは一定数のインスタンスを常時稼働させ、サービスを提供してきた。だが、アプリの利用者数が増えたことで時間帯によってアクセス数に大きな差が生まれるようになった。そのため、アクセス数が少ない時間帯は余剰リソースを稼働せざるをえない状況になった。また、想定以上のアクセスが来た場合はシステム負荷に耐えられず無応答になってしまうトラブルも発生していた。

何とか対策を取りたかったが、インスタンス1台の中で複数の機能(プロセス)を稼働させていたため、インスタンス数の増減の自動化や、新世代のインスタンスへの切り替えなどの対策を取れずにいた。」と語った。

課題2:オペレーションコスト

当アプリの利用者増加により リソースコスト という課題が表面化してきたのと同時に、システムの安定稼働のために費やす時間が増加していった。そのため、本来注力したい機能改善や新機能の開発に着手できる時間が減少してしまう悪循環に陥っていた。

塩澤氏は「当アプリは、リリース直後は1,000人ほどであった月間アクティブユーザー数が、現在では100万人が利用するまでに成長した。しかし、当システムの運用管理は手動作業が中心となっており、リクエスト数に応じたEC2インスタンスの増減、SSH接続によるデプロイ作業、一部残っていたオンプレミスサーバの運用管理など、利用者数の増加とともに作業に忙殺される日々を送るようになっていった。」と話した。

アーキテクチャ(移行前) アーキテクチャ(移行前) ビルド・デプロイプロセス(移行前)

After「具体的な解決策と効果」

これらの課題の解決が急務であると考えた塩澤氏は、AWSサービスである「AWS Elastic Benastalk」と「コンテナ化」に注目した。
「モチベーションのあるうちに着手すべき」と、忙しい業務の合間を縫って、検証を開始した。

解決策1: コンテナ化によるアクセス数にあわせたリソース増減の自動化

従来のインスタンス方式では、システムへのアクセス数の増減に合わせて、インスタンスを増減させることが困難であった。だが、コンテナの特徴でもある起動の速さと、削除のしやすさを活かし、システムへのアクセス数の増減に合わせてコンテナ数も自動で増減させるように構成を変更した。

コンテナ化を実現し、塩澤氏は 「コンテナ化ができたことで、余剰リソースを削減できるだけでなく、予想外のアクセス数増加にも耐えられるようになった。また、容易に新世代に切り替えることもでき、高いコストパフォーマンスを得やすくなった」とコンテナ化による効果を語った。

また、コンテナ化するにあたっても「1つのインスタンスで複数の機能を稼働させていたため、業務影響の小さな機能から順次コンテナ化していった。その結果、コンテナ化に伴うメリットを肌で感じることができ、チーム内でも好評な声が上がるようになった。また、新しい技術に触れることでエンジニアの技術力やモチベーションの向上にも繋がり、忙しい中でもコンテナ移行を終えることができた。」と振り返った。

解決策2: 手動作業の削減と、オンプレミスの廃止

日々、デプロイ作業や設定変更などのオペレーション業務は手作業であったため、どうしても運用管理に工数を取られてしまっていた。そこで、複雑なAWSサービスの連携や、頻繁に行う手作業業務を簡略化するため、AWS Elastic Beanstalk を導入した。

塩澤氏は「AWS Elastic Beanstalk を使うことで、複数のAWSサービスが関係する操作を1つのブラウザ画面から行うことができるようになった。また、AWS Elastic Beanstalk でコンテナを管理することで、時間をかけていたデプロイ作業や設定変更作業も同画面で操作ができるようになり、オペレーションコストを激減させることができた。」と振り返るとともに、「オペレーションにかける時間を短縮できたことで、個別に運用管理を行っていたオンプレミスサーバーも廃止につなげることができた。」と語った。

これらの解決策を実施したことで課題を解決できたとともに、次のようなメリットも得られたと塩澤氏は述べた。

アーキテクチャ(移行後) アーキテクチャ(移行後) ビルド・デプロイプロセス(移行後)

目標達成
コンテナ化により本番環境と同じ環境を作りやすくなり、開発の効率がアップした。
エンジニアのコンテナに対する技術力が向上し、モチベーションアップに繋がった。
他のサービスへの興味、関心が向上し、更なる改善が期待できる環境ができた。
コンテナ化によりリソース増減の自動化が可能となり、コストパフォーマンス最適化
  が可能となった。
AWS Elastic Beanstalkによる自動化で、手動作業の削減とオンプレミスの廃止に
  より、運用工数が削減した。