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