マネージメントサービス株式会社
Copyright Management Service Corp. All Rights Reserved.Copyright Management Service Corp. All Rights Reserved.
AWS Lambda
マネージメントサービス株式会社
デジタルビジネスイノベーションセンター
山本 友樹
2019
10-18
AWS若手勉強会#10
Copyright Management Service Corp. All Rights Reserved.
1.AWS Lambdaとは
2.使い方
3.特徴
4.料金
5.仕組み
6.まとめ
2
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
1.AWS Lambdaとは
2.使い方
3.特徴
4.料金
5.仕組み
6.まとめ
3
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
AWS Lambdaとは
イベント発生時にお客様のコードを実行し、基盤となるコン
ピューティングリソースをお客様に代わって管理する、サー
バーレスコンピューティングサービスです。
(AWS公式ページより)
4
簡単に言うと、
サーバはAWSにお任せしてプログラムを実行できる
サービス。
Copyright Management Service Corp. All Rights Reserved.
5
本来やりたかったプログラムの開発に集
中することができる。
サーバーはあくまで、プログラムを実行するために必要。
Copyright Management Service Corp. All Rights Reserved.
ここで次のスライドのようなことをやりたくなったら
あなたはどうしますか?
6
Copyright Management Service Corp. All Rights Reserved.
特定のEC2インスタンスを毎週月曜の9:00~18:00
のみ実行中にして、それ以外は停止したい
7
Copyright Management Service Corp. All Rights Reserved.
方法1
マネジメントコンソールから毎週月曜に9:00に開始させ、18:00に停止
する。
→毎週同じ時間に同じことをやるのはめんどい、しかも忘れるかも。
自動化したい。
8
Copyright Management Service Corp. All Rights Reserved.
方法2
下記のようなJavaを作成し、別のEC2インスタンスで毎時間動かす。
今が月曜の9:00のときに特定のEC2インスタンスを開始、
今が月曜の18:00のときに特定のEC2インスタンスを停止、
それ以外は何もしない
→別のEC2インスタンス作成するのがめんどい。EC2を作成するために、
VPCも作成しないといけなし、EC2でJavaが動く環境も作らないといけな
い。
さらにこのEC2も管理しないといけない・・・
9
Copyright Management Service Corp. All Rights Reserved.
そこでAWS Lambda
EC2インスタンスの作成必要なしで、Javaを動かすことができる。
Javaを動かす環境の作成も必要なく、コードを書けば実行できる。
→環境の構築に時間がとられずに済む。
10
Copyright Management Service Corp. All Rights Reserved.
1.AWS Lambdaとは
2.使い方
3.特徴
4.料金
5.仕組み
6.まとめ
11
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
マネジメントコンソールでポチポチで作れます
(プログラムを書くのはポチポチではない)
12
Copyright Management Service Corp. All Rights Reserved.
画面キャプチャで説明します
13
Copyright Management Service Corp. All Rights Reserved.
14
関数の作成をクリック
Copyright Management Service Corp. All Rights Reserved.
15
①Lambdaの名前を入力
②言語をプルダウンで選択
③関数の作成をクリック
Copyright Management Service Corp. All Rights Reserved.
16
1分程度待つと作成が完了
Copyright Management Service Corp. All Rights Reserved.
17
①コードを書く
②保存ボタンをクリック
Copyright Management Service Corp. All Rights Reserved.
完成!
あとは呼びたいときに、Lambdaを呼び出すだけ
18
Copyright Management Service Corp. All Rights Reserved.
簡単でしょ
19
Copyright Management Service Corp. All Rights Reserved.
補足
20
Copyright Management Service Corp. All Rights Reserved.
Lambdaから他のAWSリソースを操作するため
には、Lambdaに設定されているIAMロールに
権限が必要!
21
Copyright Management Service Corp. All Rights Reserved.
念のためIAMの復習
• IAMユーザ
→AWSアカウントのユーザ
• IAMロール
→AWSリソースに権限を付与するためのもの
• IAMポリシー
→IAMユーザ/IAMロールにアタッチ(付与)して、AWSリソースへのア
クセス許可をするもの
22
Copyright Management Service Corp. All Rights Reserved.
23
Lambda作成時に、作成・
アタッチされたIAMロール
Copyright Management Service Corp. All Rights Reserved.
24
IAMロールからどのAWSリソースにアクセス許
可されているか表示される
(テキトーなIAMロールだと、絶対に必要ない
AWSリソースが表示されて恥ずかしい(><))
Copyright Management Service Corp. All Rights Reserved.
25
インライン(マネジメントコンソールで編集)
以外にもローカルでプログラムを作成し、
zipファイルをアップロードすることが可能
Lambdaが呼ばれたときに実行されるものを
「ファイル名(拡張子なし).メソッド名」で指定する。
Copyright Management Service Corp. All Rights Reserved.
ログを見る方法
26
Copyright Management Service Corp. All Rights Reserved.
27
①モニタリング
②CloudWatchのログを表示
をクリック
Copyright Management Service Corp. All Rights Reserved.
1.AWS Lambdaとは
2.使い方
3.特徴
4.料金
5.仕組み
6.まとめ
28
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
特徴
• オートスケール
• コードの実行時間のみの課金
• AWSサービスと連携させることが簡単
• サポートされている言語
29
Copyright Management Service Corp. All Rights Reserved.
オートスケール
オート(自動)でスケール(必要な量に拡大/縮小)する。
必要なリクエストに応えられるように水平方向に拡大/縮小される。
水平方向な拡大/縮小とは、Lambdaが必要な数に増えたり減ったりするこ
と。
30
Copyright Management Service Corp. All Rights Reserved.
コードの実行時のみの課金
リクエスト数 + メモリに応じた実行時間
※Lambdaが起動していないときは、課金されない。
31
Copyright Management Service Corp. All Rights Reserved.
AWSサービスと連携させることが簡単
様々なAWSサービスからLambdaを起動させることが簡単にできる。
S3にファイルがアップロードされたら・・・
DynamoDBにデータが登録されたら・・・
API Gatewayにリクエストがきたら・・・
ログ(CloudWatch)にエラーがXX件以上発生したら・・・
アプリケーションのデプロイ(配備)が完了したら・・・
あるAWSリソースに変更がされたら・・・
などなどなど・・・
この何か起きたときにLambdaが動き出すのでイベントドリブン(イベント
駆動型)と言ったりします。
32
Copyright Management Service Corp. All Rights Reserved.
サポートされている言語
• Java
• Go
• PowerShell
• Node.js
• C#
• Python
• Ruby
また、カスタムランタイムという仕組みを使って、少し努力すればその他
の言語も動かすことができます。
33
Copyright Management Service Corp. All Rights Reserved.
1.AWS Lambdaとは
2.使い方
3.特徴
4.料金
5.仕組み
6.まとめ
34
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
料金(東京リージョン2019/10/18時点)
• リクエスト
月間100万リクエストまでは無料
以後は、100万リクエストあたり0.2USD
• 実行時間
月間40万(GB×秒)が無料
以後は、1 (GB×秒) あたり、0.0000166667USD
ラムダはメモリを128~3008MBの中で設定できる
★一番小さい128MBの場合
約888時間(37日)が無料で使える。
大規模なアプリケーションでなければ、大抵無料で使うことができる。
35
Copyright Management Service Corp. All Rights Reserved.
1.AWS Lambdaとは
2.使い方
3.特徴
4.料金
5.仕組み
6.まとめ
36
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
サーバレスって言うけどどのような仕組みか
ざっくり理解しましょう!
37
Copyright Management Service Corp. All Rights Reserved.
その前にまずはEC2の仕組み
38
Copyright Management Service Corp. All Rights Reserved.
EC2
AWSが全世界で作成されるであろうサーバーを全て物理的に事前に準備し
て、ユーザがEC2を作成したら、用意していたサーバーを使ってもらう。
39
それは無理ゲー
Copyright Management Service Corp. All Rights Reserved.
仮想化
物理的には1台のサーバーのリソースを分割して、
あたかも複数のサーバーのように扱う仮想化という仕組みを使っ
ている。
40
現実 仮想化
100GB 20GB×5台
Copyright Management Service Corp. All Rights Reserved.
もう少し仮想化
物理的なサーバーを仮想化するソフトウェアをハイパーバイザー
という。
41
物理的なサーバー
ハイパーバイザー
仮想マシン(EC2)
OS
アプリ アプリ
仮想マシン(EC2)
OS
アプリ アプリ
仮想マシン(EC2)
OS
アプリ アプリ
Copyright Management Service Corp. All Rights Reserved.
EC2はハイパーバイザーの仕組みで作成された
仮想サーバ
42
Copyright Management Service Corp. All Rights Reserved.
ではLamdaもハイパーバイザーで作成された
仮想サーバで動いている?
43
Copyright Management Service Corp. All Rights Reserved.
仮想化の仕組みは使っていますが、ハイパーバイ
ザーではありません。
コンテナという仕組みを使っています。
44
Copyright Management Service Corp. All Rights Reserved.
コンテナとは
1つのOSにアプリの実行環境を提供する仮想化の仕組み。
45
物理的なサーバー
コンテナエンジン
コンテナ
OS
アプリ アプリ
コンテナ
アプリ アプリ
コンテナ
アプリ アプリ
Copyright Management Service Corp. All Rights Reserved.
比較
46
ハイパーバイザー型仮想化 コンテナ型仮想化
仮想マシンはそれぞれOSを持つのに対して、コンテナは1つのOSで動く。
仮想マシンは、それぞれOSが選べるのでカスタマイズ性が高い。
コンテナは、OSの起動が必要ないので起動が高速。
※ちなみにLambdaはLinuxのOSで動いている。
Copyright Management Service Corp. All Rights Reserved.
Lambdaの起動
1.(ENIの作成)※VPCを使用するときにのみ実行
2.コンテナの作成
3.Lambdaのプログラム(zipファイル)をダウンロード・展開
4.プログラミングの実行環境の準備
5.プログラムの実行
6.コンテナの破棄
47
Copyright Management Service Corp. All Rights Reserved.
1.AWS Lambdaとは
2.使い方
3.特徴
4.料金
5.仕組み
6.まとめ
48
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
まとめ
• Lambdaを使えば、ガシガシコードを書いてすぐに実行することができ
ます。
• まずは、効率化したいと思って自動化するためのLambdaを作成して
AWSリソースをどんどん触ってみましょう!
• 仕組みについても理解すれば、AWSに限らないITスキルも学べるので
一石二鳥です。
49
Copyright Management Service Corp. All Rights Reserved.
参考資料
• 公式ページ
https://aws.amazon.com/jp/lambda/
• Black Belt資料
https://d1.awsstatic.com/webinars/jp/pdf/services/20150701_A
WS-BlackBelt-runcodeinthecloud.pdf
https://d1.awsstatic.com/webinars/jp/pdf/services/20190402_A
WSBlackbelt_AWSLambda%20Part1%262.pdf
• カゴヤのサーバー研究室
https://www.kagoya.jp/howto/rentalserver/virtualization/
• 用語集|ハイパーバイザー
https://www.idcf.jp/words/hypervisor.html
• AWSの仮想化
https://qiita.com/mymas/items/65f551ab63f76fb9b539 50
Copyright Management Service Corp. All Rights Reserved.
ありがとうございました
51

20191018 AWS Lambda

  • 1.
    マネージメントサービス株式会社 Copyright Management ServiceCorp. All Rights Reserved.Copyright Management Service Corp. All Rights Reserved. AWS Lambda マネージメントサービス株式会社 デジタルビジネスイノベーションセンター 山本 友樹 2019 10-18 AWS若手勉強会#10
  • 2.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS Lambdaとは 2.使い方 3.特徴 4.料金 5.仕組み 6.まとめ 2 アジェンダ
  • 3.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS Lambdaとは 2.使い方 3.特徴 4.料金 5.仕組み 6.まとめ 3 アジェンダ
  • 4.
    Copyright Management ServiceCorp. All Rights Reserved. AWS Lambdaとは イベント発生時にお客様のコードを実行し、基盤となるコン ピューティングリソースをお客様に代わって管理する、サー バーレスコンピューティングサービスです。 (AWS公式ページより) 4 簡単に言うと、 サーバはAWSにお任せしてプログラムを実行できる サービス。
  • 5.
    Copyright Management ServiceCorp. All Rights Reserved. 5 本来やりたかったプログラムの開発に集 中することができる。 サーバーはあくまで、プログラムを実行するために必要。
  • 6.
    Copyright Management ServiceCorp. All Rights Reserved. ここで次のスライドのようなことをやりたくなったら あなたはどうしますか? 6
  • 7.
    Copyright Management ServiceCorp. All Rights Reserved. 特定のEC2インスタンスを毎週月曜の9:00~18:00 のみ実行中にして、それ以外は停止したい 7
  • 8.
    Copyright Management ServiceCorp. All Rights Reserved. 方法1 マネジメントコンソールから毎週月曜に9:00に開始させ、18:00に停止 する。 →毎週同じ時間に同じことをやるのはめんどい、しかも忘れるかも。 自動化したい。 8
  • 9.
    Copyright Management ServiceCorp. All Rights Reserved. 方法2 下記のようなJavaを作成し、別のEC2インスタンスで毎時間動かす。 今が月曜の9:00のときに特定のEC2インスタンスを開始、 今が月曜の18:00のときに特定のEC2インスタンスを停止、 それ以外は何もしない →別のEC2インスタンス作成するのがめんどい。EC2を作成するために、 VPCも作成しないといけなし、EC2でJavaが動く環境も作らないといけな い。 さらにこのEC2も管理しないといけない・・・ 9
  • 10.
    Copyright Management ServiceCorp. All Rights Reserved. そこでAWS Lambda EC2インスタンスの作成必要なしで、Javaを動かすことができる。 Javaを動かす環境の作成も必要なく、コードを書けば実行できる。 →環境の構築に時間がとられずに済む。 10
  • 11.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS Lambdaとは 2.使い方 3.特徴 4.料金 5.仕組み 6.まとめ 11 アジェンダ
  • 12.
    Copyright Management ServiceCorp. All Rights Reserved. マネジメントコンソールでポチポチで作れます (プログラムを書くのはポチポチではない) 12
  • 13.
    Copyright Management ServiceCorp. All Rights Reserved. 画面キャプチャで説明します 13
  • 14.
    Copyright Management ServiceCorp. All Rights Reserved. 14 関数の作成をクリック
  • 15.
    Copyright Management ServiceCorp. All Rights Reserved. 15 ①Lambdaの名前を入力 ②言語をプルダウンで選択 ③関数の作成をクリック
  • 16.
    Copyright Management ServiceCorp. All Rights Reserved. 16 1分程度待つと作成が完了
  • 17.
    Copyright Management ServiceCorp. All Rights Reserved. 17 ①コードを書く ②保存ボタンをクリック
  • 18.
    Copyright Management ServiceCorp. All Rights Reserved. 完成! あとは呼びたいときに、Lambdaを呼び出すだけ 18
  • 19.
    Copyright Management ServiceCorp. All Rights Reserved. 簡単でしょ 19
  • 20.
    Copyright Management ServiceCorp. All Rights Reserved. 補足 20
  • 21.
    Copyright Management ServiceCorp. All Rights Reserved. Lambdaから他のAWSリソースを操作するため には、Lambdaに設定されているIAMロールに 権限が必要! 21
  • 22.
    Copyright Management ServiceCorp. All Rights Reserved. 念のためIAMの復習 • IAMユーザ →AWSアカウントのユーザ • IAMロール →AWSリソースに権限を付与するためのもの • IAMポリシー →IAMユーザ/IAMロールにアタッチ(付与)して、AWSリソースへのア クセス許可をするもの 22
  • 23.
    Copyright Management ServiceCorp. All Rights Reserved. 23 Lambda作成時に、作成・ アタッチされたIAMロール
  • 24.
    Copyright Management ServiceCorp. All Rights Reserved. 24 IAMロールからどのAWSリソースにアクセス許 可されているか表示される (テキトーなIAMロールだと、絶対に必要ない AWSリソースが表示されて恥ずかしい(><))
  • 25.
    Copyright Management ServiceCorp. All Rights Reserved. 25 インライン(マネジメントコンソールで編集) 以外にもローカルでプログラムを作成し、 zipファイルをアップロードすることが可能 Lambdaが呼ばれたときに実行されるものを 「ファイル名(拡張子なし).メソッド名」で指定する。
  • 26.
    Copyright Management ServiceCorp. All Rights Reserved. ログを見る方法 26
  • 27.
    Copyright Management ServiceCorp. All Rights Reserved. 27 ①モニタリング ②CloudWatchのログを表示 をクリック
  • 28.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS Lambdaとは 2.使い方 3.特徴 4.料金 5.仕組み 6.まとめ 28 アジェンダ
  • 29.
    Copyright Management ServiceCorp. All Rights Reserved. 特徴 • オートスケール • コードの実行時間のみの課金 • AWSサービスと連携させることが簡単 • サポートされている言語 29
  • 30.
    Copyright Management ServiceCorp. All Rights Reserved. オートスケール オート(自動)でスケール(必要な量に拡大/縮小)する。 必要なリクエストに応えられるように水平方向に拡大/縮小される。 水平方向な拡大/縮小とは、Lambdaが必要な数に増えたり減ったりするこ と。 30
  • 31.
    Copyright Management ServiceCorp. All Rights Reserved. コードの実行時のみの課金 リクエスト数 + メモリに応じた実行時間 ※Lambdaが起動していないときは、課金されない。 31
  • 32.
    Copyright Management ServiceCorp. All Rights Reserved. AWSサービスと連携させることが簡単 様々なAWSサービスからLambdaを起動させることが簡単にできる。 S3にファイルがアップロードされたら・・・ DynamoDBにデータが登録されたら・・・ API Gatewayにリクエストがきたら・・・ ログ(CloudWatch)にエラーがXX件以上発生したら・・・ アプリケーションのデプロイ(配備)が完了したら・・・ あるAWSリソースに変更がされたら・・・ などなどなど・・・ この何か起きたときにLambdaが動き出すのでイベントドリブン(イベント 駆動型)と言ったりします。 32
  • 33.
    Copyright Management ServiceCorp. All Rights Reserved. サポートされている言語 • Java • Go • PowerShell • Node.js • C# • Python • Ruby また、カスタムランタイムという仕組みを使って、少し努力すればその他 の言語も動かすことができます。 33
  • 34.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS Lambdaとは 2.使い方 3.特徴 4.料金 5.仕組み 6.まとめ 34 アジェンダ
  • 35.
    Copyright Management ServiceCorp. All Rights Reserved. 料金(東京リージョン2019/10/18時点) • リクエスト 月間100万リクエストまでは無料 以後は、100万リクエストあたり0.2USD • 実行時間 月間40万(GB×秒)が無料 以後は、1 (GB×秒) あたり、0.0000166667USD ラムダはメモリを128~3008MBの中で設定できる ★一番小さい128MBの場合 約888時間(37日)が無料で使える。 大規模なアプリケーションでなければ、大抵無料で使うことができる。 35
  • 36.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS Lambdaとは 2.使い方 3.特徴 4.料金 5.仕組み 6.まとめ 36 アジェンダ
  • 37.
    Copyright Management ServiceCorp. All Rights Reserved. サーバレスって言うけどどのような仕組みか ざっくり理解しましょう! 37
  • 38.
    Copyright Management ServiceCorp. All Rights Reserved. その前にまずはEC2の仕組み 38
  • 39.
    Copyright Management ServiceCorp. All Rights Reserved. EC2 AWSが全世界で作成されるであろうサーバーを全て物理的に事前に準備し て、ユーザがEC2を作成したら、用意していたサーバーを使ってもらう。 39 それは無理ゲー
  • 40.
    Copyright Management ServiceCorp. All Rights Reserved. 仮想化 物理的には1台のサーバーのリソースを分割して、 あたかも複数のサーバーのように扱う仮想化という仕組みを使っ ている。 40 現実 仮想化 100GB 20GB×5台
  • 41.
    Copyright Management ServiceCorp. All Rights Reserved. もう少し仮想化 物理的なサーバーを仮想化するソフトウェアをハイパーバイザー という。 41 物理的なサーバー ハイパーバイザー 仮想マシン(EC2) OS アプリ アプリ 仮想マシン(EC2) OS アプリ アプリ 仮想マシン(EC2) OS アプリ アプリ
  • 42.
    Copyright Management ServiceCorp. All Rights Reserved. EC2はハイパーバイザーの仕組みで作成された 仮想サーバ 42
  • 43.
    Copyright Management ServiceCorp. All Rights Reserved. ではLamdaもハイパーバイザーで作成された 仮想サーバで動いている? 43
  • 44.
    Copyright Management ServiceCorp. All Rights Reserved. 仮想化の仕組みは使っていますが、ハイパーバイ ザーではありません。 コンテナという仕組みを使っています。 44
  • 45.
    Copyright Management ServiceCorp. All Rights Reserved. コンテナとは 1つのOSにアプリの実行環境を提供する仮想化の仕組み。 45 物理的なサーバー コンテナエンジン コンテナ OS アプリ アプリ コンテナ アプリ アプリ コンテナ アプリ アプリ
  • 46.
    Copyright Management ServiceCorp. All Rights Reserved. 比較 46 ハイパーバイザー型仮想化 コンテナ型仮想化 仮想マシンはそれぞれOSを持つのに対して、コンテナは1つのOSで動く。 仮想マシンは、それぞれOSが選べるのでカスタマイズ性が高い。 コンテナは、OSの起動が必要ないので起動が高速。 ※ちなみにLambdaはLinuxのOSで動いている。
  • 47.
    Copyright Management ServiceCorp. All Rights Reserved. Lambdaの起動 1.(ENIの作成)※VPCを使用するときにのみ実行 2.コンテナの作成 3.Lambdaのプログラム(zipファイル)をダウンロード・展開 4.プログラミングの実行環境の準備 5.プログラムの実行 6.コンテナの破棄 47
  • 48.
    Copyright Management ServiceCorp. All Rights Reserved. 1.AWS Lambdaとは 2.使い方 3.特徴 4.料金 5.仕組み 6.まとめ 48 アジェンダ
  • 49.
    Copyright Management ServiceCorp. All Rights Reserved. まとめ • Lambdaを使えば、ガシガシコードを書いてすぐに実行することができ ます。 • まずは、効率化したいと思って自動化するためのLambdaを作成して AWSリソースをどんどん触ってみましょう! • 仕組みについても理解すれば、AWSに限らないITスキルも学べるので 一石二鳥です。 49
  • 50.
    Copyright Management ServiceCorp. All Rights Reserved. 参考資料 • 公式ページ https://aws.amazon.com/jp/lambda/ • Black Belt資料 https://d1.awsstatic.com/webinars/jp/pdf/services/20150701_A WS-BlackBelt-runcodeinthecloud.pdf https://d1.awsstatic.com/webinars/jp/pdf/services/20190402_A WSBlackbelt_AWSLambda%20Part1%262.pdf • カゴヤのサーバー研究室 https://www.kagoya.jp/howto/rentalserver/virtualization/ • 用語集|ハイパーバイザー https://www.idcf.jp/words/hypervisor.html • AWSの仮想化 https://qiita.com/mymas/items/65f551ab63f76fb9b539 50
  • 51.
    Copyright Management ServiceCorp. All Rights Reserved. ありがとうございました 51