Amazon Web Services ブログ

Category: Serverless

Docker コンテナイメージを使用した PHP Lambda 関数の構築

本投稿は AWS サーバーレス アプリケーションのシニアデベロッパーアドボケートである Benjamin Smith による寄稿です。 re:Invent 2020 で、AWS Lambda 関数をコンテナイメージとしてパッケージ化してデプロイできる機能が発表されました。AWS Lambda 関数をコンテナイメージとしてパッケージ化すると、PHP などのカスタムランタイムを実行する開発者にいくつかの注目すべき利点がもたらされます。このブログ投稿では、これらの利点について説明し、Lambda 関数の新しいコンテナイメージサポートを使用してサーバーレス PHP アプリケーションを構築する方法を示します。 概要 多くの PHP 開発者は、デプロイを容易にするために、ポータブルなアーティファクト作成としてコンテナを利用したアプリケーションの構築方法をご存知のことでしょう。アプリケーションをコンテナとしてパッケージ化すると、複数の環境で一貫した PHP バージョン、パッケージバージョン、および構成設定を維持しやすくなります。

Read More

Amplify JavaScript が新たに Vue 3 をサポート

この記事は、Amplify JavaScript releases support for Vue 3を翻訳したものです。 本日より、Amplify JavaScript は現在対応しているVue.jsバージョン2に加え、新たにVue.jsバージョン3へ対応します。オープンソースの Amplify Librariesは、あらゆるカテゴリのクラウドを使ったオペレーションに対し、ユースケース中心の、独自のスタイルを持った、宣言型で使いやすいインターフェイスを提供し、モバイル開発者やウェブ開発者がバックエンドと簡単にやり取りできるようにしています。これらのライブラリは AWS クラウド技術に支えられており、プラグイン可能なモデルのため、他のプロバイダを利用するよう拡張することもできます。ライブラリは、Amplify CLI を使用して作成された新規バックエンドおよび既存バックエンドリソースの両方で使用可能です。Amplify UI コンポーネントは、複数のフレームワーク向け UI コンポーネント内にクラウド接続部分のワークフローをカプセル化したオープンソースの UI ツールキットです。 このチュートリアルでは、以下を実行します。 このチュートリアルのベースとして新しい Vue 3 アプリを作成 Amplify の Interactions カテゴリの基本設定をセットアップ チャットボットコンポーネントを作成して Vue 3 アプリケーションに追加 前提条件 このチュートリアルを開始する前に、 Amplify ドキュメントの ウェブサイトにアクセスし、Prerequisites (前提条件) セクションに従ってください。前提条件を完了後、このチュートリアルを実行するための準備が整います。 AWS プロファイルを設定するときは、リージョンが Amazon Lex をサポートしていることを確認してください。サポートされているリージョンは、 こちらで確認できます。 新しい Vue アプリの作成 まず、 @vue/cliを使用して新しい Vue アプリケーションを作成し、起動します。このCLIツールを使うことで、現在のベストプラクティスを適用して自動で Vue アプリケーションを作成します。次に、Amplify を追加し、新しいプロジェクトを初期化します。以下の手順で、このプロセスを説明します。 新しい […]

Read More

AWS Compute Optimizer を使用した AWS Lambda のコストとパフォーマンスの最適化

本投稿は AWS Compute Optimizer のシニアプロダクトマネージャーである Brooke Chen、AWS Compute Optimizer のプリンシパルプロダクトマネージャーである Letian Feng、Amazon EC2 のプリンシパルデベロッパーアドボケイトである Chad Schmutzer による寄稿です。 コンピューティングリソースの最適化は、あらゆるアプリケーションアーキテクチャにとって重要な作業です。計算処理リソースの過剰なプロビジョニングは不要なインフラストラクチャコストにつながる一方で、不足すると、アプリケーションのパフォーマンスの低下につながります。 2019年12月に開始された AWS Compute Optimizer は、AW​​Sコンピューティングリソースのコストとパフォーマンスの最適化のための推奨情報(リコメンデーション)を提示するサービスです。特定のワークロードに合わせた実用的な最適化の推奨事項を生成します。昨年、数千の AWS のお客様が、Compute Optimizer を使用してワークロードに最適な Amazon EC2 インスタンスタイプを選択することで、コンピューティングコストを最大25%削減しました。 お客様から最も頻繁にいただくリクエストの 1 つに、Compute Optimizer で AWS Lambda の推奨事項を提示してほしいというものがありました。これを受けて、2020年12月23日、Compute Optimizer が Lambda 関数の推奨メモリサイズをサポートすることを発表しました。これにより、Lambda ベースのサーバーレスワークロードのコストを最適化し、パフォーマンスを向上させることができます。開始するには、Compute Optimizer をオプトインして、推奨事項の検出に進みましょう。 概要 Lambda を使用すると、管理するサーバーがなく、自動的にスケーリングされ、使用した分だけの料金となるなどの、サーバーレスとしてのメリットが多くあります。ただし、Lambda 関数に適切なメモリサイズ設定を選択することは依然として重要なタスクです。Computer Optimizer は、機械学習ベースでメモリの推奨を行うことで、このタスクを支援します。 この推奨事項の提供機能は、Compute Optimizer コンソール、AWS CLI、AWS […]

Read More

コンテナイメージとしてパッケージ化された Lambda 関数の最適化

AWS Lambda は、re: Invent 2020 でコンテナイメージとしての関数のパッケージ化とデプロイのサポートを開始しました。この記事では、イメージサイズを縮小し、ビルド、デプロイ、更新時間を短縮するコンテナイメージの構築方法を学習します。Lambdaコンテナイメージには、最適化のために考慮すべき固有の特性があります。Lambda 関数のコンテナイメージを最適化するために使用するテクニックは、他の環境で使用するものとは少し異なります。 コンテナイメージを最適化する方法を理解するためには、コンテナイメージのパッケージ方法と、Lambda サービスがどのようにコンテナイメージの取得、キャッシュ、デプロイ、およびリタイアするかを理解することが役に立ちます。

Read More
Lambda

コンテナイメージ内でLambda レイヤーと拡張機能を動作させる

この記事では、コンテナーイメージとしてパッケージ化され、デプロイされた Lambda 関数で AWS Lambda レイヤーと拡張機能を使用する方法について説明します。 以前はLambda 関数は.zip アーカイブとしてのみパッケージされていました。これにはAWS マネジメントコンソールで作成された関数が含まれます。今はLambda 関数をコンテナイメージとしてパッケージ化およびデプロイすることもできるようになりました。 Docker CLI などの使い慣れたコンテナーツールを Dockerfile を使用してイメージをローカルで構築、テスト、タグ付けすることができます。コンテナイメージを使用したLambda 関数は 10 GBのサイズまで構築することが可能です。構築したイメージはAmazon Elastic Container Registry(ECR)リポジトリにプッシュします。このリポジトリは、AWSのフルマネージドなコンテナイメージレジストリサービスです。レジストリからECRイメージ URL をソースコードとして指定し、Lambda 関数を作成します。

Read More

AWS Proton はじめの一歩

この記事は、 AWS Proton: A first look を翻訳したものです。 ※日本語字幕の表示には、設定 → 字幕 → 自動翻訳 → 日本語をご選択ください 我々がお客様のエンジニアチームと会話するときに、特にエンタープライズ規模のお客様の場合、開発チームとプラットフォームチームに分かれて組織化されていることがよくあります。通常、開発チームはサービスの作成とメンテナンスを担当し、プラットフォームチームは開発チームが簡単にサービスを展開できるようなツールを構築しています。このツールには多くの場合、ビルドパイプラインや可観測性、スケーリング、およびセキュリティについての既知のベストプラクティスが組み込まれています。

Read More

AWS Lambda の新機能 – コンテナイメージのサポート

AWS Lambda では、サーバーについて気にすることなくコードをアップロードして実行できます。多くのお客様に Lambda のこの仕組みをご活用いただいていますが、開発ワークフローのためにコンテナツールに投資した場合は、Lambda でのアプリケーションの構築に同じアプローチを使用することが難しくなります。 この問題に対応するため、Lambda 関数を最大 10 GB のコンテナイメージとしてパッケージ化し、デプロイできるようになりました。これにより、機械学習やデータ集約型のワークロードなど、大きな依存関係に頼る大規模なワークロードを簡単に構築してデプロイできます。ZIP アーカイブとしてパッケージ化された関数と同様に、コンテナイメージとしてデプロイされた関数は、同様の操作のシンプルさ、自動スケーリング、高可用性、多数のサービスとのネイティブ統合による恩恵を受けます。 当社では。サポートされているすべての Lambda ランタイム (Python、Node.js、Java、.NET、Go、Ruby) のベースイメージを提供しているため、コードと依存関係を簡単に追加することができます。Amazon Linux ベースのカスタムランタイム用のベースイメージも用意しており、これを拡張して Lambda ランタイム API を実装する独自のランタイムを含めることができます。 Alpine や Debian Linux をベースにしたイメージなど、独自のベースイメージを任意で Lambda にデプロイできます。Lambda を操作するには、これらのイメージに Lambda ランタイム API を実装する必要があります。独自のベースイメージの構築を容易にするため、当社ではサポートされているすべてのランタイムにランタイム API を実装する Lambda Runtime Interface Clients をリリースしています。これらの実装は、ネイティブのパッケージマネージャーを介して利用できるため、イメージ内で簡単に取得でき、オープンソースライセンスを使用してコミュニティと共有されます。 また、Lambda Runtime Interface Emulator をオープンソースとしてリリースします。これにより、コンテナイメージのローカルテストを実行して、Lambda にデプロイした際に実行されることを確認することができます。Lambda Runtime Interface Emulator は、AWS が提供するすべてのベースイメージに含まれており、任意のイメージでも使用できます。 コンテナイメージは、Lambda Extensions […]

Read More

[AWS Black Belt Online Seminar] 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説 資料及び QA 公開

先日 (2020/11/18) 開催しました AWS Black Belt Online Seminar「形で考えるサーバーレス設計 サーバーレスユースケースパターン解説 」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説 from Amazon Web Services Japan AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます) Q. 業務系APIグループ企業間APIのユースケースですが、LambdaとRDSの組み合わせはコネクションの問題がありアンチパターンだと思っていたのですが、違うのでしょうか? A. 確かにこれまではアンチパターンと言われていましたが、Amazon RDS Proxyがリリースされたことによって、AWS LambdaからAmazon RDSへのコネクションをプーリングして再利用できるようになったため、Amazon RDSの負荷を軽減することができるようになりました。従って今後はAWS LambdaとAmazon RDSの組み合わせも要件に合わせて検討できる構成となっています。 Q. Lambdaの質問になりますが、Lambda関数について、デフォルト設定では、参照権限を許可しない限り、別のAWSアカウント(第三者)から関数を呼ばれることはない、という理解であっていますでしょうか? A. はい、その通りです。AWS Lambda関数のリソースポリシーで明示的に許可を与えない限り、他のアカウントからそのLambda関数を実行することはできません。 Q. API-Gatewayを使ってSPAアプリを開発しようとしたときに、HTMLファイルはS3に置くのが一般的でしょうか? A. SPAのアプリケーションを開発する場合、HTMLやJavaScriptは静的なページなのでAmazon S3のWebホスティング機能を利用することにより、サーバーの構築を行うことなくWebの静的ページをホスティングすることが可能です。そのためAmazon API Gateway、AWS Lambda、Amazon DynamoDBなどと組み合わせることで、全てをサーバーレスで構成して実行することが可能となるため良く利用されます。 Q. APMのパターンはありますか?今日の時点で AWS […]

Read More

【開催報告 & 資料公開】「SaaS+サーバーレス/EventBridge」セミナー

10 月 28 日に、「SaaS+サーバーレス/EventBridge」で開発迅速化、運用作業削減 〜ビジネスにアジリティーをもたらす「SaaS + サーバーレス」〜 と題したセミナーを開催し、6社の SaaS パートナー様にご登壇いただきました。登壇いただいたパートナー様の SaaS アプリケーションはすべて Amazon EventBridge に対応いただいています。 EventBridge は、サービスとサービスの間をつなぐためのバスとして機能し、様々なアプリケーションや AWS サービスと連携できます。EventBridge に対応いただいているSaaS アプリケーションは、簡単かつセキュアに、イベントソースとして AWS のサーバーレスサービス群と連携させることができます。 本セミナーでは、各社の SaaS のご紹介とともに、EventBridge に対応することで SaaS パートナーとして何が良いのか、SaaS を利用されるお客様にとってどんなメリットがあるのか、といったポイントでご説明いただきました。アンケート結果でも、SaaS との連携手法として EventBridge という選択肢があることを知る機会になった、とか、なかなか聞けないパートナー様目線での EventBridge の効能がわかってよかったなどのご意見がありました。 本記事では、改めて、ご登壇いただいたパートナー様のセッション動画および公開資料をご紹介します。EventBridge ってなんぞや? という方は、AWS セッションとしてご説明した「サーバーレスを取り巻く状況と EventBridge の概要」や Game Server Services 丹羽様のセッション資料/動画を先にご覧いただくことをお勧めします。その上で、各 SaaS パートナー様のセッション内容をご覧いただくと、SaaS + EventBridge で何ができるのかをご理解いただけるかと思います。また、次の BlackBelt 資料も参考になるでしょう。 EventBridge に関連した Black Belt […]

Read More
AWS Lambda execution environment with the Extensions API

AWS Lambda Extensions(プレビュー)のご紹介

本投稿は AWS サーバーレス アプリケーションのシニアデベロッパーアドボケートであるJulian Woodによる寄稿です。 AWS Lambdaは、Lambda Extensionsのプレビューを発表しました。Lambda Extensionsは、お好みのモニタリング、オブザーバビリティ、セキュリティ、ガバナンス用ツールとLambdaとの統合を簡単にする新しい方法です。このブログでは、Lambda Extensionsがどのように動作するのか、どのように使い始められるか、さらに、AWS Lambda Ready パートナーの提供する現在利用できるextensionについて説明します。 お客様が既に使用しているツール群とLambdaを統合をしたいというリクエストは数多く寄せられており、Extensionsはその問題を解決するサポートをしてくれます。お客様からは、自分の使いたいツールとLambdaをつなげるために、追加の作業や設定を行うことが必要だという指摘が以前からありました。さらに、ログエージェントなどの長時間実行されるプロセスが必要なツールをLambda上で実行するのは、かなり難しいことでした。 Extensionsは、ツールがLambda環境と深く統合するための新しい方法です。複雑なインストレーションや設定は必要なく、お客様のアプリケーションポートフォリオ上にある好きなツールを簡単に使えるようになります。例えば以下のようなユースケースでExtensionsを使用できます: 関数呼び出し前、呼び出し中、呼び出し後の診断情報をキャプチャーする コード変更なしにコードの計測を自動的に行う 関数の呼び出し前に設定やシークレットを取得する 関数とは別のプロセス上で実行されている堅牢なセキュリティエージェントを通して、関数のアクティビティを検知・アラートする ExtensionsはAWS、AWS Lambda Readyパートナー、またオープンソースプロジェクトから使用することができます。本日時点(2020年10月8日 PDT)で AppDynamics、Check Point、Datadog、Dynatrace、Spsagon、HashiCorp、Lumigo、New Relic、Thundra、Splunk SignalFX、AWS AppConfig、Amazon CloudWatch Lambda Insightsのextensionが利用可能です。 どのように自分用のextensionを作成するかや、Lambdaのライフサイクルの変化についてのディープダイブについては、関連記事である“AWS Lambda Extensions (プレビュー) を構築する“をご覧ください。 概要 Lambda Extensionsは、複雑なインストレーションや構成管理を必要とせずに、簡単にお客様が現在使用しているツールにつなぐことができるよう設計されています。ExtensionをAWSマネジメントコンソールやAWS Command Line Interface (AWS CLI)経由でLambdaレイヤーとしてデプロイすることができます。AWS CloudFormationやAWS Serverless Application Model (AWS SAM)、Serverless Framework、Terraformなどのinfrastructure as codeツールからも使用できます。 また、Epsagon、New Relic、Lumigo、Thundraからの統合をStackeryを使って自動化できます。 […]

Read More