【3分で読める!】サーバレスアーキテクチャって何?エンジニアが憧れるクラウドを活かしたシステムのご紹介

記事タイトルとURLをコピーする

こんにちは。高橋です。技術1課に所属し、楽しい日々を送っています。

さて今回は、たまに聞くけどよく分からない「サーバレスアーキテクチャ」のご紹介をします。

 

サーバレスアーキテクチャを一言で表しますと、「サーバを自前で用意せず、マネージドサービスを活用してシステムを構築する」となります。

ちなみに一部のエンジニア界隈では「EC2使ったら負けだよね」の空気があります。「バイオハザード2でナイフ以外使わない」といった縛りプレイみたいなものです。

マネージドサービスとは?

マネージドサービスはご存知の通り、サービスの運用管理をAWSが担うものです。例としてストレージサービスのS3は、冗長化や障害対応、ストレージの拡張全てをAWSが行います。そのためユーザはアップロードしたオブジェクトの管理のみ行えば良いのです。

自前でストレージを運用していると「ヤバイ!障害が起きた!対応しなきゃ!」「ヤバイ!ストレージが枯渇した!対応しなきゃ!」と管理が大変になりますが、マネージドサービスを使用することでそういった面倒な作業から開放されるのです。便利ですね。

サーバレスアーキテクチャでどういったことができるのか?

百聞は一見にしかず、実際にどういったことができるのか見たほうが早いでしょう。弊社の過去のブログをご紹介しますので、ご覧くださいませ。

特に3つ目の「AWS LambdaとS3で全世界ファイルサーバを作ってみた」はS3とLambdaだけで、全世界にまたがるファイルサーバが作成できています。この記事を書いた人は凄いですね。。。

ウェブサイトも簡単に公開できます!

spa38310
ウェブサイトだってサーバなしに公開できるのです。

上述のS3はウェブサイトホスティング機能があるので、コンテンツをS3に置くことでウェブサイトの配信ができます。CDNサービスのCloudFrontを組み合わせれば、全世界から大量のアクセスがきても怖くはありません。内部の運用・管理は全部AWSがやってくれます。

S3のホスティングはクライアントサイドでHTML、CSS、JavaScript などが利用できます。HTMLだけでなくJavaScriptも利用できるので、APIを叩くこともできます。

API Gatewayを使ってAPIを作成すれば、背後にいるAWS Lambdaを実行することができます。上の構成図ではLambdaを実行し、DynamoDBへの操作を表しています。

「ユーザ登録ができるキャンペーンサイト」みたいなものを、サーバを利用せずにマネージドサービスだけで作れるのです!便利ですね〜

SPAが簡単になる?

SPA(Single Page Application)というものをご存知でしょうか?単一のページで構成されるウェブアプリケーションです。ページ全体のロードは1回こっきりで、後は必要に応じてバックグラウンドで処理を行いますので、非常にレスポンスが早いという特徴をもちます。

Flashなんかは最初に画像、音楽含む全てのコンテンツ読み込んでからページを表示しますが、SPAでは必要に応じてコンテンツをロードします。ですのでユーザはヌルヌル動く高速なレスポンスを楽しめるのですね。

SPAの構築は非常にシンプルで、HTML5とJavaScriptで構成されます。JavaScriptをゴリゴリ書くのは大変なので、jQueryを使ったりします。クライアントサイドはサーバと通信するのにAPIを実行するため、モノリシック(一枚岩)なシステムとなり辛く、マイクロサービスの開発に適しているのではないかと思っています。

SPAでの開発の欠点として、クライアントサイドはAPIを実行するのでシンプルとなるのですが、サーバサイドではAPI受付のコードがモノリシックとなり非常に複雑で、スパゲッティとなりやすい点があります。

このサーバサイドの複雑な処理をAPI Gateway,Lambdaに置き換えることで、システムは疎結合となり、複雑さから開放されるのではないでしょうか。

<参考>

Dev Basics/Keyword:SPA(シングルページアプリ) - @IT

まとめ

サーバレスアーキテクチャの面白さをご理解頂けたでしょうか?

まだ日は浅く、サーバレスでアプリケーションを構築した場合、運用をどうするかといった課題はあるかと思います。しかしサーバの運用を行わなくていいというのは非常に楽ですし、何より本来の要であるシステムそのものに注力することができると思います。

これからもどんどんこの縛りプレイを楽しみましょう。ちゃお!