はじめに
今回は、「AWS Lambda(ラムダ)」というサービスの概要についてです。
Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービスです。
Lambda は可用性の高いコンピューティングインフラストラクチャでコードを実行し、コンピューティングリソースの管理をすべて担当します。
これにはサーバーおよびオペレーティングシステムのメンテナンス、容量のプロビジョニングおよびオートスケーリング、コードのモニタリングおよびログ記録などが含まれます。
Lambdaを使用すると、実質どのようなタイプのアプリケーションやバックエンドサービスに対してもコードを実行できます。
必要なのは、Lambdaがサポートするいずれかの言語でコードを指定することだけです。
Lambdaは、ソースコードさえ用意すればそのプログラムを実行する事ができるサービスです。
プログラムを実行するための環境を構築する必要も管理する必要もありません。
開発者は、サーバーの管理やメンテナンスから解放され、プログラム開発に注力する事ができます。
Lambdaの特徴を紹介していきます。
項目
1.サーバーの構築が不要
2.サーバーの管理が不要
3.一般的な言語のサポート
4.並列処理/スケーリング
5.柔軟なリソース設定
6.ミリ秒単位の無駄のない課金
7.他のAWSサービスとの連携
※ 『AWS認定資格試験テキスト AWS認定クラウドプラクティショナー』 の第5章に相当
1.サーバーの構築が不要
Lambdaでプログラムを実行するのは簡単です。
実行したいプログラムのランタイムを選択して、ソースコードをアップロードすれば実行できます。
オペレーティングシステムの用意、実行するためのミドルウェアのインストール、環境設定など、本来注力する必要のある作業を行わなくて済みます。
Lambdaをマネジメントコンソールから作成する場合、名前を決め、ランタイムを選択し、権限をIAMロールから選択したら、あとはソースコードをアップロードするだけです。
2.サーバーの管理が不要
Lambdaを使用すれば、「オペレーティングシステムの更新」「セキュリティパッチの適用」「ディスク容量の追加」「オペレーティングシステム、ミドルウェアのメンテナンス」「冗長化、障害時の復旧」「スケーラビリティの確保」「障害を考慮した設計」「実行エラー時のリトライ」「ジョブが特定時間に集中することへの考慮」といった管理が不要となります。
つまり、サーバーの運用・保守といった作業が必要なくなります。
3.一般的な言語のサポート
C#、PowerShell、Go、Java、Node.js、Python、Rubyといった言語をサポートしています。
4.並列処理/スケーリング
リクエストやトリガーからの実行指示がない時は、実行されません。
従来のサーバーのようにリクエストを待っている間に稼働し続けておく必要はありません。
リクエストやトリガーによってコードが実行されます。
リクエストの数が増えれば、実行されるLambda関数の数も増えていくため、Auto Scalingの設定をしなくても、Lambdaで自動的にスケーラビリティが確保されているメリットがあります。
5.柔軟なリソース設定
Lambdaで設定する性能はメモリです。
設定できる範囲は128MBから3008MBの間で64MB刻みで設定できます。
CPU性能はメモリに比例して割り当てられます。
メモリの設定が課金に影響します。
6.ミリ秒単位の無駄のない課金
実行されている時間に対してミリ秒単位の無駄のない課金がされます。
実行されていない待機時間には課金されません。
7.他のAWSサービスとの連携
・特定の時間になった時(CloudWatch Events)
・S3にデータがアップロードされた時
・DynamoDBに新しいアイテムが書き込まれた時
・Auto Scalingアクションが実行された時
・Webページでボタンが押された時
・Kinesisにレコードが追加された時
・「Alex、〜について教えて」といった時
これらをイベントトリガーとして実行されます。
様々なAWSサービスがトリガーとして用意されているので、それらを組み合わせることで、簡単にAWSサービスを利用する事ができます。
Lambdaでは、使用できる言語のSDK(Software Development Kit)が、ランタイムを選択することにより、実行環境に用意されます。
SDKを使用すると、AWSサービスの操作を数行のコードで自動化できます。
LambdaでSDKに対応するコードを書けば、AWSサービスのイベントをトリガーにして他のAWSサービスの処理を行うことができます。
Lambdaのモニタリングは、CloudWatchのメトリクスやLogs、X-Rayで確認します。
ソースコードは、AWS CodeCommitなどのリポジトリでバージョン管理できます。
参考書籍
※ 『AWS認定資格試験テキスト AWS認定クラウドプラクティショナー』
● 楽天はこちら