[AWS]ALBだけで別ドメインにリダイレクトする

AWSのロードバランサー(ALB)リダイレクトができるブログを以前書いたと思いますが、今回リスナールールにTerraformで追加したことがなかったので、試しに以下のように書いたところ!

Error: Error modifying LB Listener: InvalidLoadBalancerAction: You cannot specify multiple of the following action type: ‘redirect’
status code: 400, request id: xxxxxxxxxxxxxxxxx
on elb.tf line 34, in resource “aws_alb_listener” “adachin-app”:
34: resource “aws_alb_listener” “adachin-app” {

次のアクションタイプを複数指定することはできません: ‘redirect’

そもそも、リスナーのIFのホストヘッダーがterraformの項目にないし、redirectを複数書けないとエラーが出たので、これはコード化できないのか…と思いきや aws_lb_listener_rule を使って実装できたのでブログします。見てるところが違った!


■やりたいこと

  • http,https共に www.adachin.com にアクセスしたら adachin.com にリダイレクトする

■Resource: aws_lb_listener_rule

https://www.terraform.io/docs/providers/aws/r/lb_listener_rule.html

arnでlistenerと紐つけるだけなので、複雑な処理も余裕で書ける!


■elb.tf

今回追加したのは 50,84行目 でhttpとhttpsの2つに追加しています。しかし host_header は最後に追加するんですな。コンソールだと一番左(host_header)に追加するので慣れない。 conditionをredirectの上に持ってくれば見やすそうだけど、動くのか…(検証してない)

  • 確認


■まとめ

Nginxに余計な設定は書かずにALBで管理できるのは非常に良き!サブドメインくらいのリダイレクトならバシバシALBでやりましょう!危うく手動で管理するところだった。。


カテゴリー: AWSTerraform

adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください