AWS CDK v2 でALBを自分好みに!(その4)

ならたけぽん
2024-09-24
2024-09-24

おつかれさまです。ならたけぽんです。🌈

もう9月も後半戦なのに、まだまだ、溶けますねぇ。⛄

いいかげん、もう暑いのは飽きたなぁ、なんて思っていたら、
太陽活動の影響で、数年後にミニ氷河期が来る、なんてお話しもあるそうですね。🌞

そのうち、あぁ、あの暑さが懐かしいなぁ、なんて思うときが来るのかなぁ。

先のことは分からないけれども、そうなっても良いように、
今日も今日とて溶けていきますかね。⛄

というわけで、引き続き溶けながら、
今回も、AWS CDK v2で「ALB(Application Load Balancer)」のリスナーを
設定していきます!🐵

前回は、

import {
    aws_elasticloadbalancingv2 as elbv2,
} from 'aws-cdk-lib';

const listenerHttp = alb.addListener('ListenerHttp', {
    defaultAction: elbv2.ListenerAction.fixedResponse(503, {
        contentType: 'text/html',
        messageBody: "<html lang='en'><body>Service Unavailable!</body></html>"
    }),    
    port: 80
});

const tg = new elbv2.ApplicationTargetGroup(this, 'TG', {
    vpc: vpc,
    protocol: elbv2.ApplicationProtocol.HTTP
});

const listenerHttps = alb.addListener('ListenerHttps', {
    certificates: [{
        certificateArn: 'arn:aws:acm:ap-northeast-1:012345678910:certificate/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
        }],

    defaultTargetGroups: [tg],
    port: 443,
    sslPolicy: elbv2.SslPolicy.FORWARD_SECRECY_TLS12_RES_GCM

});

こんな感じでした。

「defaultAction」以外のアクションを設定するには、
リスナーに「addAction」を設定するだけです。💞😍💞

listenerHttps.addAction('redirect', {
    defaultAction: elbv2.ListenerAction.redirect( {
        host: 'www.future-s.com',
        path: '/',
        permanent: true,
        port: 'www443',
        protocol: elbv2.ApplicationProtocol.HTTPS'www.future-s.com',
        query: ''

    }),    
    conditions: [
        elbv2.ListenerCondition.pathPatterns( [
            '/redirect/*'
        ])
    ],

    priority: 10
});

listenerHttps.addAction('forward', {
    action: elbv2.ListenerAction.forward([tg], {
    }),    
    conditions: [
        elbv2.ListenerCondition.sourceIps( [
            'XXX.XXX.XXX.XXX/32'
        ])
    ],

    priority: 20
});

listenerHttps.addAction('fixedResponse', {
    action: elbv2.ListenerAction.fixedResponse(403, {
        contentType: 'text/html',
        messageBody: "<html lang='en'><body>403!!!</body></html>"
    }),    
    conditions: [
        elbv2.ListenerCondition.hostHeaders( [
            'XXXXXXXX.XXXXXXXX.com'
        ])
    ],
    priority: 30
});

あとは、
「action:」でアクションを設定して、
「conditions:」で条件を設定して、
「priority:」でルールの優先度をつければよいだけ!

「action:」では「redirect」「forward」「fixedResponse」など、
「conditions:」では「pathPattern」「sourceIps」「hostHeaders」など、
お好みで設定できます!

いがっぺ?😎



こうしてALBも盛れたことですし、
次回は新しいサービスにしましょうかね。🙋

さて、そろそろ帰宅しましょうかね、っと。
あれ、いつの間にか、虫たちがチンチロリン、チンチロリン、っと。🎶
そうですか。
やっぱり、秋になりつつあるんですねぇ。
まだまだ暑いけれど、溶けんなよ、虫たち。😎

それでは、良き良き、AWS CDKライフを!!!🌈