GitHub Actions WorkFlow 통해 AWS EKS 배포 하기 위한 GitHub 구성 하기
이전에 AWS ECR 구성 및 IAM 설정이 완료 되었다면 그 다음 GitHub Actions WorkFlow 통해 AWS EKS 배포 하기 위한 GitHub 구성 작업을 해야 합니다.
즉 해당되는 GitHub Repository 에서 환경 변수 및 시크릿 구성을 해야 합니다.
‘AWS_REGION’ 환경 변수 구성하기
작업하고 있는 GitHub 저장소 페이지에서 상단 ‘Setting’ 메뉴를 클릭 합니다. 그 다음 왼쪽 메뉴에서 ‘Secrets and variables’ 클릭 후 ‘Actions’ 버튼을 클릭 합니다.
클릭 후 페이지 접속 하게 된다면 탭이 2가지가 있는데
- Secrets
- Variables
있습니다. ‘Variables’ 클릭 해서 ‘New repository variable’ 버튼을 클릭 합니다. name 값을 ‘AWS_REGION’ 로 지정하고 value 값을 AWS REGION 에 맞게 설정 하도록 합니다.
‘CLUSTER_NAME’ 환경 변수 구성하기
다음은 ‘CLUSTER_NAME’ 설정 입니다. 동일하게 ‘New repository variable’ 버튼을 클릭 후 name 값을 ‘CLUSTER_NAME’ 로 지정하고
value 값을 AWS EKS 클러스터명을 지정 하도록 합니다.
‘Environments Setting’ 환경 변수 구성하기
그 다음은 ‘Environments Setting’ 설정 하도록 하겠습니다. 서버 환경에 따른 각각의 변수 지정을 하기 위함 입니다.
작업하고 있는 GitHub 저장소 페이지에서 상단 ‘Setting’ 메뉴를 클릭 합니다. 그 다음 왼쪽 메뉴에서 ‘Environments’ 클릭 후 ‘New environment’ 버튼을 클릭 합니다.
- dev
- prod
를 각각 추가 합니다.
이렇게 각각 추가된 환경 설정을 각각 구성 페이지로 접속 한뒤에 하단에 ‘Add environment variable’ 버튼을 클릭 합니다.
이렇게 Name 을 ‘REPOSITORY’ Value 값을 그 환경에 맞는 AWS ECR 저장소 이름을 지정 하도록 합니다.
Name 에서 ‘SUFFIX’ 지정 한뒤 각 환경에 맞는 ‘dev’ 그리고 ‘prod’ 로 지정 하고 저장 합니다.
‘AWS_ROLE_TO_ASSUME’ 환경 변수 구성하기
작업하고 있는 GitHub 저장소 페이지에서 상단 ‘Setting’ 메뉴를 클릭 합니다. 그 다음 왼쪽 메뉴에서 ‘Secrets and variables’ 클릭 후 ‘Actions’ 버튼을 클릭 합니다.
클릭 후 페이지 접속 하게 된다면 탭이 2가지가 있는데
- Secrets
- Variables
있습니다. ‘Secrets’ 클릭 해서 ‘New repository secret’ 버튼을 클릭 합니다.
Name 을 ‘AWS_ROLE_TO_ASSUME’ 로 지정하고 Secret 값을 AWS IAM 페이지로 접속 후 ‘역활’ 페이지로 접속 합니다.
앞써 설정한 AWS ROLE 설정한 ‘ARN’ 을 복사해서 붙여넣기 후 저장 하도록 합니다.
‘REGISTRY’ 환경 변수 구성하기
그 다음 ‘REGISTRY’ 구성 해보겠습니다. 동일하게 ‘New repository secret’ 버튼을 클릭해서
Name 을 ‘REGISTRY’ 로 지정하고 Secret 값을 AWS ECR 에서 프라이빗 저장소에 생성한 URL 을 복사를 하는데 ‘com’ 까지 복사를 해서 붙여넣기 후 저장을 합니다.
‘PERSONAL_ACCESS_TOKEN’ 환경 변수 구성하기
먼저 GitHub Setting 에 가서 ‘PERSONAL_ACCESS_TOKEN’ 값을 추가 해야 합니다.
개인 GitHub 페이지로 가서 우측 상단에 설정을 클릭하면 이미지에 보이는 것 처럼 ‘Setting’ 메뉴가 보입니다. 클릭 하도록 합니다.
왼쪽 메뉴 하단에 ‘Developer settings’ 메뉴가 보이는데 클릭 하도록 합니다.
왼쪽 메뉴에서 ‘Personal access tokens’ -> ‘Tokens (classic)’ 메뉴를 클릭 후 우측 상단에 ‘Generate new token’ 클릭 하면 ‘Generate new token (classic)’ 메뉴를 클릭 합니다.
‘Select scopes’ 을 모두 선택 후 ‘Note’ 임의로 지정 해서 생성 하도록 합니다.
그럼 Access Token 값이 생성되는데 이것을 GitHub Secret 변수 값 중 PERSONAL_ACCESS_TOKEN 이라는 이름으로 지정 해서 secret 값을 지정 하도록 합니다.
‘SLACK_WEBHOOK_URL’ 환경 변수 구성하기
마지막으로 ‘SLACK_WEBHOOK_URL’ Secret 변수 값을 설정 하도록 하겠습니다.
slack 실행 해서 CI-CD 결과값을 받아 볼수 있는 slack channel 을 추가 하도록 합니다.
slack 공식 사이트에서 https://api.slack.com 접속 하면 ‘Incoming Webhooks’ 설정 할수 있는 페이지로 접속 합니다.
여기서 하단에 ‘Add New Webhook to Workspace’ 버튼을 클릭 합니다.
actions 에서 syh Slack 워크스페이스에 액세스하기 위해 권한을 요청 할수 있는 페이지로 넘어가는데 바로 이전에 slack 에서 생성한 채널을 선택 후 ‘허용’ 버튼을 클릭 합니다.
다시 slack ‘Incoming Webhooks’ 페이지로 가면 방금 생성한 Webhook URL 박스가 보이는데 URL 를 복사해서
‘SLACK_WEBHOOK_URL’ 으로 Name 을 설정하고 복사한 URL 을 secret 값으로 지정 후 저장 합니다.
Copyright 201- syh8088. 무단 전재 및 재배포 금지. 출처 표기 시 인용 가능.