Codedeploy란, 자동으로 EC2 서버에 배포해주는 툴
AWS Lambda란, 별도의 웹서버없이 트리거와 비슷하게 특정 이벤트가 발생할 때에만 AWS에서 실행되는 함수
Step 1. SNS Topic 생성
SNS Topic 설정을 통해 메세지(또는 알람)를 주고 받을 endpoints를 지정할 수 있다. 해당 포스트같은 경우는 endpoint로 AWS Lambda를 설정한다.
1. Amazon SNS -> Topics -> Create topic 클릭
![](https://velog.velcdn.com/images%2Fysong0504%2Fpost%2F5675ab5f-f250-41d3-bccf-40ff14a770f5%2Fimage.png)
2. Standard 체크 후 Name 입력 (이 외에 설정은 선택사항임)
![](https://velog.velcdn.com/images%2Fysong0504%2Fpost%2F204845bc-8041-4ebe-888f-d4a432af2f48%2Fimage.png)
3. Create topic 클릭
Step 2. Lambda 함수 생성
1. AWS Lambda -> Functions -> Create function 클릭
2. Function name 입력 후 Create function 클릭
※ SNS에 접근 권한이 있는 신규 Role이 생성됨으로 함수가 만들어지기까지 시간이 조금 걸림
![](https://velog.velcdn.com/images%2Fysong0504%2Fpost%2F1a2b2f08-ae3b-4fda-95fa-df934d46bdcb%2Fimage.png)
Step 3. Lambda 함수 환경 변수 추가
1. Configuration -> Enviornment variables -> Edit 클릭
![](https://velog.velcdn.com/images%2Fysong0504%2Fpost%2Fa05b246a-db0c-4dea-aa8f-7456804a478b%2Fimage.png)
2. SERVICES와 CHANNEL (R은 오타) 추가
SERVICES: Slack에서 받은 웹후크 URL (전체 URL이 아닌 'https://hooks.slack.com' 값 제외 '/services' 부터 시작하는 url만 넣는다.
CHANNEL: Slack 채널명
![](https://velog.velcdn.com/images%2Fysong0504%2Fpost%2F232965f5-04df-454f-ae02-21b0c493ac5f%2Fimage.png)
Step 4. 코드 추가
https://jojoldu.tistory.com/298 참고 후 'Deploy' 클릭
![](https://velog.velcdn.com/images%2Fysong0504%2Fpost%2F4e06ed5c-2885-4993-a7ad-3d3d97abf3e5%2Fimage.png)
Step 5. Lambda 함수와 SNS Topic 연결
1. Add trigger 클릭
![](https://velog.velcdn.com/images%2Fysong0504%2Fpost%2F61742307-2d26-4081-9fbf-8200fbaf4556%2Fimage.png)
2. 'SNS' 지정 후 이전에 생성한 SNS topic 선택
![](https://velog.velcdn.com/images%2Fysong0504%2Fpost%2F6d491817-a3c9-4484-980f-2319411d44fe%2Fimage.png)
Step 6. Codedeploy 트리거 설정
- 이전에 생성한 codedeploy group 선택 후 edit 클릭
- Advanced - optional 클릭
- create Trigger를 이용해 알람을 받고자하는 events와 SNS topic 선택!