Custom Domains
컴포넌트에서 커스텀 도메인을 설정하는 방법
커스텀 도메인
SST에서 프론트엔드나 API에 커스텀 도메인을 설정할 수 있습니다. 기본적으로 이 컴포넌트들은 자동으로 URL을 생성합니다. domain을 전달하여 커스텀 도메인을 사용할 수 있습니다.
new sst.aws.Nextjs("MyWeb", { domain: "example.com"});SST는 몇 가지 DNS 프로바이더를 자동으로 지원합니다. AWS Route 53, Cloudflare, Vercel 등이 포함됩니다. 다른 프로바이더는 수동으로 설정해야 합니다.
작동 방식을 살펴보겠습니다.
동작 방식
커스텀 도메인 설정은 두 단계로 이루어집니다.
- 도메인 소유권을 확인합니다. AWS의 경우 ACM 인증서를 생성하고 다음 방법으로 확인합니다:
- 도메인 제공업체에 DNS 레코드를 설정합니다.
- 도메인 소유자에게 전송된 이메일을 통해 확인합니다.
- 도메인이 컴포넌트로 라우팅되도록 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에 호스팅되어 있다면, 다음 단계를 따라야 합니다.
-
Terminal window sst add @pulumiverse/vercel -
환경 변수에 **
VERCEL_API_TOKEN**을 설정합니다. 도메인이 팀에 속해 있다면VERCEL_TEAM_ID도 설정해야 할 수 있습니다.Terminal window export VERCEL_API_TOKEN=aaaaaaaa_aaaaaaaaaaaa_aaaaaaaa -
sst.vercel.dns어댑터를 사용합니다.{domain: {name: "example.com",dns: sst.vercel.dns()}}
Cloudflare
여러분의 도메인이 Cloudflare에 호스팅되어 있다면, 다음 단계를 따라야 합니다.
-
앱에 Cloudflare 프로바이더를 추가합니다.
Terminal window sst add cloudflare -
환경 변수에 **
CLOUDFLARE_API_TOKEN**을 설정합니다.Terminal window export CLOUDFLARE_API_TOKEN=aaaaaaaa_aaaaaaaaaaaa_aaaaaaaaexport CLOUDFLARE_DEFAULT_ACCOUNT_ID=aaaaaaaa_aaaaaaaaaaaa_aaaaaaaa -
sst.cloudflare.dns어댑터를 사용합니다.{domain: {name: "example.com",dns: sst.cloudflare.dns()}}
수동 설정
위에서 지원되지 않는 프로바이더에 도메인이 있거나 별도의 AWS 계정에 있는 경우, 도메인 소유권을 확인하고 DNS 레코드를 직접 설정해야 합니다.
지원되지 않는 프로바이더에서 도메인을 수동으로 설정하려면 다음 단계를 따라야 합니다:
-
도메인 소유권 확인을 위해 ACM 인증서를 생성합니다. DNS 레코드를 설정하거나 도메인 소유자에게 전송된 이메일을 확인하여 검증할 수 있습니다.
CloudFront 배포를 위한 커스텀 도메인을 구성하는 경우, 도메인 소유권을 증명하는 데 사용되는 ACM 인증서는
us-east-1리전에서 생성되어야 합니다.ApiGatewayV2나 Cluster와 같은 다른 컴포넌트들은 어떤 리전에서든 생성할 수 있습니다.
-
검증이 완료되면, 인증서 ARN을
cert로 설정하고dns를false로 설정합니다.{domain: {name: "domain.com",dns: false,cert: "arn:aws:acm:us-east-1:112233445566:certificate/3a958790-8878-4cdc-a396-06d95064cf63"}} -
프로바이더에서 DNS 레코드를 추가하여 CloudFront 배포, API Gateway 또는 로드 밸런서 URL을 가리키도록 설정합니다.