이번 포스팅에서는 간단하게 정리하자면, Slack을 통해서 AWS EC2를 끄고 켤 수 있는 기능을 만든 것을 소개 하려고 한다.
먼저 사용한 서비스를 정리하자면,
1. AWS Ec2
2. AWS Lambda
3. Lambda 함수 구성
4. Slack App
5. Slack slash command
이렇게 5가지로 정리할 수 있고 사전 준비되어야 하는 것들은
1. Slack 워크스페이스 및 앱 생성
2. Ec2 생성
정도가 있는데 앱 생성 및 워크스페이스 생성은 전에 올려놓은 글을 참조하면 된다.
2023.04.04 - [Slack] - [Slack으로 점심 추천 Bot 만들기 with aws lightsail] - 1 기본세팅
이제부터 람다 함수를 생성해서 작성하고 Slash command와 연동하는 과정을 설명하겠다.
1. Lambda 함수 생성(본인이 사용할 환경에 맞추어서 생성하기)
2. 코드 작성
import boto3
def lambda_handler(event, context):
instance_id = "my-instance-id" # 중지할 EC2 인스턴스의 식별자 입력
ec2_client = boto3.client('ec2')
response = ec2_client.describe_instances(InstanceIds=[instance_id])
current_state = response['Reservations'][0]['Instances'][0]['State']['Name']
if current_state=='running':
ec2_client.stop_instances(InstanceIds=[instance_id])
return {
'statusCode': 200,
'body': 'EC2 instance stopped successfully.'
}
3.함수구성(cors 꼭 해제)
4. 생성된 함수 URL 복제
5.함수 URL 슬랙 슬래시 커맨드에 입력
아, 참고로 슬랙 슬래시 커맨드 메뉴는 슬랙 앱 메뉴의 왼쪽에 있다.
6. 앱 설치.
7.람다 함수 권한 설정 ( 이는 람다 함수 초기 생성 시 그 어떤 권한도 없기 때문이다.)
Ec2 삭제 및 생성 관련 권한을 추가한다.( 권한이 헷갈린다면,, Ec2 full 권한을 주자..)
역할 이름을 클릭하면 권한 설정 화면으로 넘어가는데,
위처럼 권한을 추가하면 된다.
8. 확인 및 테스트
올바르게 세팅했다면 다음과 같이 Ec2가 성공적으로 꺼졌다는 알람이 온다!
오늘의 포스팅은 여기서 끝.
'Slack' 카테고리의 다른 글
[Slack으로 점심 추천 봇 만들기 with lightsail(혹은 ec2), lambda -2 대학교를 위한 점심추천 봇 완성기] (2) | 2023.05.12 |
---|---|
[Slack으로 점심 추천 Bot 만들기 with aws lightsail] - 1 기본세팅 (0) | 2023.04.04 |