どんなプログラムでも、今まではサーバーの構築から始める必要がありました。ところがサーバーレスの仕組みを使えば、作ったプログラムをそのまますぐに実行することができます。今回は、サーバーレスの仕組みからAWS Lambdaを使った構築の流れ、そして料金体系までを解説します。
サーバーレスとは?
はじめに、サーバーレスの仕組みを説明しておきます。
通常、システムを動かすためにはプログラムを書き、そしてプログラムを実行するというステップとなります。
そして、従来ではプログラムを書いたとしても、それを実行するためには動作環境となるサーバーの構築が必要でした。
また、システムを継続して運用するためには、そのサーバーは常に稼働させておく必要があります。
しかしサーバーレスの場合は、プログラムを動作させる際にサーバーが自動で立ち上がるようになっているので、サーバーをずっと動かしておく必要がありません。
つまりサーバーレスを導入すれは、サーバーの管理から解放されるということです。
AWS Lambdaとは?
サーバーレスの仕組みを提供するクラウドサービスの一つに、AWS Lambdaがあります。
AWS Lambdaは2014年に発表された、サーバーレスのコンピューティングを担うサービスです。
Lambda関数でシステムを構築することにより、サーバーのプロビジョニングや管理をする必要がなくなります。
Lambdaの機能
ではサーバーレスを運用するために、AWS Lambdaにはどんな役割を果たすのでしょうか。
以下でその機能について、ご紹介します。
関数
LambdaではAWSが実行環境の管理をしてくれますが、ユーザーがLambdaの実行環境をコントロールすることもできます。
具体的には、Lambdaのマネジメントコンソールから、使用するメモリ量、Lambda関数にアクセスできるAWSサービスやユーザー等、アクセス許可とセキュリティの設定が可能です。
ランタイム
ランタイムとは「関数言語」のことです。AWS Lambdaで選択できるランタイムは多く、複数の言語によって運用をサポートしてくれます。
また、カスタムすることで独自のランタイムを使用することもできるので、ユーザーが従来のオンプレミス環境で慣れ親しんだ言語でAWS Lambdaを操作することができます。
オンプレミス環境と同じコードの実行が可能
従来のオンプレミスの実行環境で取得していたコード実行のログは、Amazon Cloud WatchやAWS Cloud Trailといった他のサービスを使って取得できます。
AWS Lambdaでは、従来のオンプレミス環境と同じようにコード実行が可能で、なおかつそのコードをサーバーレスにすることができます。
AWSを使ったサーバレス構築の流れ
ここからは実際にAWS Lambdaを使って、サーバーレスのアプリケーションを構築するときに、どういう流れで進めていくのかを見ていきます。
AWSの公式サイトへいくと、AWS Lambdaを使って「Hello World!」をサーバーレスで呼び出すチュートリアルが用意されています。こちらの手順を参考にしてみましょう。
参考:AWS「「Hello, World!」をサーバーレスで実行する 」
実際の手順
今回のチュートリアルの場合、Lambdaを用いて以下の手順で進めていく事が紹介されています。
- Lambda コンソールを起動する
- Lambda の設計図を選択する
- Lambda 関数を設定して作成する
- Lambda 関数を呼び出して結果を検証する
- メトリクスをモニタリングする
- Lambda 関数を削除する
AWS Lambdaの優れている点として、サーバー構築が必要ないだけでなく、サンプルコードの備えなど導入してすぐ運用できる環境が整っている点が挙げられます。
今回は「Hello World!」を表示させるだけという初歩的なプログラムということもあって、クリック操作を主体とし、コーディングの手間も少なく抑えられています。
サーバーを立てずにこれだけの操作が行えるのは、Lambdaの強みと言えます。
また、このチュートリアルは無料利用枠で操作が可能なので、興味がある方は触ってみることをお勧めします。
AWS Lambdaの料金
AWS Lambdaの使用料は実行したリクエストと時間の分だけ課金されます。リクエストの課金は、100万リクエストにつき20セントです。
時間の課金は、東京リージョンで1つのプログラムを実行するために1GBのメモリを使用した場合、1秒あたり0.000016667ドルです。
参考:AWS「AWS Lambda 料金」
プログラムが実行されていない時間は課金されないため、実行環境のサーバーを常に稼働させているより、無駄なコストがかからないことになります。
まとめ
今回はサーバーレスを構築するための代表的なサービスであるAWS Lambdaについて解説しました。
サーバーレスの仕組みを十分に理解し、AWS Lambdaでサーバーレスを構築できれば、すぐにプログラム実行したり、サーバーを運用するコストを削減したりすることができます。
サーバーレス構築のスキルは、今後ますます注目されていくでしょう。
皆さんもまずはAWS Lambdaに触れ、簡単なコード処理をするところから始めてみてください。
ONETECHのクラウド構築
ONETECHはシステムやソフトウェア、アプリ開発をベトナムオフショアで開発しています。開発したシステムのサーバはAWSを選択されることが最も多いです。また開発したシステムの運用保守業務も実施しています。保守体制、エスカレーションルート、緊急対応などをクライアント確認しベトナムオフショアで保守体制を構築します。
その際にAWSを選択した場合はAmazon CloudWatchを利用してクラウドサーバを監視しています。
AWS構築・運用、移行
加速するクラウド化により、自社の基幹システムやWebサービスをAWSへ移行することを検討されている企業が増加しています。ONETECHではベトナムにて低コストで新規WEB開発、スマホアプリ開発からクラウドへの移行、その後の運用保守までワンストップで提供しています。またAWSがサーバやミドルウェアを管理してくれるLambdaを利用したサーバレス構築にもいち早く取り組んでいます。パブリッククラウドの構築はMicrosoft Azure、Google Cloud Platform (GCP)も実績がございます。