😄

【AWSCLI】ALBのリスナールールの優先順位を設定する

2023/09/03に公開

はじめに

AWSCLIでALBのリスナールールの優先順位を設定する方法について記載したいと思います。

前提

  • AWSCLIのバージョン
バージョン
$ aws --version
aws-cli/2.7.31 Python/3.10.7 Darwin/22.6.0 source/x86_64 prompt/off
  • 以下3つのリスナールールの優先順位を入れ替える。

実行コマンド

AWSCLIでリスナールールのpriorityを設定する際には、以下コマンドを実行します。

  • 1つのリスナールールのpriorityを設定する場合
コマンド
aws elbv2 set-rule-priorities --rule-priorities RuleArn=<リスナールールARN>,Priority=<数字>

複数のリスナールールにpriorityを設定したい場合は、以下のように記載します。

コマンド
aws elbv2 set-rule-priorities --rule-priorities RuleArn=<リスナールールARN>,Priority=<数字> RuleArn=<リスナールールARN>,Priority=<数字>

リスナールールarnは、以下の赤枠の部分をクリックして取得します。

1.リスナールール全てのpriorityを変更する

リスナールール全て(3つ)の優先順位を変更する。

  • 設定

トラブルページ > 通常ページ > メンテナンスページ という優先順位にする。

コマンド
aws elbv2 set-rule-priorities --rule-priorities RuleArn=<トラブルページARN>,Priority=1 RuleArn=<通常ページARN>,Priority=2 RuleArn=<メンテナンスページARN>,Priority=3
実行例
$ aws elbv2 set-rule-priorities --rule-priorities RuleArn=<トラブルページARN>,Priority=1 RuleArn=<通常ページARN>,Priority=2 RuleArn=<メンテナンスページARN>,Priority=3
{
    "Rules": [
        {
            "RuleArn": "<トラブルページARN>",
            "Priority": "1",
            "Conditions": [
                {
                    "Field": "path-pattern",
                    "Values": [
                        "/test"
                    ],
                    "PathPatternConfig": {
                        "Values": [
                            "/test"
                        ]
                    }
                }
            ],
            "Actions": [
                {
                    "Type": "fixed-response",
                    "Order": 1,
                    "FixedResponseConfig": {
                        "MessageBody": "Trouble",
                        "StatusCode": "503",
                        "ContentType": "text/plain"
                    }
                }
            ],
            "IsDefault": false
        },
        {
            "RuleArn": "<通常ページARN>",
            "Priority": "2",
            "Conditions": [
                {
                    "Field": "path-pattern",
                    "Values": [
                        "/test"
                    ],
                    "PathPatternConfig": {
                        "Values": [
                            "/test"
                        ]
                    }
                }
            ],
            "Actions": [
                {
                    "Type": "forward",
                    "TargetGroupArn": "<TargetGroupArn>",
                    "Order": 1,
                    "ForwardConfig": {
                        "TargetGroups": [
                            {
                                "TargetGroupArn": "<TargetGroupArn>",
                                "Weight": 100
                            }
                        ],
                        "TargetGroupStickinessConfig": {
                            "Enabled": false,
                            "DurationSeconds": 3600
                        }
                    }
                }
            ],
            "IsDefault": false
        },
        {
            "RuleArn": "<メンテナンスページARN>",
            "Priority": "3",
            "Conditions": [
                {
                    "Field": "path-pattern",
                    "Values": [
                        "/test"
                    ],
                    "PathPatternConfig": {
                        "Values": [
                            "/test"
                        ]
                    }
                }
            ],
            "Actions": [
                {
                    "Type": "fixed-response",
                    "Order": 1,
                    "FixedResponseConfig": {
                        "MessageBody": "maintenance",
                        "StatusCode": "503",
                        "ContentType": "text/plain"
                    }
                }
            ],
            "IsDefault": false
        }
    ]
}

2.一部のリスナールールのpriorityを変更する

  • 設定

通常ページの優先順位を一番下にする。(priotiryを10に設定)

コマンド
aws elbv2 set-rule-priorities --rule-priorities RuleArn=<リスナールールARN>,Priority=10
実行例
aws elbv2 set-rule-priorities --rule-priorities RuleArn=<リスナールールARN>,Priority=10
{
    "Rules": [
        {
            "RuleArn": "<通常ページARN>",
            "Priority": "10",
            "Conditions": [
                {
                    "Field": "path-pattern",
                    "Values": [
                        "/test"
                    ],
                    "PathPatternConfig": {
                        "Values": [
                            "/test"
                        ]
                    }
                }
            ],
            "Actions": [
                {
                    "Type": "forward",
                    "TargetGroupArn": "<TargetGroupArn>",
                    "Order": 1,
                    "ForwardConfig": {
                        "TargetGroups": [
                            {
                                "TargetGroupArn": "<TargetGroupArn>",
                                "Weight": 100
                            }
                        ],
                        "TargetGroupStickinessConfig": {
                            "Enabled": false,
                            "DurationSeconds": 3600
                        }
                    }
                }
            ],
            "IsDefault": false
        }
    ]
}

参考

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/set-rule-priorities.html

Discussion