[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-region
및 your-instance-id
를 알맞게 변경해야 합니다.
결론
이제 Go 언어로 AWS CloudWatch 지표를 조회하고 모니터링하는 방법을 알아보았습니다. 추가적인 기능과 사용법은 AWS 공식 문서를 참고하시기 바랍니다.