EC2とサーバーレスなら多くの場合後者が低コスト
基本的には同じ規模のサービスであってもサーバーレスで構築した方が、コストが低くなるケースが多いでしょう。これはそれぞれの課金の仕組みに要因があります。
Amazon EC2でWebアプリなど常時起動させておく必要があるサービスを構築した場合、料金自体は、インスタンスのスペックと仮想マシンの数と利用時間に応じた従量課金になります。しかし、運用時には常時稼働させている必要があるため、一定の料金が固定的に発生します。
一方で、サーバーレスで構築した場合、実際にサービスが稼動した分だけ料金が発生するため、完全に従量課金となります。だから、極端な話をすれば、利用頻度が低いシステムをサーバーレスで構築して、ある月にまったく稼動しなかった場合、料金は発生しません。
現実には、そのシステム単体ではなく、アカウント管理であったりストレージとの兼ね合いなどもあり、システム全体でまったく費用が発生しないというのは希です。それでも使わなかった機能やサービスに関しては、まったく料金が発生しません。
クラウドのメリットとして、固定費を変動費化できるという点がよく言われますが、サーバーレスにすることで、そのメリットがより高まると言えます。
サーバーレス料金は青天井で、見積もりが難しい?
サーバーレスについては、使った分だけ料金が発生するということから、トラフィックやデータ量が大量にあるサービスをサーバーレスで構築すると料金が青天井になってしまうことが怖いという意見もあります。
しかし、基本的な構成を構築して負荷試験を行うことによって、利用者数や利用時間などに応じた、料金の予測見積もりモデルを作ることはできます。サービスが予想以上に好評となって、AWSの料金が想定以上になる見込みとなった場合は、予算を見直すのか、またはAWS WAF等でレートリミット制限やAPI Gatewayでスロットルさせるというような、ビジネス上の判断も必要になるかもしれません。
また、従量課金サービスの料金の上限の問題は、サーバーレスだからではなくクラウド全般において発生しうるものです。EC2であってもサイジング無しに必要以上のインスタンスを適用すれば、料金は予想以上に膨れ上がるでしょう。
いずれにしても、クラウドを利用するに当たっては、料金についてあらかじめ適切な設定を施したり、必要以上のアクセスに対してどのように対応するかといった観点で事前に検討しておくことがおすすめです。
多くの場合、料金が青天井のように高騰してしまう前に、利用中の各AWSサービスのサービスクオータ(利用量の制限)に先にかかってしまうため、過剰に心配する必要はありません。サービスクオータは、その多くの項目を必要に応じて上限緩和申請をすることが可能なので、料金の見積と同様に負荷試験を通じて制限に到達するアクセス量を把握することが可能です。
このように、よりサービスを広げて行く場合に、フレキシブルに対応できるのもサーバーレスのメリットのひとつです。
サーバーレスとオンプレミス:リクシル様の事例
弊社の事例でもご紹介しているLIXIL様も、会計システムの一部をオンプレミスからサーバーレスへ移行する事でコスト削減に成功したケースです。
このシステムは、1日当たり70万件ほどの会計データを処理するシステムで、一定の時間にバッチ処理を行っています。オンプレミスでは月額当たりサーバー料金のみで数十万円ほど掛かっていたところが、サーバーレス構成することで約1万円程度にまで削減できました。本システムのように特定の時間しか動かないバッチ処理では、夜間に処理が実施されている時間のみの課金となるため、サーバーレスによるコストメリットをうまく活かし、大幅なコストダウンが可能になります。
サーバーレスだから実現できた製品:ソニー様の事例
弊社の事例ではないですが、ソニー様もAWSのサーバーレスサービスを活用して、新製品開発の成功とコスト削減を実現しています。
AWSの公式事例に掲載されていますが、2018年に新たに発売されたペットロボット「aibo」は、その頭脳にあたる部分をサーバーレスで構築しています。aiboがインターネット経由でダイレクトにAWS上のシステムと連携するために、AWS IoTやAmazon Dynamo DB、AWS Lambdaなど様々なサーバーレスサービスを活用しています。
aiboの発売にあたり、新たな取り組みということもあり販売台数などの予測が見えなかったため、オンプレミス構成での見積もりが難しく、サーバやネットワークの調達も予測が難しかったといいます。そこで、サーバーレスで構築することによって、販売台数の変動に柔軟に対応することができたそうです。
サーバーレスにおけるコストとアーキテクチャのバランス
もちろん、サーバーレス構成がどんな場合でもコストメリットがあるわけではありません。例えば、Yahoo!やLINEといった、トラフィックが大量の大規模サービスを仮にサーバーレスで何の考慮もなく構築したとすると、その利用料は莫大で、それこそ天井知らずな金額になってしまいます。
しかし、このようなケースにも対処する方法はあります。例えば、大量のデータを扱う際に、Amazon DynamoDBのストレージ料金が高額になる場合、Amazon RDSやAmazon ElastiCacheなど、ストレージ量にコストが依存しないサービスを利用するのも一つの選択肢です。
もちろん、データベース系のサービスの中では、メンテナンスの手間が最も少ないAmazon DynamoDBを使うことが、運用上では最もメリットが大きいかもしれません。しかし、クラウドコストとのバランスを考慮し、アーキテクチャの判断が求められます。
いずれにしろサーバーレスの導入によって、1)固定費を変動費化できる、2)インフラ管理が不要でサービス開発そのものに集中できる、という2つのメリットは、スタートアップから大企業まで様々な場面で有効な武器となりえます。