AWSのサーバーレス技術を用いたアプリケーション開発



AWSサーバーレスとは


Amazon Web Services(AWS)のサーバーレス技術は、サーバーを持たないで基本的な開発サービスを利用して、モダンなアプリケーションの開発を行うことができるサービスです。サーバーレス開発では、開発者はサーバーインフラストラクチャの設定や運用を行う必要がありません。これにより、開発者は競争力のあるアプリケーションを開発し、サービスレベル契約(SLA)を満たすことが可能になります。

サーバーレス開発の技術


AWSサーバーレス開発では、各種のサービスを組み合わせることでサーバーを持たないアプリケーションの開発が可能となります。以下にサーバーレス開発において利用可能なサービスを紹介します:

- Amazon API Gateway: AWS上にRESTfulなRESTful APIをブーストするためのAPI管理サービスです。開発者は自身のAPIをAmazon API Gatewayから直接部署し、すぐに有効化することが可能です。

- AWS Lambda:Lambdaは、開発者が実行したいコードを実行するサービスです。Lambdaを使用すると、開発者はサーバーを持たないでアプリケーション開発を行うことができます。

- Amazon DynamoDB: DynamoDBは、サーバーレスアプリケーションでスケーラブルなNoSQLデータベースを使用するための非常に強力なサービスです。 DynamoDBを使用すると、開発者はローカルやクラウド上のデータが気軽に書き込めるNoSQLデータベースを使うことが可能です。

- Amazon Cognito: Cognitoは、サーバーレスアプリケーションで認証と認可を行うためのサービスです。 Cognitoを使用すると、開発者はクライアント側の代わりにユーザー認証を行うことができます。

サーバーレス開発の例



以下は、Amazon API Gateway、Lambda、DynamoDB、Cognitoを使用したサーバーレスアプリケーション開発の例です。

1. DynamoDBを作成し、データテーブルを作成します:


aws dynamodb create-table \
--table-name Users \
--attribute-definitions \
AttributeName=id,AttributeType=S \
--key-schema AttributeName=id,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5


2. Amazon API Gatewayを作成します:


aws apigateway create-rest-api \
--name "My API"


3. Amazon API Gatewayのリソースを作成します:


aws apigateway create-resource \
--rest-api-id \
--parent-id \
--path-part "users"


4. API Gatewayのメソッドを設定します:


aws apigateway put-method \
--rest-api-id \
--resource-id \
--http-method GET \
--authorization-type NONE


5. API GatewayをLambda関数に接続します:


aws apigateway put-integration \
--rest-api-id \
--resource-id \
--http-method GET \
--type AWS_PROXY \
--integration-http-method POST \
--uri arn:aws:apigateway:region:lambda:path/2015-03-31/functions/arn:aws:lambda:region:account-id:function:function_name/invocations


6. API GatewayメソッドをLambda関数に接続します:


aws apigateway put-method-response \
--rest-api-id \
--resource-id \
--http-method GET \
--status-code 200


7. Lambda関数をAPI Gatewayに接続します:


aws lambda add-permission \
--function-name function_name \
--statement-id \
--action lambda:InvokeFunction \
--principal apigateway.amazonaws.com \
--source-arn arn:aws:execute-api:region:account-id:api-id/*/*/*


まとめ


AWSのサーバーレス技術を用いたアプリケーション開発は、サーバーインフラストラクチャの設定や運用が不要なので、競争力のあるモダンなアプリケーション開発を行うことが可能です。また、サーバーレス開発にはAmazon API Gateway、Lambda、DynamoDB、そしてCognitoなどの様々なサービスを組み合わせることが可能です。サーバーレス開発をより理解することで、開発者がスピーディーでスケーラブルなアプリケーション開発を行うことができます。

投稿者: systemreach_engineer