JAVA S3Client 설정 중 다른 리전 접속을 위한 VPC Endpoint 적용 에러 문의

0

기존에 리전간 데이터를 복사하는 CopyObject사용 시 설정한 S3Client 에 보안상의 이유로 Endpoint를 적용하게 되며 발생한 연결 에러.

환경 :
aws-java-sdk-1.10 / AP_NORTHEAST_2 리전 : 실행 모듈, A 버켓 / US_WEST_2 리전 : B 버켓

내용 : 실행 모듈에서 A 버켓 -> B 버켓으로 데이터를 복사하는 CopyObject에서 에러 발생으로 모듈에서 각 리전간 접속하는 테스트를 수행하였으며, 다른 리전의 버켓에 접속 시 endpoint로 연결 이 되지 않는 상황으로 이를 해결하기 위한 인프라 또는 개발코드에 적용할 수 있는 부분 문의

  1. 모듈에서 -> AP_NORTHEAST_2 접속 테스트 시 연결 성공
  1. 모듈에서 -> US_WEST_2로 AWS CLI로 endpoint 접속 시 성공
  1. 모듈에서 -> US_WEST_2 접속 테스트 시 연결 실패(Timeout)

3-1.에러 내용 일부

04:03:11 4304770 DEBUG c.a.internal.EC2MetadataClient - Connecting to EC2 instance metadata service at URL: http://169.123.123.123/latest/meta-data/iam/security-credentials/ 04:03:11 4304772 DEBUG c.a.internal.EC2MetadataClient - Connecting to EC2 instance metadata service at URL: http://169.123.123.123/latest/meta-data/iam/security-credentials/test-was-etc 04:04:02 4355137 DEBUG c.a.services.s3.internal.S3Signer - Calculated string to sign: Fri, 31 May 2024 04:04:02 GMT 04:04:02 4355137 DEBUG o.a.h.i.c.PoolingClientConnectionManager - Connection request: [route: {s}->https://test-bucket.s3-us-west-2.amazonaws.com:443][total kept alive: 0; route allocated: 0 of 50; total allocated: 0 of 50] 04:04:02 4355137 DEBUG o.a.h.i.c.PoolingClientConnectionManager - Connection leased: [id: 68][route: {s}->https://test-bucket.s3-us-west-2.amazonaws.com:443][total kept alive: 0; route allocated: 1 of 50; total allocated: 1 of 50] 04:04:02 4355146 DEBUG c.a.h.conn.ssl.SdkTLSSocketFactory - socket.getSupportedProtocols(): [TLSv1.3, TLSv1.2, TLSv1.1, TLSv1, SSLv3, SSLv2Hello], socket.getEnabledProtocols(): [TLSv1.3, TLSv1.2] 04:04:02 4355146 DEBUG c.a.h.conn.ssl.SdkTLSSocketFactory - TLS protocol enabled for SSL handshake: [TLSv1.2, TLSv1.1, TLSv1, TLSv1.3] 04:04:02 4355146 DEBUG o.a.h.i.c.DefaultClientConnectionOperator - Connecting to test-bucket.s3-us-west-2.amazonaws.com:443 04:04:02 4355146 DEBUG c.a.h.conn.ssl.SdkTLSSocketFactory - connecting to test-bucket.s3-us-west-2.amazonaws.com/52.000.000.000:443 04:04:52 4405195 DEBUG o.a.h.i.c.DefaultClientConnection - Connection org.apache.http.impl.conn.DefaultClientConnection@21969787 closed 04:04:52 4405195 DEBUG o.a.h.i.c.DefaultClientConnection - Connection org.apache.http.impl.conn.DefaultClientConnection@21969787 shut down 04:04:52 4405196 DEBUG o.a.h.i.c.DefaultClientConnection - Connection org.apache.http.impl.conn.DefaultClientConnection@21969787 closed 04:04:52 4405196 DEBUG o.a.h.i.c.PoolingClientConnectionManager - Connection released: [id: 68][route: {s}->https://test-bucket.s3-us-west-2.amazonaws.com:443][total kept alive: 0; route allocated: 0 of 50; total allocated: 0 of 50] 04:04:52 4405196 INFO com.amazonaws.http.AmazonHttpClient - Unable to execute HTTP request: Connect timed out

1개 답변
0

안녕하세요.

S3를 SDK를 이용해 Interface Endpoint 를 버킷별로 생성하고 접근하는 시나리오로 이해했습니다.

S3 API는 bucket 관련 제어인지 아니면 S3 제어 관련인지에 따라 Interface Endpoint 앞에 적절한 값이 붙어야 합니다. https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#accessing-bucket-and-aps-from-interface-endpoints

DNS 이름을 사용하여 리소스에 액세스할 때는 *를 적절한 값으로 바꾸십시오. * 대신 사용할 적절한 값은 다음과 같습니다.

  • bucket
  • accesspoint
  • control

예를 들어, 버킷에 액세스하려면 다음과 같은 DNS 이름을 사용합니다.

  • bucket.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com

위 링크에서 약간 내려보시면 엔드포인트 API 타입에 따라 리전과 엔드포인트를 설정하는 예제가 나와있으니 참고하시면 좋을 것 같습니다.

froguin
답변함 2달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인