AWS SQS에서 오류 메시지 처리하기: 수동 삭제로 해결하는 방법
·
AWS/SNS, SQS
이번에는 SQS 메시지의 수신 오류가 발생한 상황을 어떻게 해결할지 알아보자 스프링 부트에서 SQS를 사용하여 메시지를 처리하던 중 오류가 발생했다. 초기에는 이 오류를 @SqsListener 메서드 내부에서 발생한 문제로 생각하여 스프링 코드를 수정했지만, 여전히 같은 오류가 발생했다. 그래서 오류의 원인을 찾아보던 중 중요한 사실을 알게 되었다. 이전에 발생한 오류는 SQS의 메시지 내부에 문제가 있었기 때문이다. SQS 메시지 자체에 문제가 있었기 때문에 해당 메시지는 계속해서 처리되지 않았다. 그리고 오류가 발생한 메시지는 계속해서 큐에서 polling되고 있었다. 이로 인해 같은 오류 메시지가 300번 이상 polling되는 상황이 발생했다. 이번 포스트에서는 오류가 발생한 SQS메시지가 제대로..
[AWS ECR] Docker Buildx로 ARM 전용 Docker 이미지 빌드하기
·
AWS/ECS, ECR
이번 포스트에서는 ECR에 arm전용 Docker이미지를 푸시하는 과정을 설명한다. AWS에서 ECS를 사용할 때, 때때로 ARM 아키텍처 기반의 EC2 인스턴스에 맞는 Docker 이미지를 ECR에 올려야 할 상황이 생길 수 있다. 예를 들어 나는 ECS클러스터를 만들 때 기존에는 x86 아키텍처 기반이었던 t3.small을 사용하다 이번에 사양을 올리기 위해 arm아키텍처 기반의 t4g.medium으로 업그레이드하게 되었다. 이때 ECS를 기동 하니 아키텍처 관련 이미지 실행 오류가 발생했다. 이렇게 아키텍처가 변경된 상황에서 빌드한 Docker이미지와 관련해서 발생할 수 있는 문제들과 이를 해결하기 위해 Docker Buildx를 사용하는 방법에 대해 설명하겠다. 이 글은 기존에 CodeBuild ..
[AWS ECR] Docker Buildx로 ARM 이미지 빌드 및 푸시 (x86 기준)
·
AWS/ECS, ECR
x86 환경에서 Docker Buildx를 사용하여 이미지를 ARM용으로 빌드해서 ECR에 푸시해 보자 이전에 분명 m1의 docker 빌드 후 배포 시 format 문제로 글을 올린 적이 있었다. 그때는 format 오류가 발생한 이유는 내 로컬 PC가 m1맥북이고 EC2가 x86을 사용하는 t3.small 인스턴스였기 때문이었는데 이런 경우에는 당연히 로컬에서 빌드하면 arm용 이미지로 빌드되었기 때문에 배포하면 아키텍처가 다르다고 나왔다. 지금은 반대의 상황일 때의 해결방법이다. 만약 내 pc가 x86 아키텍처이고 ECS의 인스턴스가 arm이라면 어떻게 해야 할까? 이것에 대해 설명하도록 하겠다. 이 내용은 다음 편에 작성될 CodeBuild에서 arm 이미지를 빌드하는 과정에서 배우게 된 내용이니..
[AWS] ECS로 MSA인프라 구현하기
·
AWS/ECS, ECR
마이크로서비스 아키텍처의 깊이 있는 이해: AWS ECS를 활용한 심화 전략과 최적화 AWS ECS를 이용한 마이크로서비스 아키텍처의 성공적인 구현은 단순한 기술 구축을 넘어선다. 이번 포스트에서는 AWS ECS를 활용한 마이크로서비스 아키텍처의 심화된 전략과 최적화 방법을 탐색한다. 우리는 로드 밸런싱, 서비스 디스커버리, Auto Scaling 등과 같은 고급 기능을 살펴볼 것이며, 이러한 기능들이 실제 비즈니스 환경에서 어떻게 적용될 수 있는지를 보여주는 사례 연구를 통해 이해를 깊게 할 것이다. 1. 서비스 디스커버리와 네트워킹 전략 1-1. AWS Cloud Map을 사용한 서비스 디스커버리 AWS Cloud Map은 서비스 디스커버리를 위한 강력한 도구이다. 예를 들어, 여러 마이크로서비스가 ..
[AWS ECS] ECS로 MSA 구현하기
·
AWS/ECS, ECR
클라우드의 혁신: AWS ECS를 통한 MSA 구현과 관리 클라우드 컴퓨팅과 마이크로서비스 아키텍처는 현대의 소프트웨어 개발에서 중요한 트렌드가 되었다. 이러한 환경에서 AWS의 Elastic Container Service(ECS)는 마이크로서비스 아키텍처(MSA)를 구현하고 관리하는 데 강력한 도구로 자리 잡았다. 이번 포스트에서는 AWS ECS의 기본 개념을 탐구하고, 마이크로서비스 아키텍처를 효과적으로 구현하는 데 있어서 ECS가 어떤 역할을 하는지에 대해 살펴보도록 하자 이번 포스트를 통해 AWS ECS를 사용하여 마이크로서비스 아키텍처를 구축하는 방법의 기본을 이해하게 될 것이다. 이 글이 ECS를 사용하여 MSA를 구축하고자 하는 분들께 도움이 되었으면 좋겠다. 1. AWS ECS와 마이크로..
AWS Message-Driven 4편: SNS와 SQS를 SpringBoot에 연동하기
·
AWS/SNS, SQS
이번 포스트에서는 SNS, SQS를 SpringBoot와 연동해 보자 1. SpringBoot 설정하기 1-1. SpringBoot 의존성 추가 (Build.gradle 파일) AWS의 메시지 서비스인 SQS(Simple Queue Service)와 SNS(Simple Notification Service)를 Spring Boot 애플리케이션과 통합하기 위한 의존성을 추가한다. 아래와 같이 코드를 작성한다. // AWS implementation platform("io.awspring.cloud:spring-cloud-aws-dependencies:3.0.1") implementation 'io.awspring.cloud:spring-cloud-aws-starter-sqs' implementation '..
AWS Message-Driven 완성 3편: SNS와 SQS 연동 및 테스트 전략
·
AWS/SNS, SQS
이번 포스트에서는 SNS와 SQS를 연동해 보도록 하자 1. SNS 주제(Topic) 구독 생성 1. SQS로 들어가기 구독을 위해서는 SNS가 아닌 SQS에서 구독하는게 더 확실하다. 하단과 같이 우측의 메뉴바에서 “대기열”을 클릭하자 1-2. 대기열 이름 클릭하기 대기열에 보이는 목록중에 이름을 클릭해서 들어간다. 이름을 클릭해서 세부 정보 페이지로 들어왔다면 하단의 "SNS구독"이라는 목록을 확인하자 1-3. Amazon SNS주제(topic) 구독하기 하단의 Amazon SNS 주제 구독 버튼을 누른다. 1-4. SQS가 구독할 SNS의 주제 선택하기 하단 박스처럼 내가 SNS의 주제를 선택해서 구독할 수가 있다. 1-5. 주제 구독완료 저장 버튼을 누르면 아래와 같은 팝업창이 나오면서 주제 구독..
AWS Message-Driven 실전 2편: SQS 구축과 테스트 검증
·
AWS/SNS, SQS
이번 포스트에서는 SQS를 설정하고 테스트까지 해보도록 하자 1. SQS란 무엇인가? 1-1. SQS(Simple Queue Service) AWS에서 제공하는 완전 관리형 메시지 큐 서비스로, 분산 시스템에서 메시지를 저장하고 전달하는 데 사용된다. 이 서비스를 사용하면 서버리스 마이크로서비스, 분산 시스템, 서버 기반 애플리케이션 간에 안정적이고 확장 가능하며 느슨하게 결합된 통신을 구현할 수 있다. 1-2. SQS의 기능과 장점 탈중앙화 및 비동기 처리 SQS를 사용하면 메시지를 큐에 저장하여 애플리케이션의 각 부분이 자신의 속도로 처리할 수 있다. 이는 시스템 간의 탈중앙화를 가능하게 하고, 피크 시간에 발생하는 부하를 관리하는 데 도움이 된다. 확장성 및 내구성 SQS는 자동으로 확장되므로, 처..