Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Lambdaの今現在

hihats
September 01, 2017

AWS Lambdaの今現在

Lambdaで色々やろうとして悪戦苦闘した話をまとめました。
結論Docker上げです。

hihats

September 01, 2017

Transcript

23 slides
  1. Lambdaとは AWS Lambda とは AWS Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービスです。AWS Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから

    1 秒あたり数千のリクエストまで自動的にスケーリングし ます。使用したコンピューティング時間に対してのみお支払いいただきます- コードが実行中でなければ料金はかかりません。AWS Lambda によって、実質どのようなタイプのアプリケーションやバックエンドサービスでも、管理なしでコードを実行できます。AWS Lambda は可用性の高いコンピューティングインフラストラクチャでコードを実行し、コンピューティングリソースの管理をすべて担当 します。これにはサーバーおよびオペレーティングシステムの管理、キャパシティーのプロビジョニングおよび自動スケーリング、コー ドのモニタリングおよびログ記録などが含まれます。必要な操作は、AWS Lambda がサポートするいずれかの言語 (現在は Node.js、Java、C# および Python) でコードを指定するだけです。 AWS Lambda を使用して、Amazon S3 バケットまたは Amazon DynamoDB テーブル内のデータの変更などのイベントに応答し てコードを実行できます。Amazon API Gateway を使用して HTTP リクエストに応答してコードを実行します。または AWS SDK を 使用して作成された API コールを使用してコードを呼び出します。これらの機能により、Lambda をつ
  2. Lambdaとは メリット • コスト Lambda では 1 か月に 1,000,000 件の無料リクエストおよび

    400,000 GB-秒のコンピューティング時間が無料利用枠となっています。 • 運用 サーバメンテナンスの面 オートスケール気にしない 通知の設定が簡単
  3. Serverless Framework • sls コマンドで大体のことができる • yml でもろもろ設定 • コマンド一発で

    Lambda にデプロイ • npmインストールして使う • AWSのIAMロール(管理者権限)が必要
  4. $ ls lambda_function.py input.json $ docker run -v "$PWD":/var/task lambci/lambda:python3.6

    lambda_function.lambda_handler $(printf '%s' $(cat input.json))
  5. Dockerfileに実行環境用のビルドファイルを書く FROM lambci/lambda:build-python3.6 ENV LANG C.UTF-8 ENV AWS_DEFAULT_REGION ap-northeast-1 RUN

    /bin/cp -f /usr/share/zoneinfo/Asia/Tokyo /etc/localtime WORKDIR /var/task ADD . . CMD pip install -r requirements.txt -t /var/task && \ zip -9 deploy_package.zip twitter_crawler.py && \ zip -r9 deploy_package.zip *

More Decks by hihats

Other Decks in Technology