カスタム ドメインを使用した AWS でのマルチリージョン サーバーレス デプロイ
9253 ワード
この投稿では、the article で積極的に使用している Serverless Framework で FINN を拡張し、カスタム ドメインと複数のリージョンを使用してサービスを実装する方法を説明します.
サーバーレスとは?
ドメイン: ドメイン: ドメイン: ドメイン:
すでに installed serverless であると仮定します.
カスタム ドメインを管理するには、 serverless-domain-manager をインストールします.
次に stage manager をインストールします.
これはほんの一例です.
また
また
また
eu-central-1 リージョンに本番環境をデプロイします.
また
既存の Edge サービスを Regional に変換する方法
サーバーレスとは?
サーバーレスは、使用が必要な場合にのみバックエンド サービスを提供する方法です (この場合: AWS Lambda ). Serverless Framework で自動スケーリング アプリ用のゼロ フリクション開発ツールとして説明されている AWS Lambda を使用します.
サービスを AWS Lambda にデプロイし、サービス用の安静な API (選択) を作成するだけです.カスタム ドメインは、展開のどの段階にもアタッチできます.
手順
次に、関連するカスタム ドメインを使用して、アプリケーションを staging
と production
の両方の環境にデプロイしましょう.
最終的に、 Europe (eu-central-1)
と US East (us-east-1)
の両方のリージョンに、 latency
に基づくルーティング設定で 4 つのデプロイが作成されます.
次に、関連するカスタム ドメインを使用して、アプリケーションを
staging
と production
の両方の環境にデプロイしましょう.最終的に、
Europe (eu-central-1)
と US East (us-east-1)
の両方のリージョンに、 latency
に基づくルーティング設定で 4 つのデプロイが作成されます.stg-multi-region.saral.dev
ステージ: staging
リージョン: eu-central-1
stg-multi-region.saral.dev
ステージ: staging
リージョン: us-east-1
multi-region.saral.dev
ステージ: production
リージョン: eu-central-1
multi-region.saral.dev
ステージ: production
リージョン: us-east-1
1) サーバーレス プラグインをインストールする
すでに installed serverless であると仮定します.
カスタム ドメインを管理するには、 serverless-domain-manager をインストールします.
yarn add -D serverless-domain-manager
次に stage manager をインストールします.
yarn add -D serverless-stage-manager
2) serverless.yml をセットアップする
これはほんの一例です.
service: multi-region-service
app: myapp
org: myorg
frameworkVersion: '2'
provider:
name: aws
endpointType: REGIONAL
runtime: nodejs14.x
memorySize: 256
stage: ${opt:stage, 'staging'}
region: ${opt:region, 'eu-central-1'}
tags:
author: saral.dev
custom:
domains:
production: multi-region.saral.dev
staging: stg-multi-region.saral.dev
environments:
staging: staging
production: production
customDomain:
domainName: ${self:custom.domains.${self:provider.stage}}
basePath: ''
stage: ${self:provider.stage}
createRoute53Record: true
endpointType: 'regional'
certificateRegion: ${opt:region, 'eu-central-1'}
route53Params:
routingPolicy: latency
stages:
- staging
- production
plugins:
- serverless-domain-manager
- serverless-stage-manager
- serverless-offline
3) リージョンを含むドメインを作成する
stg-multi-region.saral.dev
リージョンに eu-central-1
を作成します.serverless create_domain --stage staging
また
serverless create_domain --stage staging --region eu-central-1
stg-multi-region.saral.dev
リージョンに us-east-1
を作成します.serverless create_domain --stage staging --region us-east-1
multi-region.saral.dev
リージョンに eu-central-1
を作成します.serverless create_domain --stage production
また
serverless create_domain --stage production --region eu-central-1
multi-region.saral.dev
リージョンに us-east-1
を作成します.serverless create_domain --stage production --region us-east-1
4) サービスを AWS にデプロイする
staging
リージョンに eu-central-1
をデプロイします.serverless deploy --stage staging
また
serverless deploy --stage staging --region eu-central-1
staging
リージョンに us-east-1
をデプロイします.serverless deploy --stage staging --region us-east-1
serverless deploy --stage production
また
serverless deploy --stage production --region eu-central-1
production
リージョンに us-east-1
をデプロイします.serverless deploy --stage production --region us-east-1
既存の Edge サービスを Regional に変換する方法
デフォルトでは、サーバーレスはリージョン エンドポイントをデプロイしません. serverless.yml
に次のような設定があるとします.
customDomain:
domainName: ${self:custom.domains.${self:custom.stage}}
basePath: ''
stage: ${self:custom.stage}
createRoute53Record: true
マルチリージョンの変更を行う前に、まず次のコマンドを実行してカスタム ドメインを削除する必要があります.現時点では、エンドポイント タイプを変更することはできないためです.
serverless delete_domain --stage staging
serverless delete_domain --stage production
その後、上記の手順 3 と 4 を開始できます.
残念ながら、展開が完了するまでダウンタイムが発生します.
リージョンをラムダに記録する場合は、環境変数 AWS_REGION
を AWS Lambda 経由で利用できます.したがって、 console.log(process.env.AWS_REGION)
で印刷できます. Serverless Dashboard でデプロイメントを確認することもできます.
投稿を楽しんでいただければ幸いです.愛を示すことを忘れないでください. :)
Reference
この問題について(カスタム ドメインを使用した AWS でのマルチリージョン サーバーレス デプロイ), 我々は、より多くの情報をここで見つけました
https://dev.to/ebsaral/multi-region-serverless-deployments-on-aws-with-custom-domains-273i
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
customDomain:
domainName: ${self:custom.domains.${self:custom.stage}}
basePath: ''
stage: ${self:custom.stage}
createRoute53Record: true
serverless delete_domain --stage staging
serverless delete_domain --stage production
Reference
この問題について(カスタム ドメインを使用した AWS でのマルチリージョン サーバーレス デプロイ), 我々は、より多くの情報をここで見つけました https://dev.to/ebsaral/multi-region-serverless-deployments-on-aws-with-custom-domains-273iテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol