GitHubActions CICD With SpringBoot - 5

GitHub Actions WorkFlow 통해 AWS EKS 배포 하기 위한 GitHub 구성 하기

이전에 AWS ECR 구성 및 IAM 설정이 완료 되었다면 그 다음 GitHub Actions WorkFlow 통해 AWS EKS 배포 하기 위한 GitHub 구성 작업을 해야 합니다.
즉 해당되는 GitHub Repository 에서 환경 변수 및 시크릿 구성을 해야 합니다.

‘AWS_REGION’ 환경 변수 구성하기

AWS_REGION

작업하고 있는 GitHub 저장소 페이지에서 상단 ‘Setting’ 메뉴를 클릭 합니다. 그 다음 왼쪽 메뉴에서 ‘Secrets and variables’ 클릭 후 ‘Actions’ 버튼을 클릭 합니다.

클릭 후 페이지 접속 하게 된다면 탭이 2가지가 있는데

  1. Secrets
  2. Variables

있습니다. ‘Variables’ 클릭 해서 ‘New repository variable’ 버튼을 클릭 합니다. name 값을 ‘AWS_REGION’ 로 지정하고 value 값을 AWS REGION 에 맞게 설정 하도록 합니다.

‘CLUSTER_NAME’ 환경 변수 구성하기

CLUSTER_NAME
다음은 ‘CLUSTER_NAME’ 설정 입니다. 동일하게 ‘New repository variable’ 버튼을 클릭 후 name 값을 ‘CLUSTER_NAME’ 로 지정하고

value 값을 AWS EKS 클러스터명을 지정 하도록 합니다.

‘Environments Setting’ 환경 변수 구성하기

Environments_Setting

그 다음은 ‘Environments Setting’ 설정 하도록 하겠습니다. 서버 환경에 따른 각각의 변수 지정을 하기 위함 입니다.

작업하고 있는 GitHub 저장소 페이지에서 상단 ‘Setting’ 메뉴를 클릭 합니다. 그 다음 왼쪽 메뉴에서 ‘Environments’ 클릭 후 ‘New environment’ 버튼을 클릭 합니다.

Environments_Setting_Add

  1. dev
  2. prod

를 각각 추가 합니다.

Environments_Setting_List

이렇게 각각 추가된 환경 설정을 각각 구성 페이지로 접속 한뒤에 하단에 ‘Add environment variable’ 버튼을 클릭 합니다.

manage_env_var_dev_REPOSITORY
manage_env_var_dev_SUFFIX
manage_env_var_prod_REPOSITORY
manage_env_var_prod_SUFFIX

이렇게 Name 을 ‘REPOSITORY’ Value 값을 그 환경에 맞는 AWS ECR 저장소 이름을 지정 하도록 합니다.

Name 에서 ‘SUFFIX’ 지정 한뒤 각 환경에 맞는 ‘dev’ 그리고 ‘prod’ 로 지정 하고 저장 합니다.

‘AWS_ROLE_TO_ASSUME’ 환경 변수 구성하기

작업하고 있는 GitHub 저장소 페이지에서 상단 ‘Setting’ 메뉴를 클릭 합니다. 그 다음 왼쪽 메뉴에서 ‘Secrets and variables’ 클릭 후 ‘Actions’ 버튼을 클릭 합니다.

클릭 후 페이지 접속 하게 된다면 탭이 2가지가 있는데

  1. Secrets
  2. Variables

있습니다. ‘Secrets’ 클릭 해서 ‘New repository secret’ 버튼을 클릭 합니다.

AWS_ROLE_TO_ASSUME

Name 을 ‘AWS_ROLE_TO_ASSUME’ 로 지정하고 Secret 값을 AWS IAM 페이지로 접속 후 ‘역활’ 페이지로 접속 합니다.

앞써 설정한 AWS ROLE 설정한 ‘ARN’ 을 복사해서 붙여넣기 후 저장 하도록 합니다.

‘REGISTRY’ 환경 변수 구성하기

REGISTRY

그 다음 ‘REGISTRY’ 구성 해보겠습니다. 동일하게 ‘New repository secret’ 버튼을 클릭해서

Name 을 ‘REGISTRY’ 로 지정하고 Secret 값을 AWS ECR 에서 프라이빗 저장소에 생성한 URL 을 복사를 하는데 ‘com’ 까지 복사를 해서 붙여넣기 후 저장을 합니다.

‘PERSONAL_ACCESS_TOKEN’ 환경 변수 구성하기

먼저 GitHub Setting 에 가서 ‘PERSONAL_ACCESS_TOKEN’ 값을 추가 해야 합니다.
github_personal_access_token_setting

개인 GitHub 페이지로 가서 우측 상단에 설정을 클릭하면 이미지에 보이는 것 처럼 ‘Setting’ 메뉴가 보입니다. 클릭 하도록 합니다.

Developer_settings

왼쪽 메뉴 하단에 ‘Developer settings’ 메뉴가 보이는데 클릭 하도록 합니다.

Tokens
왼쪽 메뉴에서 ‘Personal access tokens’ -> ‘Tokens (classic)’ 메뉴를 클릭 후 우측 상단에 ‘Generate new token’ 클릭 하면 ‘Generate new token (classic)’ 메뉴를 클릭 합니다.

create_access_token
‘Select scopes’ 을 모두 선택 후 ‘Note’ 임의로 지정 해서 생성 하도록 합니다.

PERSONAL_ACCESS_TOKEN

그럼 Access Token 값이 생성되는데 이것을 GitHub Secret 변수 값 중 PERSONAL_ACCESS_TOKEN 이라는 이름으로 지정 해서 secret 값을 지정 하도록 합니다.

‘SLACK_WEBHOOK_URL’ 환경 변수 구성하기

마지막으로 ‘SLACK_WEBHOOK_URL’ Secret 변수 값을 설정 하도록 하겠습니다.

channel_create

slack 실행 해서 CI-CD 결과값을 받아 볼수 있는 slack channel 을 추가 하도록 합니다.

Slact_Web_hook_page

slack 공식 사이트에서 https://api.slack.com 접속 하면 ‘Incoming Webhooks’ 설정 할수 있는 페이지로 접속 합니다.

여기서 하단에 ‘Add New Webhook to Workspace’ 버튼을 클릭 합니다.

slack_action_request

actions 에서 syh Slack 워크스페이스에 액세스하기 위해 권한을 요청 할수 있는 페이지로 넘어가는데 바로 이전에 slack 에서 생성한 채널을 선택 후 ‘허용’ 버튼을 클릭 합니다.

다시 slack ‘Incoming Webhooks’ 페이지로 가면 방금 생성한 Webhook URL 박스가 보이는데 URL 를 복사해서

SLACK_WEBHOOK_URL

‘SLACK_WEBHOOK_URL’ 으로 Name 을 설정하고 복사한 URL 을 secret 값으로 지정 후 저장 합니다.


Copyright 201- syh8088. 무단 전재 및 재배포 금지. 출처 표기 시 인용 가능.

💰

×

Help us with donation