22
Copyright © 2014 AGREX INC. All rights reserved. AWS Lambdaにまつわるおいしい話 -バッチ処理用EC2をAWS Lambdaに置き換えてみた- 札幌事業所 2015.11.12

AWS Lambda にまつわるおいしい話

  • Upload
    -

  • View
    3.621

  • Download
    3

Embed Size (px)

Citation preview

Page 1: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved.

AWS Lambdaにまつわるおいしい話

-バッチ処理用EC2をAWS Lambdaに置き換えてみた-

札幌事業所

2015.11.12

Page 2: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 2

自己紹介

松井 美佳

(株)アグレックス 札幌事業所 AWSチーム所属

○2014年入社の2年目社員○主な業務:AWSの構築・保守・運用担当○AWS歴 :1年と3か月程度○AWSに出会ってからの変化:顔つき(?)

AWSを知らない私 AWSと出会った私

Page 3: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 3

AWS Lambdaとは?

Page 4: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 4

AWS Lambdaとは?

○クラウド上でイベントをトリガーとし、自分のコードを実行できるコンピューティングサービス

サーバの管理・運用不要 メンテナンス不要 必要に応じてスケール変更可能 耐障害性を備えたインフラストラクチャ完備

Lambda

安心でお手軽なおいしいAWSサービス

Page 5: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 5

何を置き換えたの?

Page 6: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 6

何を置き換えたの?

LambdaEC2

S3 RDS S3 RDS

①RDSのログをダウンロード

②RDSのログをアップロード

①RDSのログをダウンロード

②RDSのログをアップロード

○RDSのログをS3へ保存するバッチ処理用EC2(1日1回)※Lambda誕生前から存在・・・

Page 7: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 7

どうやって置き換えたの?

Page 8: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 8

どうやって置き換えたの?

①EC2上で動かしているバッチファイルをLambdaがサポートしている言語へ書き換える(Shellscript → ★Python)

②AWS Lambdaの各種設定・Lambdaファンクションの作成

(実行コードの登録+Role、メモリサイズ、タイムアウトの設定)

・★Lambda Scheduled Eventの設定(≒cron)

★re:Invent 2015 より可能になりました!!

標準ライブラリやboto3インストール済み

Page 9: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 9

置き換えてみた!!

おいしくしてみた‼

Page 10: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 10

おいしくしてみた‼

Page 11: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 11

おいしくしてみた‼

Amazon EC2(仮)

新潟産 生サバ東○ストアで398円(税抜)

Page 12: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 12

おいしくしてみた‼

(Shellscriptの)中身を確認‼

EC2(仮)を開いて

※2枚におろしました!!

Page 13: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 13

おいしくしてみた‼

②RDSログダウンロードaws rds download-db-log-file-

portion

③ログファイル圧縮(Zip)zip rdslogfile.zip *.log*

(Shellscriptの)中身解読中…

①RDSログファイル一覧取得aws rds describe-db-log-files

④S3へアップロードaws s3 sync

カルシウム

カリウム

DHA

EPA

Page 14: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 14

おいしくしてみた‼

※霜降り中…

おいしくするためには(Pythonに書き換える)準備が必要‼

②RDSログダウンロード★class RDS.Client

download_db_log_file_portion()

③ログファイル圧縮(Zip)★class zipfile.ZipFile

zipfile.ZipFile()

①RDSログファイル一覧取得★class RDS.Client

describe_db_log_files()

④S3へアップロード★class S3.Client

upload_file()

味噌

醤油

生姜

Page 15: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 15

おいしくしてみた‼

UTC 16:30 = JST 1:00

UTC 16:30 = JST 1:00

①実行コード登録

②Role、メモリサイズ、タイムアウト設定

慎重に、適切に…合わせ調味料

いざ、(Lambda)導入‼

Page 16: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 16

おいしくしてみた‼

1晩寝かせます

最後の仕込みは・・・

Lambda Scheduled Eventの設定

※16:30(UTC) =1:30(JST)

Page 17: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 17

おいしくしてみた‼

翌朝確認してみると・・・

手軽においしくできました!!

1:30 (JST)にアップロード完了‼

Page 18: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 18

『おいしい』だけではない

Page 19: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved.

【比較用】EC2(t2. micro)の月額費用=($0.02×720h)+($0.12×8GB)

=$15.36(≒1900円)

19

『おいしい』だけではない

価格も非常にお手ごろ!!

○Lambdaの月額費用=リクエスト数(Lambdaファンクションの実行回数)

+コンピューティング時間(コードを実行している時間)

例:RDSのログをS3へ保存するLambdaの月額費用※1日1回実行(1か月最大31回)、毎回の実行時間が60秒の場合

①リクエスト数:31回②コンピューティング時間:

(31回×60秒)×512MB÷1024=930.0GB/秒

★1か月に1,000,000 件の無料リクエストおよび400,000 GB/秒のコンピューティング時間が無料利用枠(無期限‼)

AmazonLinux料金 EBS料金

Page 20: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 20

※取り扱い注意※

Page 21: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 21

※取り扱い注意※

・実行時間のタイムアウトは最大300秒(5分)※300秒以上かかる処理はできない

・ファイルの一時書き込みは特定のディレクトリ内でのみ可能※/tmp 配下

※512MBまで

・Lambda Scheduled Event のcronの記述方式に注意※cron(Minutes Hours Day-of-month Month Day-of-week Year)

※繰り返し記号がDay-of-weekのみ「*」ではなく「?」…?

・時刻がUTCなのにも注意

…取り扱う前には公式ドキュメントを要チェック‼

Data Pipeline

※「5分じゃおさまらない!!」そんな時は・・・

Page 22: AWS Lambda にまつわるおいしい話

Copyright © 2014 AGREX INC. All rights reserved. 22

ご清聴ありがとうございました

おいしい思いをする方が一人でも増えますように・・・