ストックマークのプロダクト開発・運用では、Node.jsを利用してAWS Lambda を月間1.6億秒利用しています。本記事ではそこから分かった知見を紹介します。
AWS Lambda では、月間の Lambda 関数の実行時間、すなわち GB 秒の使用に段階的な価格設定を提供するようになりました。今回、追加された 2 つの段階的な価格設定では、月間のオンデマンド関数実行時間の総料金に対して割引が適用されます。段階的な価格設定は 2022 年 8 月 1 日に始まる月額請求サイクルから有効になります。 Lambda 関数の実行時間の月額使用料は、x86 および AWS Graviton で稼働する Arm で実行する関数に対して最大 20% 削減できます。段階的な価格設定は各リージョンで、x86 と Arm での関数のそれぞれの実行時間に適用されます。米国東部 (オハイオ) リージョンで x86 Lambda 関数を実行している場合、そのリージョンでの支払いは、月間 60 億 GB 秒までは 1 GB 秒ごとに 0.0000166667 USD、それ
Javaを尋ねて25年... こんにちは!みなさんJava使っていますか?私は学生のときにJavaを使い始めて、コミュニティと出会い、仕事にもなって、勢いでサンタクララの本社に突撃したことがあるぐらいJavaが好きでした。そして、時が経ち、軽量で軽快に動く他の言語やフレームワークが出てきたことで、若い方がJavaを使う機会が減ってきたなぁと感じています。多くのエンプラ現場で使われてきて実績十分、起動するまでが遅いけど動き出したらパフォーマンス良好、エコシステムが出来上がっているJavaを、もっと楽しく簡単に、できれば軽快に動く形で使えないものかと、モヤモヤしている中、昨年Quarkusという面白いものを見つけてしまいました。そして、昨日バージョン2.0がリリースされましたので、試してみたいと思います。 Quarkusとは Quarkusは、Kubernetesなどのコンテナ上での動作に最適
Developers can now share test events with other developers in their AWS account. Test events provide developers the ability to define a sample event in the Lambda console, and then invoke a Lambda function using that event to test their code. Previously, test event were only available to the developers who created them. With this launch, developers can make test events available to other team memb
AWS Lambda Powertools Pythonをまとめてみた。AWS Lambda Powertools Python 〜概要編〜AWSPython3lambdaserverless AWS Lambda Powertools Pythonとは AWS Lambda Powertools Python は、AWS Lambda関数用のユーティリティースイートで、トレース、構造化ロギング、カスタムメトリックスなどのベストプラクティスの導入を容易にします。 AWS Lambda Powertools (python) は、AWS Lambda関数の実行環境とサポートされているランタイム専用に最適化されています。Core Utilitiesの使い方については、こちらのBlogにも書かれています。 インストール方法 Powertoolsは以下の方法で利用可能です。 Lambda Laye
Amazon Web Services ブログ AWS Lambdaによる進化的アーキテクチャの構築 この投稿は、メディアとエンターテインメントのプリンシパルソリューションアーキテクトであるLuca Mezzaliraによって書かれました。 俊敏性により、必要に応じてワークロードを迅速に進化させ、新機能を追加したり、新しいインフラストラクチャを導入したりできます。コードベースでアジリティを実現するための主な特徴は、疎結合コンポーネントと強力なカプセル化です。 疎結合は、テストカバレッジを改善し、一貫したリファクタリングを作成するのに役立ちます。カプセル化を使用すると、実装ロジックを明らかにすることなく、サービスとのやり取りに必要なものだけを公開できます。 進化的なアーキテクチャは、設計の俊敏性を実現するのに役立ちます。「進化的アーキテクチャの構築」という本の中で、このアーキテクチャは「複数
会社のチームメンバーにLambdaの開発・デプロイ方法について共有するために書いた記事ですが、Lambdaを触ったことない人にも有益そうな内容なので、Zennに投稿してみました🙏 今回作りたいLambda 指定したS3バケットに画像がアップロードされたら、リサイズして同じまたは別のS3バケットにアップロードする 完成リポジトリ https://github.com/samuraikun/image-resizer-lambda-serverless Runtime Ruby2.7 前準備 AWSアカウントが作成済み、AWS CLIインストール済み アクセスキーIDとシークレットアクセスキーを事前に設定する必要あり Serverless Framworkについて Lambdaをデプロイするまでに必要な各設定を簡単にできるツールです。 他にも、AWS公式のSAMやTerraformなど他のl
API Gateway (REST API) では、開発やトラシューに役立つ実行ログ (Execution Logs) を出力することができます。 AWS サポートに問い合わせる際にも、この実行ログがあるとスムーズです。 実行ログは、ステージから設定できます。 設定後、API Gateway にリクエストを投げると、CloudWatch Logs に出力されます。 ロググループ名は、API-Gateway-Execution-Logs_<API ID>/<ステージ名> です。 こちらの実行ログの内容を解説していきます。 リクエスト/レスポンス API Gateway に Postman から以下のようにリクエストを投げます。 パスパラメータ groupId=111、クエリパラメータ userId=222、本文に name=hoge を指定しています。 API Gateway はこのリクエス
こんにちは、技術一課の加藤です。 AWS CLIのS3 Sync、便利ですよね。 コピー元とコピー先の付き合わせやバージョンの比較など、Sync処理において面倒だな、と思うことを全部端折ってくれるS3 Syncは、まさにバケット間のデータ移動の最適解といえるでしょう。 しかしこれを定期実行したい、となるとやや面倒です。実はAWS SDKにはS3 Syncと同様の機能がないため、Lambdaでいい感じに実装しようと思うと考慮すべきことが色々出てきてしまいます。 S3バケットのSyncがしたい! でもAWS SDKで実装するのも面倒くさい! そうしてやってみたのが「Lambda上でAWS CLIを動かす」というアクロバティック実装です。 実装方法 極力AWS CLIをLambda内で使うために必要な手順に絞って解説を行うため、 S3バケット同士のSync 2つのS3バケットおよびLambdaは
CX事業本部@大阪の岩田です。re:invent2019のセッションで知ったAWS Lambda Power Tuningを試してみたので簡単にご紹介します。 AWS Lambda Power Tuningとは? Lambdaのメモリ割り当てを自動で最適化するためのツールです。Step Functionsを利用して対象のLambdaを様々なメモリ設定で実行し、どの設定値が一番パフォーマンスが良いのか?どの設定値が一番コスト効率が良いのか?といった情報をレポートしてくれます。 なにが嬉しいの? Lambdaのチューニング手法として割り当てるメモリサイズを増やすという手法が広く知られています。メモリサイズを増やすことで、Lambda実行環境のCPUパワーや、利用可能なNW帯域が向上します。また、メモリサイズを増やすことで処理時間が短くなり、結果的にコストが下がるという効果も期待できます。しかし
CX事業本部@大阪の岩田です。 皆さんはLambda Functionからログを出力する際に、どんな形式でログを出力していますか?後々CloudWatch Logs Insightsで分析することを考えると、やはりログはJSON形式で出力しておきたいところです。出力する項目に関して考えると、リクエストIDなんかは必須と言えるのではないでしょうか?今回紹介するLambda Powertoolsを使うと、このあたりのログ戦略が簡素化できるので良ければお試し下さい。 環境 今回利用した環境です ランタイム: Python3.8 Lambda Powertools: 0.3.0 AWS Lambda Logging:0.1.1 Lambda Powertoolsとは? Python3.6以上で利用できるAWS Lambda用のユーティリティライブラリです。 構造化ログ(JSONログ)を出力するため
CX事業本部@大阪の岩田です。 先ほど聴講していたセッションでさらっとLambdaの新機能が発表されました。 Provisioned Concurrency その名もProvisioned Concurrencyです!! ※先ほどAWS News Blogからも公式にアナウンスがありました。 New – Provisioned Concurrency for Lambda Functions Lambdaのマネコンを開けば分かりますが、すでに東京リージョンで利用可能な状態です。 どんな機能?? この機能を利用することで初期化処理の完了したLambda実行環境を指定した同時実行数の分だけ事前にプールしておけるようです。同時実行数はLambdaのエイリアスもしくはバージョンに対して同時実行数を設定可能です。※latestに対しては設定できません。設定した同時実行数以上にLambdaの実行要求が
こんにちは、大阪オフィスのかずえです。現在ラスベガスで開催中のre:InventでAmazon RDS Proxyのリリースがアナウンスされました。(ただしプレビューです!) なにそれ? 名前の通りRDS用のプロキシです。 スケーラビリティ、DB障害への耐久性、セキュリティの向上が期待できます。 現在のところRDS MySQLとAurora MySQLで利用可能です。RDS PostgreSQL と Aurora PostgreSQLは間も無くとのこと。 東京リージョンで早速使えます! これまで アプリとDB(RDS)間はコネクションを張ることで通信します。 ですがこのコネクション、DBサーバーのメモリやCPUを食います。 例えばサーバーレスアーキテクチャーのアプリの場合、このコネクション数がものすごい数になることがあります。DBに負荷がかかってしまいます。遅くなったりスケーラビリティが制
CX事業本部@大阪の岩田です。 またまたLambda関連のアップデート情報です。 Lambda <-> RDSのDB接続を管理するために、RDS Proxyという新しい機能が利用可能になるというものです! Using Amazon RDS Proxy with AWS Lambda なお、まだプレビュー段階ですですのでご注意下さい。 プレビュー版の注意事項はこちら [AWS] re:Invent 前に理解しておくべきベータ/プレビューサービスの扱いについて #reinvent 概要 Lambda実行環境ではコネクションプーリング機構が利用し辛く、RDSの最大同時接続数以上にLambdaが起動した場合にRDSヘの接続エラーが発生しやすい環境でした。このため、LambdaとRDS(B)の組み合わせは一般的にアンチパターンとされてきました。 今回発表されたRDS Proxyの機能を利用するとRD
CX事業本部@大阪の岩田です。 re:invent2018にてアナウンスされたVPC Lambdaの改善について、ついにAWSより公式のアナウンスがありました!! Announcing improved VPC networking for AWS Lambda functions 今後数カ月に渡って全リージョンで徐々にローリングアップデートが掛かっていき、展開が完了したリージョンについては上記AWSのブログが更新されるとのことです。ユーザー側では特に変更操作など必要ありません。 今までのアーキテクチャ これまでのVPC LambdaはLambdaのサンドボックス環境を作成する際に、必要に応じてENIの作成&アタッチ処理を行なっていました。 ※上記AWSのブログより引用 このアーキテクチャは以下のような課題を抱えていました。 ENI作成を伴うコールドスタートにおいての非常に大きな遅延が発生
サーバーレス開発部の阿部です。 New for AWS Lambda – Use Any Programming Language and Share Common Components 昨日のキーノートでServerless関連少なかったのでちょっとしょぼんとしていたのですが、非常に嬉しいLambdaアップデートがありました! サンプルコードがあったのでやってみたブログは、別途書きますが、まずは速報をおしらせします。 Lambda Layers概要 従来のLambdaではそれぞれの関数ごとにパッケージングしてデプロイしなければならなかった、複数のLambda関数で共有するカスタムコードやライブラリをビジネスロジックから使うことができるようになります。 新しいLambda Layerのアップデートでは、共有コンポーネントを一つのZIPファイルに固めてアップロードすることができます。既存の関
This document summarizes Amazon Web Services Japan speaker Tsukagoshi Keisuke's presentation on AWS AppSync. It introduces AppSync as a fully managed GraphQL service that allows building GraphQL APIs integrated with various data sources like Amazon DynamoDB, AWS Lambda, and Elasticsearch. AppSync provides a GraphQL schema definition language to define types and queries, uses Apache Velocity Templa
Lambda処理内容 SNSのメッセージから、処理対象となるS3のバケット、キーを取得します。 ログの時刻情報として期待するカラムのデータが日付フォーマットに一致しない場合や、カラム数が異常なレコードはエラーレコードとして除外します。 「request」カラムに含まれるURLを「urlparse」モジュールを利用してパースし、解析時に利用頻度の高い「HOST」や「PATH」を事前に抽出します。 「json」モジュールを利用してJSONエンコードを行い、Firehoseに対しバッチ転送を行います。 4: Firehose 今回、出力先はS3のみとしましたが、Amazon Elasticserach Service、Redshiftと連係も可能です。 Firehoseのバッファ時間はELB(ALB)のログ出力間隔にあわせ、300秒としました。 Firehoseの後処理をLambda関数で実装す
Double O というサービスを作りました。 フロントエンドはピュアな Web Components を採用していて、バックエンドは Lambda と DynamoDB のみで構成しました。 (厳密には CloudFront とか API Gateway とかもあるけどそこは省いていいよね?) REST API 以外の Util 系の Lambda 関数はすべて AWS Cloud9 で管理することで環境構築も不要な Lambda ができて楽でした。 TL;DR サーバーレスについてはごく普通のことしかしていないので、詳しくは触れないでおきます。 ピュアな Web Components だけでサービスを成立させることができた。 HTMLElement クラスを継承するだけなのでメジャーライブラリは不要になった。 Web Components の Custom Elements は標準仕様
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く