web-dev-qa-db-ja.com

AWS LambdaとElastic Beanstalk

AWSの初心者です。

私はREST awsのホストになる完全なアプリを開発します。

使うことにしました

  • 静的コンテンツ用のAmazon S3
  • 認証用のAmazon Cognitoユーザープール
  • DbとしてのAmazon DynamoDB

私のアプリがホストされる場所について混乱しています。そのための2つのアイデアがあります。

  1. AWS Lambda関数+ APIゲートウェイ

アプリ全体を実装できますか?

  1. Elastic Beanstalk

上記のすべてのAWSサービスを統合できますか? (.netコアWeb API 2.0のバックエンド)

案内してください

7

Elastic Benstalk Elastic Beanstalkを使用すると、Platform as a Service(PaaS)にアクセスでき、インフラストラクチャのいくつかの側面を管理できます。開発者は、プラットフォーム上でアプリケーションを作成、テスト、および展開できます。プロビジョニング、負荷分散、またはスケーリングを処理する必要はありません。 Elastic Beanstalkは、Apache HTTPサーバー、Nginx、Microsoft IIS、Apache Tomcatなど、多くのサーバー環境をサポートしています。 Dockerコンテナーを強力にサポートしており、アプリケーションを簡単に展開できます。

開発者は、コマンドラインまたはElastic Beanstalk管理コンソールのいずれかを使用できます。コンソールを使用すると、構成をセットアップし、環境とアプリケーションを管理できます。

Lambda Lambdaにアップロードする開発者は、コードの環境に対処する必要はありません。これは、外部コードまたはイベントが機能を呼び出すことができる「サーバーレス」サービスです。 Lambdaはデータを保存しませんが、保存する他のサービスへのアクセスを許可します。 Lambdaを本当に魅力的なものにしているのは、実際にコードを実行するとき以外は何も支払わないということです。計算量の多い部分をアプリケーションから取り出して、非常に低コストでLambdaにデプロイできます。

AWS Step Functionsはステートマシンを実装し、一連のLambda関数を呼び出してエラー状態を処理できるようにします。 Lambda関数は、他の場所で実行されているアプリケーションのバックエンドとして機能したり、一連のラムダ関数を使用してWebアプリケーションを作成することもできます。

はい。サーバーレスアーキテクチャのラムダ、APIゲートウェイ、S3、SQS、SNS、cognito、DynamoDBを使用してRESTful APIを作成できます。一連のラムダ関数を順番に呼び出します。

Elastic Beanstalkは基本的にEC2インスタンスのプロビジョニング、負荷分散、スケーリングなどを処理します(ラムダでは処理しません)。

Elastic BeanstalkとLambdaを一緒に使用することもできます。 Elastic Beanstalkで管理されるEC2の軽量アプリケーションは、Lambdaを使用してヘビーデューティ処理を行うことができます。アプリケーションは低価格のインスタンスで実行でき、Lambdaのコストは、そうでなければ必要なハイエンドインスタンスよりも大幅に低くなります。

ラムダには厳しい制限があります。リクエスト本文のペイロードは6 MBを超えることはできません。リクエストの期間は300秒を超えることはできません。このため、大きなデータブロックを渡す場合や、長時間待機する関数には適していませんが、多くの場合回避策があります。

展開の制限もあります。展開パッケージは50 MBを超えることはできません。 Lambdaコードには既存のライブラリを含めることができますが、非常に大きなライブラリが問題になる可能性があります。

13
amittn

基盤となるシステムの管理に興味がない場合があるため、AWS Lambda + API Gatewayを選択する必要があります。

1
Taha