Slide 1

Slide 1 text

ローカル環境から始める AWS Lambda入門 @i-dach 2019/10

Slide 2

Slide 2 text

  Who are you ? 職業
 ● 現在:カイゼンエンジニア
 ● 将来:ムキムキカイゼンエンジニア (トレーニング中)
 
 所属 
 ● DesignOne Japan, inc
 ○ DOG主催 / diet部部長 / キックボクシング部部長
 ○ ジェネラリストとしてカイゼン&越境活動
 ○ 設計 / 開発 / 運用 / 保守
 
 趣味
 ● 呼吸法の研究
 ● エンジニア
 ● DIY(Iot) ←予定
 
 最近熱いもの
 ● golang
 Twitter: i-dach qiita: @i-dach github: i-dach 表記揺れ問題解決

Slide 3

Slide 3 text

今日お伝えしたいこと

Slide 4

Slide 4 text

Lambdaの挙動って ローカルでも確認できますよ (今更感)

Slide 5

Slide 5 text

本題に入る前に

Slide 6

Slide 6 text

Q. AWS Lambda使ってる / 事ある人?

Slide 7

Slide 7 text

ということで

Slide 8

Slide 8 text

知らない人のためのざっくり説明 AWS Lambda を使用することで、サーバーのプロビジョニングや管理をすることなく、コードを実行できます。課金は実際に使用した コンピューティング時間に対してのみ発生し、コードが実行されていないときには料金も発生しません。
 Lambda を使用すれば、実質どのようなタイプのアプリケーションやバックエンドサービスでも管理を必要とせずに実行できます。コー ドさえアップロードすれば、高可用性を実現しながらコードを実行およびスケーリングするために必要なことは、すべて Lambda によ り行われます。コードは、他の AWS サービスから自動的にトリガーされるよう設定することも、ウェブまたはモバイルアプリから直接 呼び出すよう設定することもできます。
 AWS公式のLPより引用 つまりは、 Serverless !!

Slide 9

Slide 9 text

① event 簡略化するとこんな使い方 ② なんらかの処理した結果 event source some one

Slide 10

Slide 10 text

だからこんな使い方したり ① obj put ② event ③ objを加工

Slide 11

Slide 11 text

こんな使い方もできる ① データ欲しいんだけど... スマホ ② あとは任せた!! API Gateway Lambda

Slide 12

Slide 12 text

開発はこんなイメージ

Slide 13

Slide 13 text

どんなことができるか イメージがついたところで

Slide 14

Slide 14 text

DevOpsについて考えてみよう

Slide 15

Slide 15 text

DevとOpsをざっくり分解すると 開発します - まずは要求を達成する動くものを - e.g. - 設計 / 実装 / テスト / デプロイ 運用します - 更にいい子にしましょう / 手のかからない子にしましょう - e.g. - リファクタリング / 監視 / 分析 / 管理

Slide 16

Slide 16 text

Lambdaにすることでメリデメって?

Slide 17

Slide 17 text

メリット 開発します - まずは要求を達成する動くものを - e.g. - 設計 / 実装 / テスト / デプロイ 運用します - 更にいい子にしましょう / 手のかからない子にしましょう - e.g. - リファクタリング / 監視 / 分析 / 管理 やってくれるから 「開発」に集中できる! (後はコストが固定費じゃなくなる) イベントドリブンな 動きが簡単に!

Slide 18

Slide 18 text

デメリット 開発します - まずは要求を達成する動くものを - e.g. - 設計 / 実装 / テスト / デプロイ 運用します - 更にいい子にしましょう / 手のかからない子にしましょう - e.g. - リファクタリング / 監視 / 分析 / 管理 利用状況によっては 高く付く ローカルでのテスト 複数人での開発では コンソール向いてない

Slide 19

Slide 19 text

コンソールでの開発じゃ 運用を考えたときに不安が残る

Slide 20

Slide 20 text

ようやく本題

Slide 21

Slide 21 text

Lambdaの挙動って ローカルでも確認できますよ

Slide 22

Slide 22 text

どいうことか

Slide 23

Slide 23 text

「Lambda」って どんな技術で動いているかを考える

Slide 24

Slide 24 text

Lambdaってどうやって動かしてる?

Slide 25

Slide 25 text

念の為確認

Slide 26

Slide 26 text

ということは

Slide 27

Slide 27 text

こういう風になってる かも(予想) EC2

Slide 28

Slide 28 text

ならdockerを使えば動くはず ※注意: Community Organizationのイメージ

Slide 29

Slide 29 text

使い方はDocker Hubにある通り docker run [--rm] -v :/var/task [-v :/opt] lambci/lambda: [] []

Slide 30

Slide 30 text

やってみる $ ls -ltr total 2 -rw-r--r--@ 1 user group Users 189 10 2 11:12 hello.py $ $ $ $ docker run --rm -v "$PWD":/var/task lambci/lambda:python3.7 hello.hello START RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 Version: $LATEST 実行環境: Linux-4.9.184-linuxkit-x86_64-with-glibc2.2.5 実行dir: /var/task 実行users: bx_user1051 END RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 REPORT RequestId: 52fdfc07-2182-154f-163f-5f0f9a621d72 Duration: 15.96 ms Billed Duration: 100 ms Memory Size: 1536 MB Max Memory Used: 22 MB null

Slide 31

Slide 31 text

OSとか異なるけど 簡単な挙動は確認できた

Slide 32

Slide 32 text

とりあえず学習コスト低めで 試してみようという方は これでも十分だと思うので是非お試しを

Slide 33

Slide 33 text

aws-sam-cliがあるので 実際に使うならそちらを推奨 ※今回は敢えてaws-sam-cliを使いませんでした

Slide 34

Slide 34 text

実際に開発するにあたっての ハマリポイント他にもあったりしますが 今回はここまで

Slide 35

Slide 35 text

まとめ

Slide 36

Slide 36 text

チキン南蛮最高

Slide 37

Slide 37 text

ではなく

Slide 38

Slide 38 text

Lambdaの挙動って ローカルでも確認できますよ

Slide 39

Slide 39 text

ご利用は計画的に ※注意: 2019/10/2時点

Slide 40

Slide 40 text

おしまい