[go] Go 언어를 사용하여 AWS CloudWatch 지표 모니터링하기

본 포스트에서는 Go 언어를 사용하여 AWS CloudWatch 서비스에서 지표를 조회하고 모니터링하는 방법에 대해 알아보겠습니다.

AWS SDK 설치

Go 언어에서는 AWS 공식 SDK를 사용하여 AWS 서비스에 액세스할 수 있습니다. SDK를 설치하려면 다음 명령을 실행하세요.

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

AWS CloudWatch 지표 조회하기

다음 예제는 Go를 사용하여 AWS CloudWatch 서비스에서 지표를 조회하는 간단한 코드입니다.

package main

import (
    "fmt"
    "os"

    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/cloudwatch"
)

func main() {
    sess, err := session.NewSession(&aws.Config{
        Region: aws.String("your-aws-region")},
    )

    if err != nil {
        fmt.Println("Error creating session ", err)
        return
    }

    svc := cloudwatch.New(sess)

    input := &cloudwatch.GetMetricDataInput{
        EndTime:    aws.Time(time.Now()),
        MetricDataQueries: []*cloudwatch.MetricDataQuery{
            &cloudwatch.MetricDataQuery{
                Id:    aws.String("m1"),
                MetricStat: &cloudwatch.MetricStat{
                    Metric: &cloudwatch.Metric{
                        Namespace:  aws.String("AWS/EC2"),
                        MetricName: aws.String("CPUUtilization"),
                        Dimensions: []*cloudwatch.Dimension{
                            &cloudwatch.Dimension{
                                Name:  aws.String("InstanceId"),
                                Value: aws.String("your-instance-id"),
                            },
                        },
                    },
                    Period: aws.Int64(300),
                    Stat:   aws.String("Average"),
                },
            },
        },
        StartTime: aws.Time(time.Now().Add(-24 * time.Hour)),
    }

    result, err := svc.GetMetricData(input)
    if err != nil {
        fmt.Println("Error getting CloudWatch metrics", err)
        return
    }

    fmt.Println(result)
}

위의 예제 코드에서 your-aws-regionyour-instance-id를 알맞게 변경해야 합니다.

결론

이제 Go 언어로 AWS CloudWatch 지표를 조회하고 모니터링하는 방법을 알아보았습니다. 추가적인 기능과 사용법은 AWS 공식 문서를 참고하시기 바랍니다.