8tako8tako8’s blog

ソフトウェアエンジニア

Rails + React アプリを ECS Fargate にデプロイする【6. S3・SES・Systems Manager 編】

これは何?

React と Rails で実装したWebアプリを AWS 環境にデプロイするまでの備忘録の S3・SES・Systems Manager 編です

総集編を読んでいない方は コチラ

本記事でやること

以下のインフラ構成図のように S3・SES・Systems Manager を作成・設定します

作成手順

S3

AWSサービス: S3 からS3バケットを作成します 今回は、バックエンド用とフロントエンド用の2つのバケットを作成します

まずは、バックエンド用のバケット名からです

バケット名 8tako8tako8-hoge-api を入力します

ACL無効、パブリックアクセスをすべてブロックします

バージョニングは無効、デフォルトの暗号化のバケットキーを無効にします

以上の設定で「バケットを作成」をクリックします

次に、フロントエンド用のバケット名も同様に作成します バケット名は 8tako8tako8-hoge-web としました

最後に、Railsアプリを以下のように修正します

# config/environments/production.rb

Rails.application.configure do
  config.active_storage.service = :amazon
end
# config/storage.yml
# 省略

amazon:
  service: S3
  region: 'ap-north-east'
  bucket: '8tako8tako8-hoge-api'

SES

AWSサービス: Simple Email Service から「使用を開始」をクリックします

検証用のメールアドレスを入力します

送信ドメインをフロントエンド用のサブドメインにします

確認画面で「Get Started」をクリックします

以下のようなステータスになり、登録したメールアドレスにメールが届いているので検証します

SMTP設定をクリックし、「SMTP認証情報の作成」をクリックします

ユーザーの詳細はデフォルトのまま「ユーザーの作成」をクリックします

認証情報をメモしておきます

今回は、サンドボックスで使用するので本稼働アクセスのリクエストを行いません

これでSESの設定完了です

最後に、config/environments/production.rb を以下のようにします(環境変数は後ほど設定することを想定しています)

Rails.application.configure do
  # 省略

  config.action_mailer.default_url_options = { host: 'api.example.com', protocl: 'https' }
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.default charset: 'utf-8'
  config.action_mailer.smtp_settings = {
    address: 'email-smtp.' + ENV.fetch("AWS_REGION") + '.amazonaws.com',
    port: 587,
    domain: ENV.fetch("FRONTEND_DOMAIN"),
    authentication: :login,
    user_name: ENV.fetch("SES_USERNAME"),
    password: ENV.fetch("SES_PASSWORD"),
  }
end

Systems Manager Parameter Store

パラメータストアで以下のパラメータを管理します

  • DBエンドポイント(db-host)
  • DBユーザー名(db-username)
  • DBパスワード(db-password)
  • SESユーザー名(ses-username)
  • SESパスワード(ses-password)

パラメータの登録手順の一例として、DBエンドポイント(db-host) の登録をします

AWSサービス: Systems Manager から「使用を開始」をクリックします

パラメータストアで「パラメータの作成」をクリックします

名前: /ecs-param/db-host、タイプ: 安全な文字列、値: 登録したDBエンドポイント を入力して作成します

他のパラメータについても同様に作成してください

これで S3・SES・Systems Manager を作成・設定完了です

最後に

今回は、S3・SES・Systems Manager を作成・設定しました

次は、ECR・ECS 編に進みましょう!