1
/
5
This page is intended for users in Singapore. Go to the page for users in United States.

ElasticBeanstalk活用の現状とsmarbyインフラの今後の展望

こんにちは。

5月からjoinした星野と申します。3児の父です。宜しくお願いします m( )m

このエントリーでは、入社したての私が興味深いと思ったsmarbyのビジネスとインフラの一面をご紹介します。


タイムセール時のアクセスは急増!


smarbyの特徴は毎日21時に開始されるタイムセールです。




多くのユーザにプッシュ通知を行うということもあり、通常の100〜120倍ほどのアクセスになることがあります。

以下は、毎日同じ時間帯にスパイクが発生している図。



はたして、どうやって大量のアクセスを処理しているのでしょうか…?



ElasticBeanstalk + Time-based Scalingで捌く!


はい、なんのことはありません。AWSに太古の昔から存在するElasticBeanstalkを使っています。

実際はRDSやらElastiCacheやらS3やら色々あるのですが、いろいろ端折って図にしてみます。



日によって微調整はするのですが、今のところ負荷最大時は 25〜30台程のt2.mediumインスタンスでさばいています。

以下はある1日のアクセス数に、インスタンス数(右軸)を重ねたものです。

毎日同じ時間帯にアクセスが多くなることはわかっているので、事前にスケールアウトしておき、プレウォーミングしておきます。



また、ElasticBeanstalkのコンソールから操作できる、時刻によるスケーリング(Time-based Scaling)の設定画面は、わかりやすいです。

指定したい時間帯ごとに、Min数、Max数、Desired数(当初希望するインスタンス数)を入力すればよいだけ。



ただのAutoScalingGroupの機能なのですが、ElasticBeanstalkの画面はわかりやすくて良いです。

これなら初心者のおじさん(私)もらくらく設定できました😁。


ElasticBeanstalkのメリットとしては

  • 太古の昔から存在するサービスなので、安定的
  • 太古の昔から存在するサービスなので、インターネット上に情報が多い
  • サーバの構成管理、プロビジョニングに時間を取らなくても良い

というところがあると思います。

まさにスタートアップで、エンジニアが1,2名しかいない環境であれば、良い選択肢なのではないでしょうか。


逆に、デメリットもあります。


ElasticBeanstalkのデメリット

  • 不具合が起きたときに原因を追いづらい
  • SecurityGroupやAutoScalingの機能を隠蔽するため、不意に思ってもみない事が起きる
  • puma/nginxなどの設定変更が(できなくはないが)面倒


2番めについては私が引き起こしてしまったのですが、ElasticBeanstalkのインスタンスにとある別のSecurityGroupをアタッチしたところ、別のインスタンスのSecurityGroupに影響が及んでしまった ということがありました。

この時は社内システムにプチ障害を起こしてしまいました(社内でよかった😅)。


具体的な話は少し複雑なので説明は端折りますが、このようなことに近いことが起きていました。


ElasticBeanstalkはAWSのいろんなことを隠蔽してくれますが、本当に使いこなすには、Cloudformationなどの知識も必要だと感じました📝


今後の展望: AutoScalingGroupのチューニングや構成管理の充実

smarbyでは検索経由でのアクセスが徐々に増えてきており、今後は、メディア露出や、あるキーワードが刺さった場合などにも、突発的なアクセスに耐えられるインフラを作る必要性 があります。

中期的な課題として、以下の様なことがあります。ElasticBeanstalkにこだわらず、柔軟でスケールできるインフラを構築したいと考えております。

  • terraform による構成管理
  • ansible + packer によるAMIプロビジョニング
  • 検証環境構築の簡易化


最後に

現在のところ、こういった取り組みは、私を含め2人体制でやっています。2人ともRailsエンジニアを兼任しています。

今回はAPIサーバの紹介だけでしたが、スマービーでは、物流面の領域も広く、そのあたりのインフラの整備も課題です。

このようなことに興味がある方、お話しませんか? オフィスは東京ですが、フルリモート可能な会社なのでリモートでのカジュアル面談ももちろん可能です! 地方在住者歓迎!

お待ちしております! !

株式会社ストライプデパートメント's job postings
19 Likes
19 Likes

Weekly ranking

Show other rankings