ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS] non www 을 www 으로 redirect 하기 ( Netlify )
    카테고리 없음 2024. 3. 6. 20:36

    1. AWS Route53으로 netlify 에 redirect 하기.

    2. non www 을 www으로 redirect 하기.


    AWS Route53으로 netlify 에 redirect 하기.

    www.lolduo.net 을 netlify 에 배포한 https://lolduo.netlify.app/ 으로 redirect 하기 위해서 CNAME 으로 Route53에서 redirect 해주었습니다.

    AWS Route53 에서 www.lolduo.net 내역

    non www 을 www으로 redirect 하기.

    똑같이 CNAME으로 redirect 하면 되지 않을까 생각하였지만 아래와 같은 에러가 발생합니다.

     잘못된 요청입니다.
    (InvalidChangeBatch 400: RRSet of type CNAME with DNS name lolduo.net. is not permitted at apex in zone lolduo.net.)

     

    단순히 lolduo.netwww.lolduo.net으로 변경할 것이라면 S3의 정적 웹 호스팅을 사용하면 편합니다.

    하지만 모든 경로를 포함해서 리다이렉트가 필요했습니다. 예를 들어 lolduo.net/banpickwww.lolduo.net/banpick  등이 있습니다.

    이를 위해 API Gateway + lambda 로 해결하였습니다.

     

    lambda 생성

    export const handler = async (event) => {
    
        let newLocation = "https://www.lolduo.net" + event.path;
        
        for(let key in event.queryStringParameters) {
            newLocation += (newLocation.includes("?") ? "&" : "?") + key + "=" + event.queryStringParameters[key];
        }
        
        return {
            statusCode: 302,
            headers: { Location: newLocation }
        };
    }

    단순히 들어온 요청을 새로운 www.lolduo.net으로 변경하여 redirect 해주는 lambda를 생성해줍니다.

     

    그런뒤 생성한 Lambda에 API Gateway 트리거를 추가해주고, 모든 경로를 포함한다는 $default 경로를 추가합니다.

    트리거 추가 및 경로 추가

    lamdba에 트리거 추가 및 추가한 API Gateway에 경로 생성

     

    API Gateway에서 사용자 지정 도메인 이름을 생성해야 Route53에서 사용이 가능합니다.

    사용할 도메인 이름을 생성해주고 API 매핑에서 방금 생성해준 Lambda와 연동된 API Gateway를 추가해줍니다.

    사용자 지정 도메인 이름 생성 및 API 매핑

    API Gateway 사용자 지정 도메인 이름 생성 및 API 매핑

     

    마지막으로 Route53에서 방금 생성한 사용자 지정 도메인 이름을 매핑해주면 됩니다.

    Route53 레코드 생성

    Route53의 레코드 생성

     

Designed by Tistory.