本セッションでは、弊社にて複数サービスで導入しているAWSのマネージドサービス (Lambda、CloudWatch Logs、Kinesis Data Streams、S3、Elasticsearch Service) を活用したServerlessなログ基盤の構成について紹介する。自前でログ基盤を管…
Lambda はステートレスで冪等性のある処理に向いていますが、処理によっては排他制御を必要とする場合があります。排他制御にはアトミックなロック処理が欠かせませんが、Lambda のアーキテクチャでは少し工夫が必要です。 というのも、Lambda 関数が実行されるインスタンスは常に再利用されるとは限らないため、ロックの状態は Lambda の外で管理しなければなりません。 DynamoDB をロックマネージャーとして使う いろいろ調べたところ、DynamoDB の条件付き書き込みを使うのが良さそうです。 条件付き書き込みを使用すると、オペレーションが成功するのは、項目の属性が 1 つ以上の想定条件を満たす場合のみです。それ以外の場合は、エラーが返されます。 @imaifactory さんの Qiita 記事「DynamoDB をロックマネージャーとして使う」がとてもわかりやすいです。ロック
CloudWatch LogsのログデータをStep Functions + LambdaでS3バケットにエクスポートしてみた CloudWatch Logsのロググデータを、S3バケットにエクスポートしてみたいと思います。 本エントリでは、サブスクリプションフィルタを利用せず、Step Functions + Lambdaで実装してみたいと思います。 CloudWatch LogsのデータをS3にエクスポートするには、Kinesis Data Firehoseを利用するのが簡易的ではありますが、既になんらかの処理でサブスクリプションフィルタを利用していた場合、追加でサブスクリプションフィルタを設定することができません。 *1 本エントリでは、サブスクリプションフィルタを利用せず、CloudWatch Logsのロググループを、S3バケットにエクスポートしてみたいと思います。 SQS +
CX事業本部@大阪の岩田です。 re:invent2018にてアナウンスされたVPC Lambdaの改善について、ついにAWSより公式のアナウンスがありました!! Announcing improved VPC networking for AWS Lambda functions 今後数カ月に渡って全リージョンで徐々にローリングアップデートが掛かっていき、展開が完了したリージョンについては上記AWSのブログが更新されるとのことです。ユーザー側では特に変更操作など必要ありません。 今までのアーキテクチャ これまでのVPC LambdaはLambdaのサンドボックス環境を作成する際に、必要に応じてENIの作成&アタッチ処理を行なっていました。 ※上記AWSのブログより引用 このアーキテクチャは以下のような課題を抱えていました。 ENI作成を伴うコールドスタートにおいての非常に大きな遅延が発生
Lambdaで動くアプリやフレームワークの事例はよく見るのですが、LambdaのCIやCDにしやすさに主眼をおいた紹介はあんまり見ないので現時点での自分のベストプラクティスのメモです tl;dr; このエントリで書いていること Lambdaをデプロイするのに肝になること デプロイしやすさに着眼したフレームワーク紹介 論外 コンソールからアップロードする できなくはないがかなり厳しい Terraform Apex 8/12 17:20追記 実用レベル Serverless Framework AWS SAM native extension問題と戦う Amazon LinuxのEC2インスタンス内でビルドする Amazon Linux互換のDockerイメージを使う Serverless Frameworkのプラグインを使う ライブラリをインストールするジョブとデプロイするジョブを分ける 【
はじめに 経緯 構成 技術選定 Lambdaのランタイム(言語)は何で実装するのか? サーバーレスアーキテクチャの構成管理に何を利用するのか? Jetsをちょっとだけ解説 プロジェクトの作成 ルーティングの設定 コントローラー 必要なIAMポリシー シークレットキーなどの扱い方 デプロイ方法 最後に おまけ はじめに こんにちは!先日26歳を迎え、30歳への恐怖感が着々と増してきた渡邊です。 今回が3回目のブログ投稿になります。 前回のKubernetes(GKE)にお安く入門するではたくさんのブックマークをいただきありがとうございました。 今回は実際に業務での利用をしはじめたRailsライクなRuby製 サーバーレスフレームワーク 「Ruby on Jets」について書きます。 経緯 自分が開発を担当しているプロダクトには、求職者の方と弊社のキャリアアドバイザーがLINEを介してメッセー
おはようございます、もきゅりんです。 タイトル通りですが、CodePipelineを利用したLambdaのCD(Continuous Deployment)をCloudFormation(以下CFn)で構築してみたのでまとめました。 Lambdaを手元でわちゃわちゃやった後に、デプロイしたいときはリポジトリにプッシュすればよろしおす、便利よね、ということでCFnにしてみました。 色々なやり方があるとは思いますが、元ネタはこちらです。 AWS CodePipeline を使用して Lambda アプリケーションの継続的な配信パイプラインを構築する この例では、CodeCommitのGitリポジトリを利用します。 前提条件 CodeCommitが利用できる状態であること AWS CLIインストール&設定済み CodeCommitリポジトリの作成については、『CodeCommit ユーザーガイド
2019/5/31追記 先日のBlack BeltでLambdaの内部構造について一部解説がありました。 ※スライド公開され次第更新します これまでWorkerというコンポーネントはMicroVMを指しているという理解だったのですが、実際にはMicroVMをホストするEC2インスタンスのレイヤーがWorkerに相当するようです。以後の「Worker」という表記は基本的に「MicroVM」に置き換えて読んで頂くようお願いします。 はじめに サーバーレス開発部@大阪の岩田です。 先日のブログでLambdaのコールドスタートの裏側について考察しました。 これまでの常識は間違っていた?!Lambdaのコールドスタート対策にはメモリ割り当てを減らすという選択肢が有効に働く場面も 本ブログでは前回の考察をベースにLambdaのコールドスタート回避に関するテクニックについて深掘りしていきます。なお、以後
2019/5/31追記 先日のBlack BeltでLambdaの内部構造について一部解説がありました。※スライド公開され次第更新します これまでWorkerというコンポーネントはMicroVMを指しているという理解だったのですが、実際にはMicroVMをホストするEC2インスタンスのレイヤーがWorkerに相当するようです。以後の「Worker」という表記は基本的に「MicroVM」に置き換えて読んで頂くようお願いします。 はじめに サーバーレス開発部@大阪の岩田です。 既に多くの方がご存知だと思いますが、Lambdaにはコールドスタートという概念が存在します。一般的にはLambda関数実行時にLambda実行環境の初期化処理が伴う場合を「コールドスタート」と呼ぶことが多いですが、このLambda実行環境の初期化処理には大きく2つのパターンが存在するようです。※厳密に区別すればもっと多く
ソースコード Lambdaのソースコードを以下に示す。 バッチサイズの検証ではLambda(Input)のソースコードを複数メッセージ送るように変更、Lambda(Output)側で複数メッセージが入っているかprintするように変更、などしたが割愛する。 Lambda(Input) import boto3 from datetime import datetime SQS_NAME = 'nagatest' def lambda_handler(event, context): sqs_sends() def sqs_sends(): print('Input--------------------start') now = datetime.utcnow() now_str = datetime.strftime(now, '%Y-%m-%dT%H:%M:%S.%fZ') print
AWS Lambda provides high scalability due to being serverless and stateless, allowing many copies of the lambda function to be spawned instantaneously (as described here). However, when writing application code, you are likely to want access to some stateful data. This means connecting to a datastore such as an RDS instance or S3. However, connecting to other services from AWS Lambda adds time to y
こんにちは、菊池です。 本日は、ドイツ・ベルリンで開催中のAWS Summit Berlin 2019に参加しています。 本記事は、「Microservices on AWS: Architectural Patterns and Best Practices」のレポートです。 レベル400と、Expert向けの内容ということでしたが、立ち見も入りきれない程の超人気セッションでした。 セッション概要 Microservices are an architectural and organizational approach to software development where software is composed of small independent services that communicate over well-defined APIs. Microservices
AWS Lambda互換環境をKubernetes上で実現する「Knative Lambda Runtime」オープンソースで公開 TriggerMeshは、Kubernetes上にAWS Lambda互換の実行環境を構築することで、AWS Lambdaで利用可能なファンクションをそのままKubernetes上で実行可能にする「Knative Lambda Runtime」(KLR:発音はClear、クリア)をオープンソースで公開しました。 Announcing TriggerMesh Knative Lambda Runtime (KLR) https://t.co/2BOINQUbys pic.twitter.com/kycNdlWhoK — triggermesh (@triggermesh) 2019年1月9日 Knative Lambda Runtimeを公開したTriggerM
この記事は AWS Lambda Custom Runtimes芸人 Advent Calendar 2018 の19日目です。 qiita.com これは何? 「Lambdaの中に入ってみたいと思ったことはありませんか?」これはそんな歪んだ願望を叶える試みです。と同時にそれを足がかりにAWS Lambdaというシステムをより深く理解するための検証とその結果を記したものです。 ちなみに毎年恒例?のLambdaのリバースエンジニアリング(?)シリーズです。 2016年 marcy.hatenablog.com 2017年 marcy.hatenablog.com Lambda Custom Runtimesとは Lambda Custom Runtimesは一般的にはAWS Lambdaが公式に対応していないプログラミング言語のRuntimeを動かすための機能です。仕様は以下の通り。 doc
初めまして、Railsエンジニアの白井です。 最近彼女が出来て会社の人に幸せ(惚気)を振りまく活動をしています! さて、先日AWS re:Invent 2018にてAWS LambdaがRubyランタイム対応の発表がなされました!(リリース) そしてserverlessもすぐにRubyに対応! 弊社は私含めRubyエンジニアが多数いるため、とてもとても嬉しいアナウンスメントでした。 早速使ってみるとNative Extensionsを使用するgemを使いたい時にちょっと詰まったのでシェアします! この記事を読んだらわかること この記事では、 AWS Lambda RubyランタイムでNative Extensionsを使用するgemを使ったLambda関数を作る手順をまとめています。 ※Native Extensionsを使用しないgemのみを使ったLambda関数は未検証です。 ※ser
BizReachプロダクト開発部、SREグループの久保木です。5月頃に中途で入ってきて、今はinfrastructure中心に開発に従事しています。 最近はlog生成周りをいじっていった結果、生成元であるapplicationもいじれるようになってきた気がします。あとはfrontendいじれば制覇かな!(<どこに行く気なの?) ところで、元々僕は何かを作る時に延々とmemoがてら作業進捗を書いていく癖があります。 それで作業が一区切りしたところで、 「あれ、これ記事のネタになるんじゃない?」 と思ったので書いてみることにしました。ボリュームがあるので連載にてお送りします。 どうぞよろしくお願いします。 前編: 概要 中編: 技術調査・設計 後編: 七転八倒ログ 何があったのか まず、前提。 BizReachのapplicationはlogをS3に飛ばして、そこからなんやかんやあって(後述)
はじめに 中山(順)です AWS LambdaにSLAが設けられました。 Announcement: AWS Lambda announces service level agreement AWS Lambda Service Level Agreement 稼働率が99.95%を下回るとサービスクレジットを受け取れます。 ちょっと内容を確認してみましょう。 今回は"Definitions"および"Lambda SLA Exclusions"に注目してみます。 Definitions そもそも、どのように稼働率は算出されるのでしょうか。 それはDefinitionsに書いてあります。 Definitions A “Service Credit” is a dollar credit, calculated as set forth below, that we may credit ba
Quick Summary :- Many big companies such as Netflix, Conde Nast and NY Times are migrating their compute services to serverless. But sometimes the cloud architects are confused about the application of serverless technologies such as AWS Lambda and Azure functions. This blog explains 10 AWS Lambda Use Cases to help you get started with serverless. Some of the use cases are Serverless Website | App
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く