LoginSignup
1
1

More than 1 year has passed since last update.

AWS公式のサーバーレスハンズオンやってみた

Posted at

はじめに

AWSのサーバーレスアーキテクチャの公式ハンズオンをやってみました。詳細な手順は以下のリンクをご確認ください。

https://aws.amazon.com/jp/getting-started/hands-on/build-web-app-s3-lambda-api-gateway-dynamodb/?trk=gs_card

このハンズオンは、大体30分~40分程度で完了します。

概要

使用したサービス:

  • AWS Amplify
  • AWS IAM
  • Amazon API Gateway
  • AWS Lambda
  • Amazon DynamoDB

記事の目的

この記事の目的は、ハンズオンを通してサーバーレスアーキテクチャの基礎を理解し、各サービスの基本設定を学ぶことです。
※細かい手順等は記載していません。あくまでも全体的な流れのみです。

手順

フロントエンドの作成

AWS Amplifyというサービスを使用して、「Hello World」のみを表示するindex.htmlをデプロイします。Amplifyはフロントエンドの開発を簡単にしてくれるサービスで、今回初めて使用しましたが、作成したhtmlファイルを数クリックでデプロイできました。

image.png

関数の作成

次に、AWS Lambdaを使って関数を作成します。Lambdaは、AWSが提供するサーバーレスコンピューティングサービスで、プログラミングの関数やコードをAWSに保管し、サーバーを用意せずに関数をいつでも使用できます。

このステップでは、Pythonで名前と苗字をJSONで受け取り、レスポンスを返す関数を作成しています。このハンズオンでは、Python以外にもJavaScriptとJavaのサンプルコードが用意されています。

image.png

APIの作成

次に、Amazon API Gatewayを使ってAPIを作成します。API Gatewayは、先ほど作成したAmplifyのフロントエンドとLambda関数をつなげるためのサービスです。ここでは、APIを作成し、POSTメソッドを使ってLambdaに値を渡します。これでAPI Gatewayを使ってLambdaを呼び出すことができます。

image.png

データベースの作成

次に、Amazon DynamoDBを使ってデータベースを作成します。DynamoDBはNoSQL型のデータベースで、読み書きが高速であり、サーバーレスで自動的にスケーリングすることが特徴です。

ここでは、DynamoDBを作成し、先ほど作成したLambdaからアクセスできるようにIAMポリシーを作成してLambdaに割り当てます。LambdaにIAMポリシーが割り当てられたら、Lambdaのコードを書き換えてDynamoDBにデータを書き込みます。DynamoDBのコンソール画面からテストデータが登録されていれば成功です。

image.png

WebページからLambdaの呼び出し

最後に、これまで構築してきたものを連携させて、WebページからLambdaを呼び出し、DynamoDBにデータを登録します。

index.htmlを書き換えて、API Gatewayにリクエストを送るように設定します。この際、index.htmlにAPI Gatewayの呼び出しURLを記載する必要があります。ARNではないので注意してください。

Webページで入力した名前と苗字が画面上に表示されることを確認したら、マネジメントコンソールからDynamoDBを確認してみましょう。先ほど入力した名前が登録されているはずです。

image.png

クリーンアップ

ハンズオンが終わったら、構築した環境を削除して、課金が発生しないようにしましょう。

まとめ

サーバーレスのサービスは、自動的にスケーリングが行われ、管理する部分も少ないため、手軽に始められると感じました。次のステップとして、フロントエンドの静的ファイルをAmazon S3から配信したり、DynamoDBの代わりにAmazon RDSを使用してみるなど、様々なアプローチが可能です。このハンズオンを通じて、AWSのサーバーレスアーキテクチャの基本を理解し、各サービスの設定方法を学ぶことができました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1