[go] Go 언어를 사용하여 AWS Route 53으로 도메인 관리하기
AWS Route 53은 Amazon Web Services의 호스팅 및 DNS 서비스로, 도메인 이름 관리를 쉽게 할 수 있습니다. 이제 Go 언어를 사용하여 AWS SDK를 통해 Route 53을 효과적으로 관리하는 방법을 알아보겠습니다.
전제 조건
- 이 예제는 AWS SDK for Go의 사용을 전제로 합니다. (https://github.com/aws/aws-sdk-go)
- AWS 계정 및 Route 53 도메인이 필요합니다.
SDK 설치 및 환경 설정
먼저, Go 언어에서 AWS SDK를 사용하기 위해 SDK를 설치하고 환경을 설정해야 합니다. 아래는 AWS SDK for Go를 설치하는 명령어입니다.
go get -u github.com/aws/aws-sdk-go
SDK를 설치하면, AWS 인증 정보를 설정해야 합니다. 환경 변수 또는 공유 자격 증명 파일을 통해 AWS 클라이언트를 만들 수 있습니다.
sess, err := session.NewSession(&aws.Config{
Region: aws.String("ap-northeast-2")},
)
svc := route53.New(sess)
도메인 레코드 생성
이제 Route 53을 사용하여 도메인 레코드를 생성할 수 있습니다. 아래는 CNAME 레코드를 생성하는 예제입니다.
input := &route53.ChangeResourceRecordSetsInput{
ChangeBatch: &route53.ChangeBatch{
Changes: []*route53.Change{
{
Action: aws.String("CREATE"),
ResourceRecordSet: &route53.ResourceRecordSet{
Name: aws.String("subdomain.example.com"),
Type: aws.String("CNAME"),
TTL: aws.Int64(300),
ResourceRecords: []*route53.ResourceRecord{
{
Value: aws.String("example.com"),
},
},
},
},
},
},
HostedZoneId: aws.String("HOSTED_ZONE_ID"),
}
result, err := svc.ChangeResourceRecordSets(input)
도메인 레코드 삭제
기존에 존재하는 도메인 레코드를 삭제할 수도 있습니다. 아래는 위에서 생성한 CNAME 레코드를 삭제하는 예제입니다.
input := &route53.ChangeResourceRecordSetsInput{
ChangeBatch: &route53.ChangeBatch{
Changes: []*route53.Change{
{
Action: aws.String("DELETE"),
ResourceRecordSet: &route53.ResourceRecordSet{
Name: aws.String("subdomain.example.com"),
Type: aws.String("CNAME"),
TTL: aws.Int64(300),
ResourceRecords: []*route53.ResourceRecord{
{
Value: aws.String("example.com"),
},
},
},
},
},
},
HostedZoneId: aws.String("HOSTED_ZONE_ID"),
}
result, err = svc.ChangeResourceRecordSets(input)
마무리
이제 Go 언어를 사용하여 AWS Route 53을 통해 도메인 관리 및 레코드 조작을 하는 방법을 알게 되었습니다. 필요에 따라 다양한 레코드 유형과 작업을 수행할 수 있으며, 자신의 도메인을 프로그래밍 방식으로 유연하게 관리할 수 있습니다.