
제이피
구독자 25명구독중 13명
쓰고 싶은거 다 씀
앱이든 사이트든 서비스에서 필요한 기능을 위해 서버 개발자들은 AWS API를 자주 사용한다.
S3에 파일 업로드 다운로드
SES로 이메일 보내기
Mediapackage VOD 관련 처리
유실되면 안 되는 데이터를 보관하기 위해 서버에서 어떤 작업 후에 그 결과를 S3에 업로드하는 프로세스를 추가했다고 하자. 내 서비스의 클라이언트와 서버 간 처리는 에러 없이 동작했고, 가장 마지막 처리 순서인 백업용 데이터 업로드를 AWS SDK를 사용해서 S3에 파일 업로드 API를 호출하는 코드를 작성한뒤, 테스트 환경에서 잘 동작하는 것을 확인해서 운영 환경에 배포하면 끝일까?
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>InternalError</Code>
<Message>We encountered an internal error. Please try again.</Message>
<RequestId>1Z5J16N23VNC5H1W</RequestId>
<HostId>a21OeKYg8FbP5ViL3ax6vtPByt+TVsiE+j51pjK2fVB8g/TtqhaamzwwwjeL4e3S6vaiqZ3Qz11ZsrI9fZ5uZ5Nf1yeIAEgv</HostId>
</Error>에러가 발생할 가능성을 생각하지 않고 그냥 호출하면 위처럼 AWS 측에서 에러를 응답하는 경우 이미 클라이언트에게 성공을 응답했지만 실제로는 데이터가 유실되는 상황이 발생할 수 있다. 물론 클라이언트에게 결과를 응답하기 전에 업로드를 하고 실패 시 최종 처리 실패 처리를 할 수도 있고 파일 업로드 처리를 아예 다른 메시지 큐를 사용해서 비동기 처리를 하게 할 수도 있지만 중요한 건 AWS API ...