Skip to content

Custom Domains

컴포넌트에서 커스텀 도메인을 설정하는 방법

커스텀 도메인

SST에서 프론트엔드나 API에 커스텀 도메인을 설정할 수 있습니다. 기본적으로 이 컴포넌트들은 자동으로 URL을 생성합니다. domain을 전달하여 커스텀 도메인을 사용할 수 있습니다.

new sst.aws.Nextjs("MyWeb", {
domain: "example.com"
});

SST는 몇 가지 DNS 프로바이더를 자동으로 지원합니다. AWS Route 53, Cloudflare, Vercel 등이 포함됩니다. 다른 프로바이더는 수동으로 설정해야 합니다.

작동 방식을 살펴보겠습니다.


동작 방식

커스텀 도메인 설정은 두 단계로 이루어집니다.

  1. 도메인 소유권을 확인합니다. AWS의 경우 ACM 인증서를 생성하고 다음 방법으로 확인합니다:
    • 도메인 제공업체에 DNS 레코드를 설정합니다.
    • 도메인 소유자에게 전송된 이메일을 통해 확인합니다.
  2. 도메인이 컴포넌트로 라우팅되도록 DNS 레코드를 추가합니다.

SST는 지원되는 프로바이더에 대해 어댑터 개념을 통해 이러한 단계를 자동으로 수행할 수 있습니다. 이는 주어진 프로바이더에 위의 DNS 레코드를 생성합니다.

어댑터

여러분은 어떤 프로바이더에서 호스팅되는 커스텀 도메인도 사용할 수 있습니다. SST는 AWS, Cloudflare, Vercel의 도메인을 자동으로 지원합니다.


AWS

기본적으로 커스텀 도메인을 설정하면, SST는 해당 도메인이 동일한 AWS 계정의 AWS Route 53에 설정되어 있다고 가정합니다.

{
domain: {
name: "example.com"
}
}

이는 sst.aws.dns 어댑터를 사용하는 것과 동일합니다.

{
domain: {
name: "example.com",
dns: sst.aws.dns()
}
}

Route 53에서 동일한 도메인이 여러 호스팅 영역에 있는 경우, 호스팅 영역을 지정할 수 있습니다.

{
domain: {
name: "example.com",
dns: sst.aws.dns({
zone: "Z2FDTNDATAQYW2"
})
}
}

도메인이 AWS에 호스팅되어 있지만 별도의 AWS 계정에 있는 경우, 수동 설정을 따라야 합니다.


Vercel

여러분의 도메인이 Vercel에 호스팅되어 있다면, 다음 단계를 따라야 합니다.

  1. 앱에 Vercel 프로바이더 추가하기.

    Terminal window
    sst add @pulumiverse/vercel
  2. 환경 변수에 **VERCEL_API_TOKEN**을 설정합니다. 도메인이 팀에 속해 있다면 VERCEL_TEAM_ID도 설정해야 할 수 있습니다.

    Terminal window
    export VERCEL_API_TOKEN=aaaaaaaa_aaaaaaaaaaaa_aaaaaaaa
  3. sst.vercel.dns 어댑터를 사용합니다.

    {
    domain: {
    name: "example.com",
    dns: sst.vercel.dns()
    }
    }

Cloudflare

여러분의 도메인이 Cloudflare에 호스팅되어 있다면, 다음 단계를 따라야 합니다.

  1. 앱에 Cloudflare 프로바이더를 추가합니다.

    Terminal window
    sst add cloudflare
  2. 환경 변수에 **CLOUDFLARE_API_TOKEN**을 설정합니다.

    Terminal window
    export CLOUDFLARE_API_TOKEN=aaaaaaaa_aaaaaaaaaaaa_aaaaaaaa
    export CLOUDFLARE_DEFAULT_ACCOUNT_ID=aaaaaaaa_aaaaaaaaaaaa_aaaaaaaa
  3. sst.cloudflare.dns 어댑터를 사용합니다.

    {
    domain: {
    name: "example.com",
    dns: sst.cloudflare.dns()
    }
    }

수동 설정

위에서 지원되지 않는 프로바이더에 도메인이 있거나 별도의 AWS 계정에 있는 경우, 도메인 소유권을 확인하고 DNS 레코드를 직접 설정해야 합니다.

지원되지 않는 프로바이더에서 도메인을 수동으로 설정하려면 다음 단계를 따라야 합니다:

  1. 도메인 소유권 확인을 위해 ACM 인증서를 생성합니다. DNS 레코드를 설정하거나 도메인 소유자에게 전송된 이메일을 확인하여 검증할 수 있습니다.

    CloudFront 배포를 위한 커스텀 도메인을 구성하는 경우, 도메인 소유권을 증명하는 데 사용되는 ACM 인증서는 us-east-1 리전에서 생성되어야 합니다.

    ApiGatewayV2나 Cluster와 같은 다른 컴포넌트들은 어떤 리전에서든 생성할 수 있습니다.

  2. 검증이 완료되면, 인증서 ARN을 cert로 설정하고 dnsfalse로 설정합니다.

    {
    domain: {
    name: "domain.com",
    dns: false,
    cert: "arn:aws:acm:us-east-1:112233445566:certificate/3a958790-8878-4cdc-a396-06d95064cf63"
    }
    }
  3. 프로바이더에서 DNS 레코드를 추가하여 CloudFront 배포, API Gateway 또는 로드 밸런서 URL을 가리키도록 설정합니다.