O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

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

4.704 visualizações

Publicada em

AWS Cloud Roadshow 2015 札幌のナイトイベント(JAWS-UG)で、人生初めてLTをさせていただきました!!

Publicada em: Engenharia
  • Seja o primeiro a comentar

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

  1. 1. Copyright © 2014 AGREX INC. All rights reserved. AWS Lambdaにまつわるおいしい話 -バッチ処理用EC2をAWS Lambdaに置き換えてみた- 札幌事業所 2015.11.12
  2. 2. Copyright © 2014 AGREX INC. All rights reserved. 2 自己紹介 松井 美佳 (株)アグレックス 札幌事業所 AWSチーム所属 ○2014年入社の2年目社員 ○主な業務:AWSの構築・保守・運用担当 ○AWS歴 :1年と3か月程度 ○AWSに出会ってからの変化:顔つき(?) AWSを知らない私 AWSと出会った私
  3. 3. Copyright © 2014 AGREX INC. All rights reserved. 3 AWS Lambdaとは?
  4. 4. Copyright © 2014 AGREX INC. All rights reserved. 4 AWS Lambdaとは? ○クラウド上でイベントをトリガーとし、 自分のコードを実行できるコンピューティングサービス  サーバの管理・運用不要  メンテナンス不要  必要に応じてスケール変更可能  耐障害性を備えたインフラストラクチャ完備 Lambda 安心でお手軽なおいしいAWSサービス
  5. 5. Copyright © 2014 AGREX INC. All rights reserved. 5 何を置き換えたの?
  6. 6. Copyright © 2014 AGREX INC. All rights reserved. 6 何を置き換えたの? LambdaEC2 S3 RDS S3 RDS ①RDSのログを ダウンロード ②RDSのログを アップロード ①RDSのログを ダウンロード ②RDSのログを アップロード ○RDSのログをS3へ保存するバッチ処理用EC2(1日1回) ※Lambda誕生前から存在・・・
  7. 7. Copyright © 2014 AGREX INC. All rights reserved. 7 どうやって置き換えたの?
  8. 8. Copyright © 2014 AGREX INC. All rights reserved. 8 どうやって置き換えたの? ①EC2上で動かしているバッチファイルを Lambdaがサポートしている言語へ書き換える (Shellscript → ★Python) ②AWS Lambdaの各種設定 ・Lambdaファンクションの作成 (実行コードの登録+Role、メモリサイズ、タイムアウトの設定) ・★Lambda Scheduled Eventの設定(≒cron) ★re:Invent 2015 より可能になりました!! 標準ライブラリやboto3インストール済み
  9. 9. Copyright © 2014 AGREX INC. All rights reserved. 9 置き換えてみた!! おいしくしてみた‼
  10. 10. Copyright © 2014 AGREX INC. All rights reserved. 10 おいしくしてみた‼
  11. 11. Copyright © 2014 AGREX INC. All rights reserved. 11 おいしくしてみた‼ Amazon EC2(仮) 新潟産 生サバ 東○ストアで398円(税抜)
  12. 12. Copyright © 2014 AGREX INC. All rights reserved. 12 おいしくしてみた‼ (Shellscriptの)中身を確認‼ EC2(仮)を開いて ※2枚におろしました!!
  13. 13. 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
  14. 14. 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() 味噌 酒 醤油 生姜
  15. 15. Copyright © 2014 AGREX INC. All rights reserved. 15 おいしくしてみた‼ UTC 16:30 = JST 1:00 UTC 16:30 = JST 1:00 ①実行コード登録 ②Role、メモリサイズ、タイムアウト設定 慎重に、適切に…合わせ調味料 水 いざ、(Lambda)導入‼
  16. 16. Copyright © 2014 AGREX INC. All rights reserved. 16 おいしくしてみた‼ 1晩寝かせます 最後の仕込みは・・・ Lambda Scheduled Eventの設定 ※16:30(UTC) =1:30(JST)
  17. 17. Copyright © 2014 AGREX INC. All rights reserved. 17 おいしくしてみた‼ 翌朝確認してみると・・・ 手軽に おいしくできました!! 1:30 (JST)にアップロード完了‼
  18. 18. Copyright © 2014 AGREX INC. All rights reserved. 18 『おいしい』だけではない
  19. 19. 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料金
  20. 20. Copyright © 2014 AGREX INC. All rights reserved. 20 ※取り扱い注意※
  21. 21. 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分じゃおさまらない!!」 そんな時は・・・
  22. 22. Copyright © 2014 AGREX INC. All rights reserved. 22 ご清聴ありがとうございました おいしい思いをする方が 一人でも増えますように・・・

×