

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

# Amazon EC2 API의 최종 일관성
<a name="eventual-consistency"></a>

Amazon EC2 PI를 지원하는 시스템의 분산 특성으로 인해 API는 결과적 일관성 모델을 따릅니다. 이는 Amazon EC2 리소스에 영향을 미치는 API 명령을 실행한 결과가 모든 후속 명령에 즉시 표시되지 않을 수 있음을 의미합니다. 이전 API 명령 바로 다음에 API 명령을 실행할 때는 이 점을 염두에 두어야 합니다.

최종 일관성은 리소스 관리 방식에 영향을 미칠 수 있습니다. 예를 들어, 명령을 실행하여 리소스를 생성하면 결국 다른 명령에 표시됩니다. 즉, 방금 생성한 리소스를 수정하거나 설명하는 명령을 실행하면 ID가 시스템 전체에 전파되지 않았을 수 있으며 리소스가 존재하지 않는다고 응답하는 오류가 발생합니다.

최종 일관성을 관리하려면 다음을 수행할 수 있습니다.
+ 명령을 실행하여 수정하기 전에 리소스의 상태를 확인합니다. 이전 명령이 시스템에 전파될 시간이 충분하도록 지수 백오프 알고리즘을 사용하여 적절한 `Describe` 명령을 실행합니다. 이렇게 하려면 몇 초의 대기 시간으로 시작하여 몇 분까지 점진적으로 증가하는 `Describe` 명령을 반복적으로 실행합니다.
+ `Describe` 명령이 정확한 응답을 반환하더라도 후속 명령 사이에 대기 시간을 추가합니다. 몇 초의 대기 시간으로 시작하는 지수 백오프 알고리즘을 적용하고 몇 분까지 점진적으로 증가시킵니다.

**최종 일관성 오류 예제**  
다음은 최종 일관성의 결과로 발생할 수 있는 오류 코드의 예제입니다.
+ `InvalidInstanceID.NotFound`

  `RunInstances` 명령을 성공적으로 실행한 다음, `RunInstances`의 응답에 제공된 인스턴스 ID를 사용하여 다른 명령을 즉시 실행하면 `InvalidInstanceID.NotFound` 오류가 반환될 수 있습니다. 이는 인스턴스가 존재하지 않는다는 의미는 아닙니다.

  영향을 받을 수 있는 특정 명령은 다음과 같습니다.
  + `DescribeInstances`: 인스턴스의 실제 상태를 확인하려면 지수 백오프 알고리즘을 사용하여 이 명령을 실행합니다.
  + `TerminateInstances`: 인스턴스의 상태를 확인하려면 먼저 지수 백오프 알고리즘을 사용하여 `DescribeInstances` 명령을 실행합니다.
**중요**  
`TerminateInstances` 실행 후 `InvalidInstanceID.NotFound` 오류가 발생한다고 해서 인스턴스가 종료되거나 종료될 것임을 의미하지는 않습니다. 인스턴스가 계속 실행 중일 수 있습니다. 따라서 먼저 `DescribeInstances`를 사용하여 인스턴스의 상태를 확인하는 것이 중요합니다.
+ `InvalidGroup.NotFound`

  `CreateSecurityGroup` 명령을 성공적으로 실행한 다음, `CreateSecurityGroup`의 응답에 제공된 보안 그룹 ID를 사용하여 다른 명령을 즉시 실행하면 `InvalidGroup.NotFound` 오류가 반환될 수 있습니다. 보안 그룹의 상태를 확인하려면 지수 백오프 알고리즘을 사용하여 `DescribeSecurityGroups` 명령을 실행합니다.
+ `InstanceLimitExceeded`

  지정된 인스턴스 유형에 대해 현재 인스턴스 한도가 허용하는 것보다 많은 인스턴스를 요청했습니다. 인스턴스가 종료된 후 잠시 동안 인스턴스 한도에 포함되므로 인스턴스를 빠르게 시작하고 종료하는 경우 예기치 않게 한도에 도달할 수 있습니다.