「サーバーレス アーキテクチャ」によるシステム開発・運用
サーバーレスとは?
サーバーレスとは、一定のサーバー容量に依存することなく、稼働に必要なリソースを動的に設定し、マネージドサービスを利用する事でシステム構築をする運用方法と言えます。
WEBサービス、サイト運用には、システムを動かすためのサーバーが必要です。そしてそのサーバーは、常に稼働していなければなりません。
この為システムの開発、構築はもちろん、一定規模のサーバーの運用、保守にも常にコストが発生します。
しかし、サーバーレスでの運用の場合、システムに必要な容量を、システム稼働時のみのコストで利用する事が出来ます。
そして、システムの冗長化や拡張性、インフラ側の障害対応などは、マネージドサービスを利用する事によって対応出来るので、その運用、保守のコストも抑える事が出来ます。
サーバーレス アーキテクチャ
サーバーレスでのアーキテクチャ(構成)には、あらかじめ準備されている汎用的API、システムを活用すれば、開発コストも抑える事ができ、大幅なコストの削減が期待できると考えられます。
スカイアーチでは、サーバーレス アーキテクチャのコンサルティングから、サーバーレスでのシステム開発、運用を、マネージドサービスでご提供致します。
AWSにおける サーバーレス構成
AWSにおいてのサーバーレス構成は、「Amazon S3、DynamoDB、Lambda これらの活用によって、EC2などの仮想化インスタンスサーバーを使わずにWEBサービスを開発する論理的構造(アーキテクチャ)」となります。
「サーバーレス」というのは、Amazon S3、Lambda 等のサービスが、サーバーを使用していない…ということではありません。これらのサービスももちろんAWSサーバー上で動いています。しかし、システム運用の為に、EC2使用時の様に、固定スケールのサーバー領域の常時稼働を必要としている訳ではありません。「サーバーレス」の定義としては、ユーザーがサーバー領域を意識せず、直接利用出来るサービスを活用した構成、と言えるでしょう。
AWS の「EC2」と「Lambda」の違い
EC2インスタンスを利用する場合、起動直後はOSがインストールされただけの状態となり、システムを稼働させるには、アカウントの初期設定を始め、各種ミドルウェアをインストールするなどの、環境構築が必要となります。しかし、Lambdaを利用した場合、AWSの提供した実行環境の中で起動する為、プログラムさえ用意すれば、すぐに使用が可能となります。
また、料金も、システムの実行時間のみの課金になりますので、コストの削減が期待出来ます。
EC2 インスタンス
- 汎用的なサーバー
- 起動直後はOSインストールのみの状態
- 初期設定、環境設定が必要
- システムの運用、保守、監視が必要
- 利用出来るのは契約したサーバーの容量
- 一定料金。仮想サーバー稼働時間内の代金
Lambda
- インフラ環境の整備、必要無し
- 実行環境は、AWSが提供
- ミドルウェア等の脆弱性対応不要
- トリガを選択し、プログラムをアップロードすれば直ちに動作
- 自動スケーリング対応
- システムを実行時間(100ミリ秒単位)で課金
- 利用されなければ無課金
「Lambda」とAWSサービス
「Lambda」は、AWS環境にすでに用意されている多種多様なサービスと連携して利用する事が出来ます。基本的なWEBサービスの土台はそろっていますので、最小限のプログラミングでシステムを構築する事ができ、運用を始める事が出来ます。
「Lambda」に組み合わせて使用出来る代表的なAWSサービス

「Lambda」の特性
「Lambda」は設定されているプログラムを起動させる実行環境となります。起動条件が整った際に、プログラムをLambda環境に呼び出し、実行されます。この為、Lambdaでは、実行した時間とその回数のみの課金となります。ですから、待機時間の長いシステムや、CPUの負荷が時間帯によって差のあるシステムなどに導入すれば、大幅なコストの削減が期待できます。
しかし、ゲームアプリや配信系サービスなど、常にシステムの動いている必要のあるサービスや、高負荷な状態が長時間続くシステムなどでは、Lambda、すなわちサーバーレス構成は不向きなものと言えます。
スカイアーチでは、お客様のサービス・システムを充分に検討の上、有効にサーバレス構成を導入出来る様、マネージドサービスにてサポートいたします。
サーバーレス構造・実績
大量のアクセスを捌くアーキテクチャ
下記はある企業のサイトで実装した、サーバーレスの導入例です。ネットでの注文のデータを今後に活かす為、データベースに蓄積するシステムになります。これをオンプレミス(自社運用)で賄おうとすると膨大なサーバーが必要となります。そこでAWSを利用した実装を考察しましたが、システムの常時起動、AutoScaleによる負荷の対応、RDSの同時接続数などの課題が上りました。

上記を踏まえ、サーバーレス構成での実装です。API Gatewayでリクエストを受けた際にLambdaを起動。処理したデータをAWS環境のSQSにてキューとして一旦保存。このキューをもう一つのLambdaの定期実行によりチェックして、データべースに保存する、という構成です。リクエストと定期時実行によるLambdaの起動で、運用コストの削減が期待でき、キューイングによる保存処理によって、データベースへの負荷を軽減します。

このように部分部分でシステムを分割し、疎結合なアーキテクチャを採用する事で、下記のようなメリットを享受する事ができます。
- 大量のアクセスを捌くことが可能となる
- 並行開発が可能となる
- メンテナンスを容易に実施出来る
サーバレスアーキテクチャの動作確認
リクエスト結果をS3へファイル保存を行うサーバレス構成を元にサーバレス構成の監視方法をご説明します。

Lambdaより、定期実行でサンプルリクエストをして、正しい流れでS3へのデータ保存が出来ているかを監視します。異常が検知された際には、管理者へアラートメールが送られます。
料金表
サーバーレス アーキテクチャ サービスの料金表になります。
項目 | 価格 |
---|---|
PoC/コンサルティング費用
※POC(実地検証)フェイズを含む費用です。 |
¥500,000~ |
初期・構築費用 | ¥1,000,000~ |
月額費用 | ¥25,000~ |
※カスタム監視も可能です。
※表記は、税抜きとなります。
※上記価格は目安になります。価格はシステム構成によって異なります。まずはご相談ください。