LoginSignup
1
0

More than 3 years have passed since last update.

AWS ALB+Lambdaでサーバーレスなウェブサービスを実装してみる #1

Last updated at Posted at 2020-05-22

前提

-投稿者はAWSを本格的に学び始めて日が浅い(一月余り)
-環境ありきの要件なので必ずしも効率的とは限らない
-RDB Proxyを使ってみる

環境

ServerlessService.png

上の図のような構成を検証する形で構築していきたいと思います。

題名ではウェブサービスと言ってしまっていますが、ブラウザからアクセスしてウェブページを表示させるところまでで完成形としたいと思います。

ALB+Lambda

まずはALBからLambdaを呼び出すところをやってみる。

ALB

ALBの作成から始めます。
AWSマネジメントコンソールのEC2から"ロードバランシング">"ロードバランサー"を選択する。
"ロードバランサーの作成"を選択し、ターゲットの種類をLambda関数にして"後で関数を追加する"を選択してロードバランサーを作成します。

Lambda

以下は、AWS公式ドキュメントを参考にしたLambda関数"HelloWorldFunction"を確認のため表示する文字だけ変えたものです。

def lambda_handler(event, context):
    response = {
        "statusCode": 200,
        "statusDescription": "200 OK",
        "isBase64Encoded": False,
        "headers": {
            "Content-Type": "text/html; charset=utf-8"
    }
    }

    response['body'] = """<html>
    <head>
    <title>テストですよ!</title>
    <style>
    html, body {
    margin: 0; padding: 0;
    font-family: arial; font-weight: 100; font-size: 1em;
    text-align: center;
    }
    </style>
    </head>
    <body>
    <p>ラムダよりもBeansがすき</p>
    </body>
    </html>"""
    return response

ALBのDNS名の前に"https://"を付けてアクセスすると次の画像のようになりました。
結果.png

これでALB+Lambdaで静的ページを表示できるようになります。
 実際に任意のドメインでクセスしようと思うとAWS Certificate ManagerとかRoute 53とかを使用する必要があります。

1
0
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
0