🕰️ 작성일 : 2025.06.08

Q : ALB을 통해서 요청이 들어왔을때, 도메인을 아래와 같이 리다이렉션 할 수 있을까요?

A : Application Load Balancer의 규칙 추가 시 도메인 조건문을 부여하고, 조건에 해당되는 도메인들은 지정한 도메인으로 리다이렉션 할 수 있습니다.

그러나 ALB의 리다이렉션은 기존의 Path를 변경하여 URL을 리다이렉션은 제공하지 않습니다. 즉 위와 같이 기존의 Path(/auto/bbb/index.html)에 대한 변경은 불가능합니다. 리다이렉트 되는 경로를 기존의 Path에서 첫번째 세그먼트를 삭제하는 ${path:1} 경로로 지정하게 되면 아래와 같이 ALB에서는 에러가 반환됩니다.

image.png

이 경우 Amazon Cloudfront를 ALB와 연동하고, CloudFront Functions 기능을 통해서 Request를 가로채어 Path 값을 동적으로 변경하는 방식으로 구성 할 수 있습니다.

Amazon Cloudfront Functions 예시

function handler(event) {
    var request = event.request;
    var uri = request.uri;
    
    // /auto로 시작하는 경로를 리다이렉션
    if (uri === "/auto" || uri.startsWith("/auto/")) {
        var newUri = uri === "/auto" ? "/" : uri.substring(5);
        var response = {
            statusCode: 301,
            statusDescription: "Moved Permanently",
            headers: {
                "location": {
                    value: newUri
                }
            }
        };
        return response;
    }
    
    // 다른 경로는 그대로 처리
    return request;
}

image.png

테스트하기

vud.gif

결론