前回では、システムの疎結合化の例として、コーポレートサイトの動画処理機能を追加しました。ユーザーが動画ファイルをAmazon S3にアップロードすると、Amazon SNSがそのURLをサムネイル作成、スマートフォン向けエンコード、PC向けエンコードという三つの機能に分けて設けたSQSキューに送り、機能ごとの複数台のEC2インスタンスで処理するというものです。

 三つの機能を一つの処理系にまとめず分離させることで、スケーラビリティー(拡張性)や可用性を高めやすくなります。半面、ユーザーの手間が増えます。EC2インスタンスの可用性の確保やスケーリングはユーザーが行います。さらに、サムネイル作成や動画エンコードの実行環境を自前で構築しなければなりません。

 運用保守の手間も掛かります。OSや言語フレームワークのアップデートやセキュリティパッチ当て、AMI(Amazon Machine Image)の作成、スケーリング、監視、障害復旧などを、ユーザーが行います。

 ここまで聞いて「疎結合化すると、仮想マシンの台数が増えて運用保守が大変になる」と思ったかもしれません。そんな疎結合化のデメリットを解消するのが、ここで取り上げるAWS Lambda(ラムダ)です。

 Lambdaはコード(Node.js、Java、Python、C#、Goなど)をイベントや時間間隔を指定して実行するサービスです。特徴として、サーバーの管理が不要、自動スケーリング、コードを実行した分だけの課金があります。

この先は有料会員の登録が必要です。「日経SYSTEMS」定期購読者もログインしてお読みいただけます。有料会員(月額プラン)は初月無料!

日経 xTECH ラーニング/日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら