AWSサービスを使用した際の作業メモ - HirokiYauda/example-shop GitHub Wiki

概算の出し方

  • 転送量の調べ方
https://beyondjapan.com/blog/2016/03/howmuch-traffic-data/
  • メモリ使用量とか調べる
https://qiita.com/rsooo/items/42f0902d42bab6ecf175

初期設定

  • ルートユーザーにMFA設定
  • IAMユーザーで、請求情報にアクセスする場合は、設定変更

IAM

  • 管理ユーザー作成
  • 開発グループとユーザー作成
  • 各サービスはロールで制限

Billing

  • 設定から、メール通知やアラートを許可
  • コストエクスプローラーの有効化
  • Budgetsで、予算超過した際に、メールで通知されるよう設定
  • Cost & Usage Reportsで、料金や使用状況をレポート化して、S3に保存

Trusted Advisor

  • 推奨設定をメールで通知するように設定する

セキュリティ強化するサービス(個人のため、今回使用しない)

CloudTrail, Config. GuardDuty, Security Hub, WAF

VPC

  • デフォルトVPCは使用しない

VPC作成

  • IPアドレス設計レシピ
https://dev.classmethod.jp/articles/vpc-cidr/
  • テナンシー
ハードウェアを占有したいときに使用

サブネット作成

  • IPv4 CIDR ブロックは、VPCで設定したIPアドレスの範囲内で指定

ルートテーブル作成

  • 作成したサブネットに関連付ける
  • パブリックサブネットとプライベートサブネット用のテーブルを作成

インターネットゲートウェイ作成

  • VPCにアタッチする
  • ルートテーブル項目から、インターネットゲートウェイを設定

セキュリティグループ作成

  • 開発者のIPを通すようにインバウンドルールを設定

EC2

  • 作成したVPCを使用。アベイラビリティーゾーンを別に設定して、パブリックサブネットに配置したEC2を2台作成

ELB

  • EC2を2台設置後、ALBとターゲットグループを作成して、設定
  • ALBへのアクセスは、CloudFront経由の通信に限定するため、ALBでカスタムヘッダが含まれていない通信はブロックするように設定

CloudFront

  • CloudFrontをELBの前に置くようにして、設置(リージョンは、バージニア北部 限定)
  • ALBと通信させるため、カスタムヘッダを設定

Certificate Manager

  • CloudFrontからELB間でSSL通信させるため、証明書を発行
  • インターネットからCloudFront間でSSL通信させるため、証明書を発行
  • httpsを使用する際は、laravel側の設定も変更

RDS

  • mysqlの設定を変更するため、パラメータグループ作成
  • プライベートサブネットで、セキュリティグループは、EC2を踏み台として接続するように設定
  • 今回は、パブリックサブネットのEC2を踏み台としている。理想は、新しく踏み台のEC2をプライベートサブネットに建てて、natゲートウェイを通して、インターネットに繋げるのがいい

ElastiCache

  • サブネットグループとセキュリティグループを作成して、設定
  • 今回は、memecashedを使用したが、使わない場合は、sticky sessionで、2台のwebサーバ間のセッションを共有する

S3

  • 商品画像用のバケット作成
  • S3用のユーザーを作成して、laravelのS3ドライバに設定。
  • S3側のアクセス制御設定
  • 画像を公開設定でアップロード
  • 商品画像は、S3参照するようにソース変更