본문 바로가기
  • 1+1=3
카테고리 없음

[EKS 스터디-2] 상) 슬랙으로 EKS 원클릭 배포 만들기

by 여스 2024. 3. 13.
반응형

가시다님이 하시는 스터디에서는 클라우드 포메이션으로 실습 스터디를 한번에 할 수 있는 자료를 제공해주신다.

매우 편리함!!!

그러나 나는 인내심과 집중력이 쿠크다스이기에, 환경 만드는데 20분이상 걸린다는 핑계로 공부하려고 앉았다가 기다리면서 유튜브 보다가 집중력이 끝나버린다.

 

그래서, 회사 퇴근후 집에 가는 길에 핸드폰으로 저 클라우드포메이션을 실행시켜놓고, 집에서 공부하려고 앉을 때 바로 시작하면 얼마나 좋을까!! 라는 생각을 하게 되었다.

 

구조 흐름은 아래와 같다.

슬랙 -> aws Chatbot -> Lambda -> Cloudformation

 

결과물:

핸폰 슬랙에서 아래처럼 명령어(저장해놨다가 복붙하면 갸꿀!)를 치면 

 

아래처럼 클라우드포메이션 스택이 생성된다!

 

 

구축 순서

스텝1.  AWS Chatbot 생성

(위 단계에서 개인용 워크스페이스가 없다면 새 워크스페이스를 만들면된다)

- 개인전용 워크스페이스 생성되면 아래화면에서 Configure channel 선택

- 내 워크스페이스에서 생성한 채널들이 보임

 

스텝2. 람다생성

람다를 아래코드를 넣어 생성함.

현재 내 환경은 ip가 바뀌기 때문에 event 파라미터로 sg_cidr를 받기로 함.

생성시 TemplateURL은 스터디에서 제공해주는 s3 url 그대로 사용하되, parameter만 덮어씌운다.

import json
import boto3
import os

def lambda_handler(event, context):

    client      = boto3.client('cloudformation')
    
    key_name    = os.environ['key_name']
    access_key  = os.environ['access_key']
    secret_key  = os.environ['secret_key']
    sg_cidr     = event['sg_cidr']
    
    # print(f"key_name:{key_name}, access_key:{access_key}, secret_key:{secret_key}, sg_cidr:{sg_cidr}")
    
    client.create_stack(
        StackName = 'myeks',
        TemplateURL='https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/eks-oneclick.yaml',
        Parameters=[
                {
                 'ParameterKey': 'KeyName',
                 'ParameterValue': key_name,
                },
                {
                 'ParameterKey': 'MyIamUserAccessKeyID',
                 'ParameterValue': access_key,
                },
                {
                 'ParameterKey': 'MyIamUserSecretAccessKey',
                 'ParameterValue': secret_key,
                },
                {
                 'ParameterKey': 'SgIngressSshCidr',
                 'ParameterValue': sg_cidr,
                }
            ]
        )
    
    
    
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

환경변수 추가해준다.(더 안전하게 하려면 파라미터스토어나 시크릿매니저 사용추천)

 

하고 슬랙에다 @aws로 시작하면서 aws cli를 날리면 된다!

 

 

이제 집가서 리소스 구축하는거 오래걸려서 공부하기 힘들다는 핑계거리가 사라져버렸다. 좋은건가; 좋은거지!

반응형

댓글