

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

# Amazon S3를 위한 교차 리전 액세스
<a name="s3-cross-region"></a>

Amazon Simple Storage Service(Amazon S3) 버킷으로 작업하면 일반적으로 버킷의 AWS 리전를 알 수 있습니다. 사용하는 리전전은 S3 클라이언트를 생성할 때 결정됩니다.

하지만 특정 버킷으로 작업해야 하는데 해당 버킷이 S3 클라이언트에 설정된 동일한 리전전에 있는지 알 수 없는 경우가 있습니다.

버킷 리전전을 결정하기 위해 더 많은 호출을 하는 대신 SDK를 사용하여 여러 리전전의 S3 버킷에 액세스할 수 있도록 할 수 있습니다.

## 설정
<a name="s3-cross-region-setup"></a>

SDK `2.20.111` 버전에서 교차 리전 액세스에 대한 지원을 사용할 수 있게 되었습니다. 다음 코드 조각과 같이 Maven 빌드 파일의 `s3` 종속 항목에 대해 이 버전 또는 이후 버전을 사용하세요.

```
<dependency>
  <groupId>software.amazon.awssdk</groupId>
  <artifactId>s3</artifactId>
  <version>2.27.21</version>
</dependency>
```

다음으로 S3 클라이언트를 생성할 때 코드 조각에 표시된 대로 교차 리전 액세스를 활성화하세요. 기본적으로 액세스가 활성화되어 있지 않습니다.

```
S3AsyncClient client = S3AsyncClient.builder()
                                    .crossRegionAccessEnabled(true)
                                    .build();
```

## SDK가 교차 리전 액세스를 제공하는 방법
<a name="s3-cross-region-routing"></a>

`putObject` 메서드를 사용할 때와 같이 요청에서 기존 버킷을 참조하면 SDK가 클라이언트용으로 구성된 리전전에 대한 요청을 시작합니다.

특정 리전전에 버킷이 없는 경우 오류 응답에는 버킷이 있는 실제 리전전이 포함됩니다. 그러면 SDK는 두 번째 요청에서 올바른 리전전을 사용합니다.

동일한 버킷에 대한 향후 요청을 최적화하기 위해 SDK는 이 리전전 매핑을 클라이언트에 캐시합니다.

## 고려 사항
<a name="s3-cross-region-considerations"></a>

교차 리전 버킷 액세스를 활성화하는 경우, 버킷이 클라이언트의 구성된 리전전에 있지 않으면 첫 번째 API 호출 시 지연 시간이 늘어날 수 있다는 점에 유의하세요. 하지만 후속 호출은 캐시된 리전전 정보를 활용하므로 성능이 향상됩니다.

교차 리전 액세스를 활성화해도 버킷 액세스는 영향을 받지 않습니다. 사용자는 버킷이 상주하는 리전전에 상관없이 버킷에 액세스할 수 있는 권한을 부여받아야 합니다.