2021/05/24

「AWS Lambda」の使い方を詳しい手順にて解説します!

 
  

「AWS Lambda」とは?


「AWS Lambda(ラムダ)」とは、サーバーを構築せずに任意のプログラムを実行できる環境のことで、いわゆる「サーバーレス・コンピューティング」を実現してくれるAWSのサービスです。

そのため面倒になりがちなサーバーのプロビジョニング作業(※コンピューターやネットワーク機器等の設備を必要時に即時提供できるように準備しておくこと)が不要になり、プログラムの作成に集中することができます。

つまり「AWS Lambda」を適切な使い方をすることで、煩雑なサーバー管理作業を必要とせずに、さまざまなタイプのアプリケーションを実行できるようになります。

具体的には、プログラムのコードをアップロードするだけで、AWS利用によるスケーリング等の「高可用性」を担保しながら、必要な作業は「AWS Lambda」が実行してくれます。

それでは、「AWS Lambda」の特徴やメリットについて、詳細に解説していきます。

そもそも「サーバーレス・コンピューティング」とは?

「サーバーレス・コンピューティング」とは、物理的なサーバーの準備を考慮せずに、IT系のサービスやアプリケーションを構築、実行できる情報処理方式のことです。

AWSでは、サーバーレス・コンピューティングの中核的なサービスや使い方となっているのが「AWS Lambda」になります。

「サーバーレス・コンピューティング」の一般的な使い方としては、(AWSに限定されませんが)アプリケーション自体は結局のところサーバーで実行されますが、このサーバーの管理作業をAWS側がマネージド・サービスとしてすべて処理してくれます。

このためプログラミングのコードを実行する際に、サーバーのプロビジョニングやメンテナンス管理等の作業が不要となっています。

「AWS Lambda」の特徴について


「AWS Lambda」の特徴としては、「サーバー管理が不要」、「継続的スケーリング」、「あらゆる規模で一貫したパフォーマンス」があります。

それぞれについて、詳しく解説していきます。

「AWS Lambda」の特徴1:サーバー管理が不要

「AWS Lambda」の1つめの特徴は、「サーバー管理が不要」である点です。

「AWS Lambda」では、コードは自動実行され、インフラ関連のリソースのプロビジョニングや管理作業が不要です。記述したコードをZIPファイル等でAWS上にアップロードするだけで完了します。

「AWS Lambda」の特徴2:継続的スケーリング

「AWS Lambda」の特徴2としては、継続的スケーリングである点です。

イベントドリブンでコードを実行することにより、アプリケーションが自動的にスケールします。

「AWS Lambda」の特徴3:あらゆる規模で一貫したパフォーマンス

「AWS Lambda」の3つめの特徴は、あらゆる規模で一貫したパフォーマンスを発揮する点です。

具体的には、「AWS Lambda」では、適切なメモリサイズを関数に対して選択すれば、コード実行時間の最適化を図れます。

「AWS Lambda」の具体的な使い方について


「AWS Lambda」の使い方について、順番に解説していきます。

具体的には、「AWS Lambda コンソール」画面上で操作することで、所定のプログラミングの内容を実行する「AWS Lambda」関数を作成するまでの流れの説明になります。

ここでは定番となっている「Hello, World!」を「AWS Lambda」を利用して実行するまでの手順をご紹介します。「AWS Lambda」において、サーバーのプロビジョニングや管理不要でプログラミングのコードを実行する「サーバーレス・コンピューティング」の基本を学習することができます。

その次の段階として、サンプルのイベントデータを利用して手動で「AWS Lambda」関数を呼び出す方法、そして、出力されたメトリクス(評価基準値)を確認する方法を解説します。

なおこれらの手順は、「無料利用枠」の範囲内ですべて実行されますので、料金面を気にする必要はありません。

手順1: 「AWS Lambda コンソール」を起動する

手順1として、「AWS Lambda コンソール」を起動します。

最初に、「AWS マネジメントコンソール」画面にログインします。この「AWS マネジメントコンソール」画面は新しいウィンドウで開くので、この解説記事ページを開いたままで操作を続けられます。

次に、 「Compute」の下にある「Lambda」をクリックすることで、「AWS Lambda コンソール」を起動します。

手順2:Lambdaの「設計図」を選択する

使い方の手順2として、Lambdaの「設計図」を選択します。

この「設計図」には、最低限の処理を行える「サンプルコード」が提供されています。多くの設計図では、特定のイベントソース (「Amazon S3」、「DynamoDB」等)のイベントを処理できます。

今回実行する「Hello, World!」も、この設計図として提供されています。

それでは最初に、「AWS Lambda コンソール(ダッシュボード)」画面で、「関数の作成」を選択します。

使い方の注意点として、「AWS Lambda コンソール(ダッシュボード)」画面は、ユーザーによって作成された「Lambda 関数」がない場合には別の「紹介ページ」が表示され、「Lambda 関数」を既に作成済みの場合は、この画面が表示される点です。

次に、「関数の作成」を選択して、Lambda関数の作成ページに進みます。

次に、「設計図の使用」をクリックして選択し、「設計図」のフィルターに「hello-world-python」と入力して絞り込みを行い、「hello-world-python」設計図を選択します。

最後に、「設定」ボタンをクリックします。

手順3:Lambda 関数を設定して作成する

使い方の手順3として、Lambda 関数を設定し、作成していきます。

Lambda 関数は、ユーザーが作成するコードを中心として、関連する依存関係や各種設定で構成されています。

設定情報には、コンピューティングリソース (メモリ等)、実行タイムアウト、ユーザーの代理として「Lambda 関数」を実行するために必要な「IAM ロール」で構成されています。

最初に、Lambda 関数についての「基本的な情報」を入力します。入力し終わったら、ページの一番下に進んで「関数の作成」を選択します。

これで「hello-world-python関数」が作成されます。

手順4:Lambda 関数の関連情報を設定する

使い方の手順4として、Lambda 関数の関連情報を設定していきます。

「ランタイム設定」では、Python、Java、Node.js、C#等の Lambda関数コードを作成可能です。ここでは「Python 2.7」としておきます。

また「ハンドラー」は Lambda によってサンプルコードから識別され、「lambda_function.lambda_handler」と既に入力されています。

次に、下方にスクロールして、必要に応じてメモリ、タイムアウト、VPCを設定しますが、ここではLambda 関数の設定値を「デフォルト」のままとします。

手順5:Lambda 関数を呼び出して結果を検証する

使い方の手順5として、Lambda 関数を呼び出し、その結果を検証します。

成功すれば、コンソール画面上に「hello-world-python Lambda」関数が表示されます。またLambda関数のテスト結果の検証やログの確認が可能となります。

最初に、「テスト」タグを選択します。次に、「テストイベント」欄で、サンプルイベントのテンプレートリストから「Hello World」を選択します。

イベント名として「HelloWorldEvent」を入力します。さらに「value1」を「Hello, World!」に置換して「変更を保存」をクリックします。そして、「テスト」ボタンをクリックしてテストを実行します。

正常に終了すると、コンソール画面に結果が表示されます。「実行結果:成功」と表示されれば成功です。

「AWS Lambda」でサーバーレスの使い方を学ぼう!


これまで解説してきた通り、「AWS Lambda」の利用を通じてサーバーレスサービスの使い方を学べます。

こちらの記事でご紹介した「AWS Lambda」の詳細な使い方の手順を参考に、煩雑なサーバー管理作業の削減にチェレンジしてみてはいかがでしょうか。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】