Lambdaで色々やろうとして悪戦苦闘した話をまとめました。 結論Docker上げです。
AWS Lambdaの今2017 Autumn手軽さと手軽でないところと
View Slide
LambdaとはAWS Lambda とはAWS Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービスです。AWSの公式ドキュメントよりhttp://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html
LambdaとはAWS Lambda とはAWS Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービスです。AWSLambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケーリングします。使用したコンピューティング時間に対してのみお支払いいただきます- コードが実行中でなければ料金はかかりません。AWSLambda によって、実質どのようなタイプのアプリケーションやバックエンドサービスでも、管理なしでコードを実行できます。AWSLambda は可用性の高いコンピューティングインフラストラクチャでコードを実行し、コンピューティングリソースの管理をすべて担当します。これにはサーバーおよびオペレーティングシステムの管理、キャパシティーのプロビジョニングおよび自動スケーリング、コードのモニタリングおよびログ記録などが含まれます。必要な操作は、AWS Lambda がサポートするいずれかの言語 (現在はNode.js、Java、C# および Python) でコードを指定するだけです。AWS Lambda を使用して、Amazon S3 バケットまたは Amazon DynamoDB テーブル内のデータの変更などのイベントに応答してコードを実行できます。Amazon API Gateway を使用して HTTP リクエストに応答してコードを実行します。または AWS SDK を使用して作成された API コールを使用してコードを呼び出します。これらの機能により、Lambda をつ
LambdaとはAWS Lambda とはAWS Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービスです。
LambdaとはAWSコンソールの GUI エディタ画面上でコーディング
LambdaとはAWS Lambda とはAWS Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービスです。手軽に作れるバッチサーバのイメージ
LambdaとはAWS Lambda とはAWS Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービスです。手軽に作れるバッチサーバのイメージ+プラスイベントドリブンでプログラムを実行
Lambdaとは
Lambdaとはメリット● コストLambda では 1 か月に 1,000,000 件の無料リクエストおよび 400,000GB-秒のコンピューティング時間が無料利用枠となっています。● 運用サーバメンテナンスの面オートスケール気にしない通知の設定が簡単
実際使ってみて
● 複雑な処理もやりたくなる
ローカルマシン環境で開発するにはNode, python, java, C#それぞれ用のSDKっぽいものがあり、それぞれ使う言語と使うライブラリをプロジェクトホームにインストールしなければならないコーディング終わったら、デプロイパッケージ(ZIPファイル)固めてアップロード しなければならない
ServerlessFramework●slsコマンドで大体のことができる●ymlでもろもろ設定● コマンド一発で Lambda にデプロイ● npmインストールして使う● AWSのIAMロール(管理者権限)が必要
Dockerでできるんじゃない?
LambCI ●LambdaでCI環境を作ろうというOSS● 自前で作るよりは楽●CIサービスよりは低コスト
$ lslambda_function.py input.json$ docker run -v "$PWD":/var/task lambci/lambda:python3.6 lambda_function.lambda_handler $(printf '%s' $(catinput.json))
使いたいパッケージは requirements.txt に書くtwitterpymongonumpyrequests_oauthlibpytz
Dockerfileに実行環境用のビルドファイルを書くFROM lambci/lambda:build-python3.6ENV LANG C.UTF-8ENV AWS_DEFAULT_REGION ap-northeast-1RUN /bin/cp -f /usr/share/zoneinfo/Asia/Tokyo /etc/localtimeWORKDIR /var/taskADD . .CMD pip install -r requirements.txt -t /var/task && \zip -9 deploy_package.zip twitter_crawler.py && \zip -r9 deploy_package.zip *
docker最高ですね