Amazon EC2 인스턴스 메타데이터 서비스 - AWS SDK for Go v2

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EC2 인스턴스 메타데이터 서비스

AWS SDK for Go 를 사용하여 Amazon EC2 인스턴스 메타데이터 서비스에 액세스할 수 있습니다. feature/ec2/imds Go 패키지는 Amazon EC2 인스턴스 메타데이터 서비스에 액세스하는 데 사용할 수 있는 클라이언트 유형을 제공합니다. Client 및 관련 작업은 SDK에서 제공하는 다른 AWS 서비스 클라이언트와 유사하게 사용할 수 있습니다. SDK를 구성하고 서비스 클라이언트를 사용하는 방법에 대한 자세한 내용은 SDK 구성 및 섹션을 참조하세요AWS SDK for Go v2를 AWS 서비스와 함께 사용.

클라이언트를 사용하면 AWS 리전 또는 로컬 IP 주소와 같이 애플리케이션이 실행되는 인스턴스에 대한 정보를 쉽게 검색할 수 있습니다. 일반적으로 인스턴스 메타데이터를 검색하려면 HTTP 요청을 생성하고 제출해야 합니다. 대신 다른 AWS 서비스와 같은 프로그래밍 클라이언트를 사용하여 Amazon EC2 인스턴스 메타데이터 서비스에 imds.Client 액세스하려면를 생성합니다.

예를 들어 클라이언트를 구성하는 방법은 다음과 같습니다.

import "context" import "github.com/aws/aws-sdk-go-v2/config" import "github.com/aws/aws-sdk-go-v2/feature/ec2/imds" // ... cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { log.Printf("error: %v", err) return } client := imds.NewFromConfig(cfg)

그런 다음 서비스 클라이언트를 사용하여 local-ipv4 (인스턴스의 프라이빗 IP 주소)와 같은 메타데이터 범주에서 정보를 검색합니다.

localIp, err := client.GetMetadata(context.TODO(), &imds.GetMetadataInput{ Path: "local-ipv4", }) if err != nil { log.Printf("Unable to retrieve the private IP address from the EC2 instance: %s\n", err) return } content, _ := io.ReadAll(localIp.Content) fmt.Printf("local-ip: %v\n", string(content))

모든 메타데이터 범주 목록은 Amazon EC2 사용 설명서의 인스턴스 메타데이터 범주를 참조하세요.