CloudAdvisor
 
ブログ

サーバーレスとは? AWS Lambda中心の構成のメリットと仕組みを解説!

AWSサーバーレス構成を大解剖!【Lambda中心のフォーム処理編】

CloudAdvisorではキャンペーンサイト専用ホスティングとして、AWSのサーバーレスアーキテクチャを活用したサービスを提供しており反響を頂いていますが、Web制作に慣れている方ほど「サーバーレスってどういうこと?」というご質問も頂きます。

そのため弊社で実践している構成を例に、サーバーレス構成ご提供の背景と仕組みをご紹介します。

サーバーレス構成が求められる背景

新作ゲームのように注目度の高いサイトや、LINEやTwitterなどと連携したキャンペーンサイトで膨大なアクセスが見込まれる際、サーバーダウンを避ける方法としてサーバーの冗長化構成が検討されることは多くあります。

メールアドレス登録やユーザー登録だけさせるキャンペーンサイトは、1ページだけで完結するシンプルな作りが多いですが、冗長化構成は過剰なスペックになりやすく、余計なコストがかかることもあります。

そこで AWS Lambda を中心に複数のAWSサービスを組み合わせることで、膨大なアクセスに強く、従来の冗長化構成に比べ安価な環境を構築することができました。

一般的な冗長化構成例

サーバーレス構成例

サーバーレス構成の3つのメリット

サーバーの保守管理の手間が減る

サーバーを利用する際、一般的にはセキュリティのためサーバーOSやミドルウェアの設定と保守運用、突発的な障害対応などありますが、サーバーレス構成ではそのサーバーOSやミドルウェアが無いので運用作業が大幅に減ります。

サーバーレス構成が冗長化構成より安価で提供できるのは、管理コストが減る点が大きいです。

サーバーの脆弱性を突いた攻撃が効かない

セキュリティ被害の多くはサーバーOSやミドルウェアの脆弱性を突いた攻撃ですが、公開ネットワーク上にサーバーが無いので、一般的なサーバーの脆弱性を突く攻撃が効きません。

Amazonのプラットフォームに脆弱性が無いとは言えませんが、プラットフォーム仕様が公開されていないので脆弱性を探すことが難しく、一般的なサーバーOSより脆弱性被害の可能性は少ないと考えられます。

サーバーが落ちることがない

サーバーが無いのでサーバーダウンの概念がありません。

厳密にはAmazonがダウンすれば共倒れしますが、どのプラットフォームもサービス本体がダウンすれば同じことが言えるので、世界的インフラのAWSと、自社サーバーや一般企業のレンタルサーバーのどちらを信用するか、という話になります。

サーバーレス構成のしくみ

前提として「1枚の静的ページにメールアドレス登録フォームのみ置いたシンプルなキャンペーンサイト」を構築することを例に、サーバーレス構成のしくみをご紹介します。


よくあるゲーム事前登録サイトのイメージ

下の構成図は上記例のサイトのサーバーレス構成です。大きくは「フォーム処理」と「コンテンツ表示」に役割が分かれ、今回はフォーム処理側についてご紹介します。

処理の流れとAWSサービスの概要

上図でクローズアップしたフォーム処理側は、以下ような流れになっています。

API Gateway

Amazon API Gateway は API の作成、配布、管理ができ、数十万件の同時API呼び出しも処理できるサービスです。
構成例での役割は、送られたフォームデータを Lambda へ渡すことです。
コンテンツ側からフォーム送信処理が JavaScript で API Gateway に送られ、 API Gateway から Lambda を起動しデータを渡します。

Lambda

AWS Lambda はサーバー不要でコードを実行できるサービスです。言語はNode.js、Python、Java、C#をサポートしています。
構成例での役割は、フォームプログラムを実行する要の存在です。
API Gateway によって起動され、DynamoDB へフォームの送信データを格納し、メールの自動返信処理を SES へ送る処理を実行しています。

DynamoDB

Amazon DynamoDB は高負荷が予想されスケールする環境での利用を前提に設計された、NoSQLデータベースです。NoSQLデータベースはMySQLなど従来のリレーショナルDBと異なる非リレーショナルなDBで、高速かつスケーラブルなメリットがあります。
構成例での役割は、 Lambda から次々に送ってこられるフォームデータを高速に格納するデータベースになります。

Simple Email Service (SES)

Amazon SES は Amazon 自身が顧客にメールを送るために開発したインフラで構成された、スケーラブルなメールサービスです。
構成例での役割は、 Lambda からの命令を受け取り、登録者へ自動返信メールを送ります。

以上のように、 Lambda を中心に AWS の各サービスを利用することで、サーバーレスでフォームデータの蓄積とメール送信を行っています。

さいごに

サーバーレス構成は管理コストとスケール性に優れていますが、何でもサーバーレスにすれば良いわけではありません。

高度なWebサービスをサーバーレスで構築することもできますが、 Lambda は制約も多く、APIを細かく分割する必要があるなど従来のサーバー構成とは異なる開発手法が必要になるので、サービスによっては従来のサーバー構成の方が適していることもあります。そうした中、今回の例のようなシンプルなキャンペーンサイトはサーバーレス構成のメリットを最大限に享受できるケースです。

高負荷が予想されるキャンペーンなどでインフラにお悩みの方は、サーバーレス構成も選択肢の一つとしてご検討いただければと思います。

チャットでご相談いただけます。

クラウドの立ち上げや乗せ換え・運用についてお答えします。

チャットで相談する

お問い合わせ 03-3555-5260