aratana Tech blog

ECテクノロジーで 世界をもっと楽しく もっと笑顔に

セールに向けてのDynamoDBの負荷対策がいらなくなった話。要するにDynamoDBのOnDemandがやっと来た話。

こんばんは。夜の馬ヶ背。木目沢です。

この記事はaratana advent calendar 10日目の記事です。

f:id:kimesawa:20181203161504p:plain

アラタナはECサイトを運営する多くのブランド様のお手伝いをさせていただいているのですが、Serverlessで構築されているaratana gatewayでは一つ大きな悩みを抱えていました。

lab.aratana.jp

DynamoDBの料金が高い!

DynamoDBは使った分だけお支払いの形式ではなく、予め、書き込み・読み込みの使用量(キャパシティ)を設定しておき、時間*設定されたキャパシティの料金がかかっていました。

常に一定量しか書き込み・読み込みがないのならばそれで問題がないのですが、それが予測できない場合はやはり多めに積んでおかねばならず、余計な料金(それも意外に高い。とくに書き込み)がかかっていました。

DynamoDBのオートスケール

もちろん、DynamoDBのオートスケールを使えば解決はするのですが、オートスケールはメトリクスからその負荷状況を分析してスケールさせるので、突然多くのアクセスが来るなどのバーストには対応しきれませんでした。

迫りくるセール

ECサイト、特にaratana gatewayが対応しているアパレルECでは、年に二回大きなセールがあります。セールで服を買われたことがある方はおわかりかと思うのですが、多くのお客様がECに一気に来店されます。 ですので、バーストが起こりやすい。オートスケールだけではセールの負荷に耐えられない可能性もありました。

対応策を検討していたところでre:Inventから朗報が

aratana gatewayチームでは、その対応策を検討し実験もしているところでしたが、今年のAWS re:Inventで大きなニュースが飛び込んできました。

reinvent.awseventsjapan.com

それが、DynamoDBのOnDemand対応!!!!!

aws.amazon.com

これは、使った分だけお支払いするDynamoDBの新しい料金体系でした。つまり、事前にキャパシティを確保する必要がなく、オートスケールも不要。アクセスがあれば全て受け入れてくれてその分料金が加算されるというものです。

このタイミングでこの発表は衝撃的でしたが、これでDynamoDBに対して抱えていた問題が解決しました。

設定も簡単

各テーブルのキャパシティ設定で請求モードの設定が追加されていますので、それを設定するだけでOKです。

f:id:kimesawa:20181210015744j:plain

今年のre:Inventは使えそうな機能追加が多かった

他にも、今後活用できそうな機能追加が多く発表されており、色々試してみようと弊社でも盛り上がっています。

またブログでも紹介できたらいいなと思います。

アラタナではそんな弊社のチームを発展させてくれるメンバーを探しています。 興味がありましたらぜひお問い合わせください。