이번에는 SQS를 사용하는 방법을 알아보겠습니다.
1. 의존성 추가
build.gradle에 아래의 내용을 추가해준다.
// 클라우드 사용을 위한 의존성 추가
implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-aws', version: '2.2.1.RELEASE'
implementation group: 'org.springframework.cloud', name: 'spring-cloud-aws-messaging', version: '2.2.3.RELEASE'
// Auto Configure 없으면 안된다
implementation group: 'org.springframework.cloud', name: 'spring-cloud-aws-autoconfigure', version: '2.2.3.RELEASE'
2. config 설정
public class AmazonSqsConfig {
// aws access-key
@Value("${cloud.aws.credentials.access-key}")
private String accessKey;
// aws secret-key
@Value("${cloud.aws.credentials.secret-key}")
private String secretKey;
// sqs 리전 정보
@Value("${cloud.aws.region.static}")
private String region;
// sqs 접근을 위한 위한 사용자 bean 설정
@Primary
@Bean
public AmazonSQSAsync amazonSQSAws() {
BasicAWSCredentials awsCreds = new BasicAWSCredentials(accessKey, secretKey);
return AmazonSQSAsyncClientBuilder.standard()
.withRegion(region)
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.build();
}
}
3. service 클래스 생성
public class MainService {
// sqs에 저장한 이름
@Value("${cloud.aws.sqs.name}")
private String sqsName;
private final QueueMessagingTemplate queueMessagingTemplate;
@Autowired
public MainService(AmazonSQS amazonSQS) {
this.queueMessagingTemplate = new QueueMessagingTemplate((AmazonSQSAsync) amazonSQS);
}
// 저장한 메세지(=유저 정보) 가져오기
public void getUserMessage() {
// 여러 정보가 있어서 선입선출로 인하여 제일 먼저 넣었던 메세지를 꺼내오고, 그 메세지를 삭제한다.
UserDto userDto = queueMessagingTemplate.receiveAndConvert(sqsName, UserDto.class);
System.out.println("SQS로부터 받은 메시지 : " + userDto.toString());
}
// 메세지 저장
public void sendMessage(UserDto userDto) {
log.info("SQS에 메세지 저장");
queueMessagingTemplate.convertAndSend(sqsName, userDto); // 저장할 큐 이름, 메세지
}
}
'AWS' 카테고리의 다른 글
[AWS] SQS 개념, 기능 (0) | 2023.02.13 |
---|---|
AWS 결제 대시보드 확인하기 (0) | 2023.02.01 |
[AWS] Elastic Beanstalk에 https 적용하기 (2) (2) | 2023.01.30 |
[AWS] Elastic Beanstalk에 https 적용하기 (1) (0) | 2023.01.29 |
[AWS] Mac EC2 ssh 접속 하기 (0) | 2023.01.26 |