アプリ開発者もインフラ管理者も知っておきたいサーバレスとAWS Lambdaの基礎知識:AWS Lambdaで始めるサーバレスアーキテクチャ入門(1)(1/2 ページ)
システム開発の常識を覆す「サーバレスアーキテクチャ」について「AWS Lambda」を使って構築方法を学ぶ連載。初回は、サーバレスアーキテクチャの仕組み、メリット、Lambdaの特徴と留意点について。
システム開発手法の変化
Amazon Web Services(AWS)をはじめとするクラウドサービスの登場によって、システム開発や運用に対する考え方が大きく変わっています。
これまでのシステム開発といえば、自ら調達した物理サーバ上にOSやミドルウェア、アプリケーションを構築するものが主流でした。近年では、ファシリティ(データセンターの設備や資源)やハードウェア(サーバや物理ネットワーク)がクラウドプロバイダーによって提供されるクラウドサービスを活用し、ユーザーはOSレイヤー以上を構築するものが主流となりつつあります。
さらに、最近はプログラム開発とサービス連携のみでシステム開発が可能な「サーバレスアーキテクチャ」という新たな概念が登場しました。
本連載「AWS Lambdaで始めるサーバレスアーキテクチャ入門」では、AWS上でサーバレスアーキテクチャを構築する方法を紹介します。なお、AWSを使ってシステムを構築したことがある方や、AWSを導入する場合に必要となる基礎知識をお持ちの方を対象読者としています。
初回となる本稿では、まずサーバレスアーキテクチャについてご理解いただくために、クラウドサービスを代表するAWSを活用したサーバレスアーキテクチャの仕組み、メリット、およびAWSのLambdaというサービスの特徴と留意点を紹介します。
Amazon Web Services(AWS)とは
本連載のメインであるサーバレスアーキテクチャについて触れる前に、「Amazon Web Services(AWS)」について簡単に紹介します。AWSとは、Amazon Web Servicesによって提供されるクラウドサービスのことです。2017年2月現在、AWSは全世界で16の地域に提供され、190カ国で利用することが可能です。2006年にサービス公開されて以来、目まぐるしいスピードでさまざまな機能がサービスとして追加され、その数は約70に及びます。
AWS以外にも、Microsoft Azure、Google Cloud Platform、IBM Bluemix(旧Softlayer含む)などのクラウドサービスが存在しますが、クラウドサービス市場のリーダーはAWSといっても過言ではないでしょう。
図1 クラウドインフラストラクチャサービス部門におけるマジッククアドラント、全世界のレポート(「Gartner:Magic Quadrant for Cloud Infrastructure as a Service, Worldwideから」引用)
システム開発の常識を覆す、サーバレスアーキテクチャとは
一般的なシステムではプログラムを動かすためのサーバが必要であり、サーバは常に稼働している必要があります。この常識を覆すのがサーバレスアーキテクチャです。
サーバレスアーキテクチャのコンセプト
サーバレスアーキテクチャという言葉をインターネットで検索してみると、「メンテナンスすべきアプリケーションサーバがなければメンテナンスコストは掛からない」「サーバを自前で用意せず、マネージドサービスを活用してシステムを構築する」「サーバを必要とせず、かつ時間による従量課金サービスを利用しないアーキテクチャ」など、さまざまな形で表現されています。
このままでは分かりにくいため、本連載では「ユーザーがサーバを意識せずとも利用可能なサービス(AWSでは「マネージドサービス」と呼ばれます)を活用したアーキテクチャ」のことをサーバレスアーキテクチャと定義します。
マネージドサービスとは、サービスのインフラ運用管理をクラウドプロバイダーが請け負い、1つのサービスとして提供されるものです。ユーザーはマネージドサービスを利用することで、プログラムやコンテンツの開発・運用に集中できます。
マネージドサービスの例として、AWSのストレージサービスであるAmazon S3(Simple Storage Service)は、冗長化、可用性、障害対応などの運用が全てAWSで行われています。ユーザーはストレージにアップロードしたオブジェクトのみを管理すればよいのです。
サーバレスアーキテクチャの一例
例えば、簡単なWebサイトであれば以下のような構成で構築できます。ここで登場するサービスは、いずれもマネージドサービスです。
サーバレスアーキテクチャの3つの特徴
サーバレスアーキテクチャの大きな特徴として、まずコスト削減が挙げられます。
サーバやストレージ、ネットワークといったリソースはクラウドプロバイダーから提供されるため、サーバやストレージなどのハードウェア費用、初期設定作業に掛かる人件費などが不要となります。また、ファシリティ費用やハードウェア障害発生時の対応工数も不要となります。
ここまでは従来のクラウドサービスと同様ですが、サーバレスアーキテクチャでは、さらにサーバのメンテナンス運用が不要となります。具体的にはOSやミドルウェアなどへのセキュリティパッチの適用などが挙げられ、より多くのコスト削減が見込めると考えられます。
2つ目の特徴はイベントドリブンです。
サーバレスアーキテクチャを構成する上で欠かせないものとして、イベントドリブン(イベント駆動型)が挙げられます。イベントドリブンとは、ユーザーの操作や他サービスの実行(イベント)をトリガーとして処理が行われることです。「サービスAの実行結果をトリガーにサービスBが実行され、サービスBの実行結果をトリガーにサービスCが実行される……」というふうに、各サービスを疎結合に連携可能です。サービスが疎結合に連携されたシステムでは、サービスごとの拡張やサービスの追加が容易となるため、よりスケーラブルなシステムが構築できるといえます。
3つ目の特徴はインフラ運用管理が不要となる点です。
繰り返しとなりますが、AWSから提供されるマネージドサービスを組み合わせて1つのシステムを構築していくため、サービスごとのインフラを運用管理する必要がありません。日々の運用管理から解放され、その時間をアプリケーション開発に割くことができるのは、とても大きなメリットになると思います。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- AWS Lambdaの実現するイベントドリブンなプログラミングが、IoTへの扉を開く
米Amazon Web Servicesは、IoTアプリケーションの今後をどう描き、開発者にどのように構築してもらいたいのか。同社でモバイルとIoTを統括するモバイル担当副社長、マルコ・アルジェンティ氏へのインタビューの前編をお届けする。 - 米マイクロソフト、AWS Lambda的なサービス「Azure Functions」を発表
米マイクロソフトは2016年3月31日(米国時間)、AWS Lambda、Google Cloud Functionsと同様なイベントドリブン、サーバレスなコンピュートサービス、「Azure Functions」を発表した。同社はさらに、Azure Functions関連コードをオープンソースとして公開するため、Azure以外のプラットフォームでも動かせる。 - 米IBMがAWS Lambda的なサービスOpenWhiskを発表、オープンソース提供も
米IBMは2016年2月22日(米国時間)、AWS Lambdaに似たイベントドリブンなプログラミングサービス「Bluemix OpenWhisk」を発表した。同時にこれを、Apache 2.0ライセンスに基づくオープンソースコードとして公開。同社は特徴として、オープン性とエコシステムの展開を強調している。