[go] Go 언어를 사용하여 AWS CloudFront를 통한 콘텐츠 전송하기

AWS CloudFront는 콘텐츠 전송 네트워크(Content Delivery Network, CDN)로, 전 세계 사용자에게 콘텐츠를 신속하게 전달할 수 있습니다. 이 기술 블로그에서는 Go 언어를 사용하여 AWS CloudFront를 통해 콘텐츠를 전송하는 방법에 대해 알아보겠습니다.

AWS SDK 설치 및 설정

우선, Go 언어에서 AWS 서비스를 사용하기 위해 AWS SDK를 설치해야 합니다. Go 언어의 공식 AWS SDK는 aws/aws-sdk-go입니다. 이를 설치하기 위해 먼저 Go 모듈을 초기화합니다.

go mod init myapp

그런 다음 필요한 SDK 모듈을 가져옵니다.

go get github.com/aws/aws-sdk-go@v1

CloudFront API를 사용하여 콘텐츠 전송

SDK가 설정되면, CloudFront API를 사용하여 콘텐츠를 전송할 수 있습니다. 다음은 간단한 예시 코드입니다.

package main

import (
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/cloudfront"
    "fmt"
)

func main() {
    sess := session.Must(session.NewSessionWithOptions(session.Options{
        SharedConfigState: session.SharedConfigEnable,
    }))
    svc := cloudfront.New(sess)

    input := &cloudfront.CreateInvalidationInput{
        DistributionId: aws.String("YOUR_DISTRIBUTION_ID"),
        InvalidationBatch: &cloudfront.InvalidationBatch{
            Paths: &cloudfront.Paths{
                Quantity: aws.Int64(1),
                Items:    []*string{
                    aws.String("/*"),
                },
            },
            CallerReference: aws.String("go-example"),
        },
    }

    result, err := svc.CreateInvalidation(input)
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println(result)
}

위 코드는 CloudFront에 대한 새로운 무효화(invalidation)를 만드는 방법을 보여줍니다. 이를 사용하여 변경된 콘텐츠를 빠르게 전파할 수 있습니다.

마무리

Go 언어를 사용하여 AWS CloudFront를 통해 콘텐츠를 전송하는 방법에 대해 알아보았습니다. 이를 통해 더욱 빠르고 효율적인 콘텐츠 전송을 구현할 수 있습니다.

더 자세한 정보는 아래 AWS 공식 문서를 참조하세요.

CloudFront API Documentation

이상으로 Go 언어와 AWS CloudFront를 사용하여 콘텐츠를 전송하는 방법에 대해 알아보았습니다. 감사합니다!