본문 바로가기
Project 3

Devops Day 59 (5.30) Project 3_마이크로서비스_Day 4

by Jackykim 2023. 5. 30.

야크쉐이빙 (Yak Shaving)

Project 3 야크쉐이빙 :
Day 3 Step 4 Stock-Lambda 생성하여 factory-api와 연결 하는 과정에서 문제가 발생했습니다.
1. Factory-api 와 연결 위한 코드 작성해서 배포 시도하려고 했으나…AWS Lambda console에 Stock-lambda 생성하여 코드 배포 방법이 없음
2. 그래서 Console로 Stock-Lambda 삭제하고 sls 으로 yaml 파일 작성 해서 이상없이 배포했음
3. 하지만 다른 문제가 발생했음…. Postman이나 AWS CLI 통해 Curl X Post 명령어로 Factory-api 연결 상태 확인했지만…error 메세지가 생김

4. Error 메시지 확인해서 코드 수정하려고 시작했지만… 문제들이 너무 많음.

일단 한 코드에는 Backtick `이 아닌 다운표 ‘ 로 작성 되어 있어 모두 수정했음. 좀더 자세히 보니깐 코드에 Spelling Error 들도 있었음. 예시 Attribute를 Attributes로 작성
- 다른 코드에는 중요한 코드 부분들이 빠져 있어서 코드 추가하고 문법 문제들도 있었음. 에시 문장 앞 req.body. 누락 / {}, 잘못 구성 등
- 코드 모두 수정 후 다시 배포해서 Postman 으로 Post Method 하니깐 Factory-api에 신호가 와서 연결이 된 걸 확인 할 수 있었음. 다만 AWS Cloudwatch 확인 했을 때 Stock-Lambda는 무한 반복으로 트리거를 발동하고 있음. Post을 시도 하지 않아도 계속 트리거가 발동되어 SNS / SQS 비활성화 및 삭제 하는 방법 밖에 없었음.

당시 이 표정만 나옴….

5. SNS / SQS / DLQ 중 하나의 문제가 있다고 판단하여 모두 삭제 하고 다시 생성 및 연결. 확인 해 보니깐 DLQ가 SQS와 잘못 연결되어 무한 트리거 발생했음.
- 다행이 수정하니깐 무한 반복 트리거가 멈췄지만 또 다시 Factory-api하고 연결이 안됨

- 다시 뭔가 문제인지 고민하게 됨

 

6. SNS / SQS 새로 생성하여 새로운 ARN을 AWS Lambda 함수에 수정 및 코드를 수정 하지 않아서 문제가 발생.
- 코드 수정하고 다시 deploy로 업데이트 하였지만 문제는 계속 발생….무슨 문제일까?
7. Cloudformation 들어가 스택 삭제하려고 하니깐 S3 버킷과 버킷 안에 있는 파일 삭제 + 정책 삭제 후 모두 삭제가 가능함.
- 이 과정만 3번 이상했음…
8. 다행이 다 완료하니깐 이상없이 연결됐고, 무한 반복도 안함.

후기 : Lambda – SNS – SQS – DLQ – DB에 대한 실습. 이런 방식으로 마이크로서비스 제공 할 수 있는게 신기하고 생각보다 간편함 다만 AWS 시스템 및 코드에 대한 지식이 있어야 편함. AWS 정책, 각 서비스간의 연결 방식, 각 서비스가 하는 역할을 잘 알고 있어야 한다고 생각함. 그러지 않으면 어떻게 작동하고 왜 작동하는지 잘 모름. 이번 실습은 성공하였으나 팀원 도움들을 많이 받아 아직도 부족한 부분들이 있다는 걸 깨달음. 다시 AWS 정책에 대한 보습이 필요하며 AWS 서비스 공부가 더 필요함. 특히 SNS / SQS / DLQ 관련 지식이 부족하여 이번 실습에 문제들이 많았고 힘들었다고 생각함.