View a markdown version of this page

Amazon EC2에 대한 쿼리 요청 - - Amazon Elastic Compute Cloud

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

Amazon EC2에 대한 쿼리 요청

쿼리 요청은 HTTP 동사 GET 또는 POST와 라는 쿼리 파라미터를 사용하는 HTTP 또는 HTTPS 요청입니다Action. 각 Amazon EC2 API 작업에 대해 GET 또는 POST를 사용할지 여부를 선택할 수 있습니다. 선택한 동사에 관계없이 동일한 데이터가 전송 및 수신됩니다. Amazon EC2 API 작업 목록은 작업을 참조하세요.

GET 요청의 구조

Amazon EC2 설명서는 브라우저에서 직접 사용할 수 있는 URLs로 GET 요청을 제공합니다.

참고

GET 요청은 URLs이므로 파라미터 값을 URL로 인코딩해야 합니다. Amazon EC2 설명서에서는 읽기 쉽도록 GET 요청 예제를 인코딩되지 않은 상태로 둡니다.

요청은 다음으로 구성됩니다.

  • 엔드포인트: 웹 서비스의 진입점 역할을 하는 URL입니다. 자세한 내용은 Amazon EC2 서비스 엔드포인트를 참조하세요.

  • 작업: 수행할 작업입니다. 예를 들어 RunInstances를 사용하여 인스턴스를 시작합니다.

  • 파라미터: 작업에 대한 모든 파라미터입니다. 각 파라미터는 앰퍼샌드(&)로 구분됩니다.

  • 버전: 사용할 API 버전입니다. Amazon EC2 API의 경우 버전은 2016-11-15입니다.

  • 권한 부여 파라미터:가 요청의 유효성 및 신뢰성을 보장하기 위해 AWS 사용하는 권한 부여 파라미터입니다. Amazon EC2는 서명 버전 2 및 서명 버전 4를 지원합니다. 시그니처 버전 4를 사용하는 것이 좋습니다. 자세한 내용은 IAM 사용 설명서AWS API 요청 서명을 참조하세요.

다음과 같은 선택적 파라미터를 요청에 포함할 수 있습니다.

  • DryRun: 실제로 요청하지 않고 작업에 필요한 권한이 있는지 확인합니다. 필요한 권한이 있는 경우 요청은를 반환하고, DryRunOperation그렇지 않으면를 반환합니다UnauthorizedOperation.

  • SecurityToken:에 대한 호출을 통해 얻은 임시 보안 토큰입니다 AWS Security Token Service.

API 요청의 공통 파라미터에 대한 자세한 내용은 공통 쿼리 파라미터를 참조하세요.

다음은 인스턴스를 시작하는 요청의 예입니다.

https://ec2.amazonaws.com/?Action=RunInstances&ImageId=ami-2bb65342&MaxCount=3&MinCount=1&Placement.AvailabilityZone=us-east-1a&Monitoring.Enabled=true&Version=2016-11-15&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIDEXAMPLE%2F20130813%2Fus-east-1%2Fec2%2Faws4_request&X-Amz-Date=20130813T150206Z&X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-date&X-Amz-Signature=525d1a96c69b5549dd78dbbec8efe264102288b83ba87b7d58d4b76b71f59fd2 Content-type: application/json host:ec2.amazonaws.com

이러한 예제 요청을 더 쉽게 읽을 수 있도록 하기 위해 AWS 문서는 다음 형식으로 요청을 표시할 수 있습니다.

https://ec2.amazonaws.com/?Action=RunInstances &ImageId=ami-2bb65342 &MaxCount=3 &MinCount=1 &Placement.AvailabilityZone=us-east-1a &Monitoring.Enabled=true &Version=2016-11-15 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIAIOSFODNN7EXAMPLEus-east-1%2Fec2%2Faws4_request &X-Amz-Date=20130813T150206Z &X-Amz-SignedHeaders=content-type%3Bhost%3Bx-amz-date &X-Amz-Signature=ced6826de92d2bdeed8f846f0bf508e8559e98e4b0194b84example54174deb456c Content-type: application/json host:ec2.amazonaws.com

첫 번째 줄은 요청의 엔드포인트를 지정합니다. 엔드포인트 뒤의 물음표(?)는 엔드포인트와 파라미터를 구분합니다. Amazon EC2 엔드포인트에 대한 자세한 내용은 Amazon EC2 서비스 엔드포인트를 참조하세요.

Action 파라미터는 수행할 작업을 나타냅니다. 작업의 전체 목록은 작업을 참조하세요. 나머지 줄은 요청에 대한 추가 파라미터를 지정합니다.

Amazon EC2 API 설명서에 나와 있는 쿼리 요청 예제에서는 작업의 파라미터에 더 쉽게 집중할 수 있도록 헤더, 공통 필수 파라미터 및 인증 파라미터를 생략합니다. 이를 &AUTHPARAMS 리터럴 문자열로 대체하여 요청에 이러한 파라미터를 포함해야 함을 알려줍니다. 예를 들면 다음과 같습니다.

https://ec2.amazonaws.com/?Action=RunInstances &ImageId=ami-2bb65342 &MaxCount=3 &MinCount=1 &Placement.AvailabilityZone=us-east-1a &Monitoring.Enabled=true &AUTHPARAMS
중요

AWSAccessKeyId 또는 Credential 파라미터에 대한 액세스 키 ID를 지정하기 전에 AWS 보안 자격 증명의 지침을 검토하고 따르십시오.

쿼리 파라미터

각 쿼리 요청에는 작업의 인증 및 선택을 처리하는 데 필요한 공통 파라미터가 포함되어야 합니다. 쿼리 파라미터는 대/소문자를 구분합니다.

일부 작업은 파라미터의 목록을 허용합니다. 이러한 목록은 param.n 표기법을 사용하여 지정됩니다. 여기서 n은 1부터 시작하는 정수입니다.

다음 예시에서는 BlockDeviceMapping 파라미터 목록을 사용하여 블록 디바이스 매핑에 여러 디바이스를 추가합니다.

http://ec2.amazonaws.com/?Action=RunInstances &ImageId.1=ami-72aa081b ... &BlockDeviceMapping.1.DeviceName=/dev/sdj &BlockDeviceMapping.1.Ebs.NoDevice=true &BlockDeviceMapping.2.DeviceName=/dev/sdh &BlockDeviceMapping.2.Ebs.VolumeSize=300 &BlockDeviceMapping.3.DeviceName=/dev/sdc &BlockDeviceMapping.3.VirtualName=ephemeral1 &AUTHPARAMS

쿼리 API 인증

HTTP 또는 HTTPS 프로토콜을 통해 쿼리 요청을 보낼 수 있습니다.

사용하는 프로토콜에 관계없이 모든 쿼리 요청에 서명을 포함해야 합니다. Amazon EC2는 서명 버전 2 및 서명 버전 4를 지원합니다. 시그니처 버전 4를 사용하는 것이 좋습니다. 자세한 내용은 IAM 사용 설명서AWS API 요청 서명을 참조하세요.

서명 버전 4 요청을 사용하면 단일 헤더에서 모든 권한 부여 파라미터를 지정할 수 있습니다. 예를 들면 다음과 같습니다.

Content-Type: application/x-www-form-urlencoded; charset=UTF-8 X-Amz-Date: 20130813T150211Z Host: ec2.amazonaws.com Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/202230813/us-east-1/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=ced6826de92d2bdeed8f846f0bf508e8559e98e4b0194b84example54174deb456c http://ec2.amazonaws.com/?Action=RunInstances ImageId=ami-2bb65342 &MaxCount=3 &MinCount=1 &Monitoring.Enabled=true &Placement.AvailabilityZone=us-east-1a &Version=2016-11-15

쿼리 응답 구조

쿼리 요청에 대한 응답으로 서비스는 Amazon EC2에 대해 정의된 XML 스키마를 준수하는 XML 데이터 구조를 반환합니다. XML 응답의 구조는 연결된 요청에 따라 다릅니다. 일반적으로 응답 데이터 형식은 수행된 작업과 데이터 형식이 컨테이너(하위가 있을 수 있음)인지 여부에 따라 이름이 지정됩니다. 컨테이너의 예로는 보안 그룹의 groupSet 경우 , 키 페어의 keySet 경우가 있습니다(다음 예제 참조). 항목 요소는 컨테이너의 하위 요소이며 그 내용은 컨테이너의 역할에 따라 달라집니다.

성공한 모든 응답에는 requestId 요소의 요청 ID가 포함되고 실패한 모든 응답에는 RequestID 요소의 요청 ID가 포함됩니다. 값은가 AWS 할당하는 고유한 문자열입니다. 특정 요청에 문제가 있는 경우 AWS 는 문제 해결에 도움이 되도록 요청 ID를 요청합니다. 다음은 응답의 예입니다.

<DescribeKeyPairsResponse xmlns="http://ec2.amazonaws.com/doc/2016-11-15/"> <requestId>7a62c49f-347e-4fc4-9331-6e8eEXAMPLE</requestId> <keySet> <item> <keyName>gsg-keypair</keyName> <keyFingerprint> 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 </keyFingerprint> </item> </keySet> </DescribeKeyPairsResponse>
고려 사항
  • 2024년 7월 31일부터 새로운 Amazon EC2 API 작업 또는 새로 지원되는 AWS 리전의 경우 응답의 XML 데이터 구조에 새 줄과 들여쓰기가 포함되지 않습니다. 사용자 지정 클라이언트를 사용하는 경우 새 줄과 들여쓰기를 포함한 응답에 의존하지 않아야 합니다.

  • 2025년 7월 31일부터 응답의 XML 데이터 구조에는 더 이상 새 줄과 들여쓰기가 포함되지 않습니다. 이렇게 변경하면 응답의 크기가 줄어듭니다. 사용자 지정 클라이언트를 사용하는 경우 새 줄과 들여쓰기를 포함한 응답에 의존하지 않아야 합니다.

  • 중첩 구조 내의 요소를 포함하여 응답의 요소 순서는 다를 수 있습니다. 애플리케이션은 요소가 특정 순서로 나타나는 것으로 가정해서는 안 됩니다.

페이지 매김

긴 항목 목록을 반환할 수 있는 작업의 경우 Amazon EC2 API에는 페이지 매김을 지원하는 MaxResults, NextToken (입력) 및 nextToken (출력) 파라미터가 포함됩니다. 페이지 매김을 사용하면의 크기를 지정한 MaxResults 다음 각 호출은 MaxResults 항목에 0을 반환하고를 설정합니다nextToken. 반복할 추가 항목이 있는 경우 nextToken는 null이 아니며 후속 호출의 NextToken 파라미터에 해당 값을 지정하여 다음 항목 세트를 가져올 수 있습니다. 페이지 매김을 사용하면 항목 0개를 포함하여 보다 적은 MaxResults 항목을 수신하더라도 nextToken가 null이 될 때까지 작업을 계속 호출합니다.

IDs 및 목록이 모두 포함된 설명 API 작업을 호출하면 오류가 발생하여 MaxResults요청이 실패합니다InvalidParameterCombination.

와 같이 잠재적으로 많은 결과를 반환할 수 있는 설명 작업을 사용할 때는 페이지 매김을 사용하는 것이 좋습니다DescribeInstances. 페이지 매김을 사용하면 반환되는 항목 수와 이러한 호출이 반환되는 데 걸리는 시간이 제한됩니다.

자세한 내용은 Amazon EC2 개발자 안내서페이지 매김을 참조하세요.

HTTP를 통한 요청 방지

워크로드에서 HTTP를 사용할 필요가 없는 경우 암호화되지 않은 데이터를 전송 및 수신하지 않고 HTTPS를 대신 사용하지 않는 것이 좋습니다. IAM 정책에서 aws:SecureTransport 글로벌 IAM 조건 키를 사용하여 사용자가 HTTP를 통해 요청을 전송하지 못하도록 할 수 있습니다.

다음 예제 정책은 사용자가 HTTP를 통해 요청을 전송하지 못하도록 합니다.

{ "Statement": [ { "Sid": "AllowAllEC2HttpsRequests", "Effect": "Allow", "Action": "ec2:*", "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "aws:SecureTransport": "true" } } } ] }