プロジェクト

全般

プロフィール

開発実装 #60

未完了

設計 #1: 開発運用プロジェクトのスケジュール

開発実装 #31: 本番環境インフラの構築

Terraformを用いてALBを構築する

Lunatic1998 さんが8ヶ月前に追加. 8ヶ月前に更新.

ステータス:
完了
優先度:
普通
担当者:
開始日:
2024-02-12
期日:
2024-02-12 (約8ヶ月 遅れ)
進捗率:

0%

予定工数:

説明

ALB(Application Load Balancer) とは

  • AWS が提供するロードバランサー
    • アプリケーションレイヤーでの振り分けが可能
    • SSL/TLS の暗号化/複号化
    • AWS Cognito との連携(今回 Rails 側で連携スクリプトを実装したためお役御免にはなるが、将来的には...)

採用可否

  • NginxコンテナがWebサーバーの役割を果たしてくれるが、果たしてELBは必要なのか
    • ALBを利用することで、複数のNginxコンテナにトラフィックを均等に分散することができる。
    • 正直Nginxコンテナを複数構築することはない。
  • ALBは複数のアベイラビリティーゾーンにわたって可用性を提供する。
    • 現状のシステムは高度な可用性は求められない。
  • ALBを使用することで、SSL/TLSの終端を行うことができる。
    • Nginxコンテナ上でSSL/TLSの導入は可能であるが、ALBでSSL/TLS機能を担ってくれた方が管理が簡素になる。
  • セキュリティの向上
    • Nginxコンテナをプライベートサブネット下に配置できる。

ALB採用の理由

ALB
  • リクエストヘッダーやパスなどの情報に基づいてトラフィックをルーティングおよびバランシングできる。
    • nginxコンテナに静的コンテンツを配置して、HTTPリクエストのパス次第でアプリサーバーを介さずにNginxサーバーからリクエストを返す、といった仕様が組める?
NLB
  • 高速かつ効率的なロードバランシングが可能
    • 高速性を求めていない。
  • NLBは静的IPアドレスをサポート
    • 外部クライアントやDNSレコードなどが常に同じIPアドレスに接続できる。
    • 外部クライアントの連携はしない、DNSにRoute53を導入すればなんとかなる

Lunatic1998 さんが8ヶ月前に更新

  • 題名Terraformを用いてECSを構築する から Terraformを用いてALBを構築する に変更

Lunatic1998 さんが8ヶ月前に更新

ALB作成時に発生したエラー

  • どうやらALBリソースを作成するには、二つ以上のサブネットが必要とのことです。
│ Error: creating application Load Balancer: ValidationError: At least two subnets in two different Availability Zones must be specified
│       status code: 400, request id: ec68e889-09fb-49a2-afc8-ade089ca01d7
│ 
│   with module.lb.aws_lb.alb,
│   on lb/main.tf line 1, in resource "aws_lb" "alb":
│    1: resource "aws_lb" "alb" {

解決

  • 正直ふたつもパブリックサブネットは不要と思っている。
  • しかし一旦ダミー用のパブリックサブネットを作成することで解決。

terraform destroyで削除できない

  • deletion protectionを有効化していたため
╷
│ Error: deleting LB: OperationNotPermitted: Load balancer 'arn:aws:elasticloadbalancing:ap-northeast-1:887353572756:loadbalancer/app/alb/dd91466400d57dea' cannot be deleted because deletion protection is enabled
│       status code: 400, request id: ac9a5932-8883-4167-b0cf-7d5413cb34d1

Lunatic1998 さんが8ヶ月前に更新

Lunatic1998 さんが8ヶ月前に更新

  • 期日2024-02-12 にセット
  • ステータス新規 から レビュー中 に変更
  • 親チケット#39 にセット

Lunatic1998 さんが8ヶ月前に更新

  • ステータスレビュー中 から 完了 に変更

Lunatic1998 さんが8ヶ月前に更新

  • 親チケット#39 から #31 に変更

他の形式にエクスポート: Atom PDF