[go] Go 언어를 사용하여 AWS EC2 인스턴스 관리하기

AWS에서 EC2 인스턴스를 관리하고 제어하는 자동화된 프로세스는 클라우드 기반 응용 프로그램을 운영하는 데 필수적입니다. Go 언어로 작성된 프로그램을 사용하면 이러한 작업을 간편하게 수행할 수 있습니다. 이 글에서는 Go 언어를 사용하여 AWS EC2 인스턴스를 프로그래밍적으로 관리하는 방법에 대해 살펴보겠습니다.

1. AWS SDK 설치

AWS SDK를 사용하여 Go 프로그램에서 AWS 서비스를 제어할 수 있습니다. AWS SDK for Go는 Go로 AWS 서비스에 연결할 수 있도록 지원하는 공식 라이브러리입니다.

먼저, AWS SDK for Go를 설치합니다.

go get -u github.com/aws/aws-sdk-go/...

2. AWS 인증 정보 설정

AWS 서비스를 사용하려면 AWS 자격 증명이 필요합니다. AWS 자격 증명은 보안 자격 증명 관리 및 통합 서비스(IAM)를 통해 관리됩니다. 프로그램에서는 보안 자격 증명을 로드하여 AWS 서비스에 연결할 수 있습니다.

sess, err := session.NewSession(&aws.Config{
    Region: aws.String("ap-northeast-2")},
)
if err != nil {
    log.Fatal(err)
}
svc := ec2.New(sess)

위의 예제 코드에서 ap-northeast-2는 AWS 리전을 나타내며, 해당 리전에 있는 EC2 인스턴스에 연결됩니다.

3. EC2 인스턴스 제어

이제 Go 언어를 사용하여 EC2 인스턴스를 시작하거나 중지하는 방법을 알아봅시다.

인스턴스 시작

input := &ec2.StartInstancesInput{
    InstanceIds: []*string{
        aws.String("i-1234567890abcdef0"),
    },
}
result, err := svc.StartInstances(input)
if err != nil {
    log.Println("Error", err)
    return
}
log.Println("Success", result)

인스턴스 중지

input := &ec2.StopInstancesInput{
    InstanceIds: []*string{
        aws.String("i-1234567890abcdef0"),
    },
}
result, err := svc.StopInstances(input)
if err != nil {
    log.Println("Error", err)
    return
}
log.Println("Success", result)

위의 예제 코드에서 i-1234567890abcdef0은 시작하거나 중지할 EC2 인스턴스의 ID를 나타냅니다.

결론

이제 Go 언어를 사용하여 AWS EC2 인스턴스를 모니터링하고 제어하는 방법을 배웠습니다. 이를 통해 클라우드 기반 응용 프로그램을 보다 효과적으로 관리할 수 있게 되었습니다. Go 언어와 AWS SDK를 이용하여 자신만의 자동화된 프로세스를 구축해 보세요.