GitHubActions CICD With SpringBoot - 4

  1. AWS 환경 구축 하기
    1. GitHub OIDC 설정 작업
    2. AWS ROLE 설정 작업
    3. AWS ECR REPOSITORY 생성
    4. AWS EC2 생성

AWS 환경 구축 하기

GitHub Actions WorkFlow 진행하기 위해 AWS 환경 구축을 해야 합니다. 즉 CD 작업에서 AWS ECR 및 AWS ESK 환경 구축 작업을 해야 합니다.

GitHub OIDC 설정 작업

GitHub Actions 에서 AWS 에 접근 할수 있도록 임시 자격을 얻어야 합니다. OIDC 환경 작업 통해 AWS 접근 할 수 있는 자격을 AWS IAM ROLE 으로
GitHub Actions Job 에서 AWS 에 접근이 가능 합니다.

https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services#adding-the-identity-provider-to-aws

홈페이지 접속 하도록 합니다.

Adding_the_identity_provider_to_AWS

여기서 “Adding the identity provider to AWS” 탭에

  1. 공급자 URL: https://token.actions.githubusercontent.com
  2. 대상: sts.amazonaws.com

값을 확인 할 수 있습니다. 이 데이터를

identity_providers_create

AWS IAM 페이지로 접속한 다음에 왼쪽 탭에 ‘자격 증명 공급자’ 탭으로 이동한 다음에
공급자 유형을 ‘OpenId Connect’ 로 선택 한 다음에 미리 준비 되었던 ‘공급자 URL’ 하고 ‘대상’ 을 붙여넣기 해서 최종적으로 ‘공급자 추가’ 버튼을 추가 하도록 합니다.

이렇게 OIDC 설정은 완료 되었습니다.

AWS ROLE 설정 작업

create_role_1

AWS IAM 페이지에서 ‘역활’ 메뉴를 클릭 합니다. 그다음 ‘역활 만들기’ 버튼을 클릭 합니다.

create_role_2

‘신뢰 할 수 있는 엔티티 유형’ 에서 ‘사용자 지정 신뢰 정책’ 을 선택 하고

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::123456123456:oidc-provider/token.actions.githubusercontent.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringLike": {
"token.actions.githubusercontent.com:sub": "repo:octo-org/octo-repo:*"
},
"StringEquals": {
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
}
}
}
]
}

이것을 복사 해서 붙여 넣기 합니다. 일부분 데이터를 수정 해야 하는데요.

위 상단 이미지를 보시면 첫번째 빨간 박스 경우 ‘AWS 계정 ID’ 값으로 대체 하고 두번째 빨간 박스 경우는 GitHub Repository 경로를 대체 하도록 합니다.
이렇게 설정하면 특정 GitHub Repository 에서 설정한 IAM ROLE 을 이용해서 AWS 에 접근 할 수 있습니다.

create_role_3

그 다음 버튼을 클릭을 하게 된다면 권한 정책을 추가 해야 하는데 ‘AdministratorAccess’ 정책을 체크 한뒤에 다음 버튼을 클릭 합니다.

create_role_4

역활 이름을 임의로 지정한 값으로 설정 뒤 완료 버튼을 클릭 합니다. 저는 ‘syh-github-actions’ 이라는 이름으로 IAM 을 만들었습니다.

이렇게 GitHub Actions 에서 사용 할수 있는 ROLE 을 생성 했습니다.

AWS ECR REPOSITORY 생성

CI-CD 진행 하는 과정에서 docker image 가 생성 하면 AWS ECR Repository 에 관리 할 수 있도록 했었는데요. 때문에 AWS ECR 저장소를 생성 하도록 하겠습니다.

1-init_page

AWS 페이지에서 ‘ECR’ 로 검색하면 ECR 저장소를 생성 할 수 있는 페이지 나옵니다.

2-repository
‘프라이빗 레포지토리’ 탭을 선택 한 이후

3-repositories_create

두개를 생성 할 것 입니다. 하나는 dev 전용 또 하는 prod 전용을 생성 할 것 입니다.

저는 ‘syh-app-dev’ (개발 전용), ‘syh-app-prod’ (상용 전용) 이라는 이름으로 각각 생성 합니다.

AWS EC2 생성

CI-CD 진행하는 과정에서 docker image 가 생성 한 후 ‘image-build’ 통해 배포한 애플리케이션을 관리하기 위해 EC2 를 생성 하도록 합니다.

ec2-create

AWS EC2 생성 페이지로 이동 합니다. OS 환경 경우 저같은 경우 ubuntu 로 설정 했습니다.

ec2-IAM-update1

이렇게 EC2 가 생성 된 것을 확인 할 수 있습니다.


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

💰

×

Help us with donation