AWS/Service

AWS CodeDeploy

jih0ssang 2023. 12. 16. 18:18

AWS CodeDeploy

파이프라인 단계

4. CodeBuild instance는 CodeCommit에 접근해서 소스코드 가져와서 빌드와 유닛테스트 진행.
결과물을 S3에 업로드

5. CodeDeploy는 S3에 업로드된 아티팩트를 가져오고 배포에 필요한 애플리케이션 사양파일(appspec.yml) 생성

6. CodeDeploy는 name 태그를 기반으로 배포 그룹(CodeDeploy-agent가 설치된 EC2들 or Autoscaling group)에게

아티팩트를 배포함.

 

구성 요소 및 동작 순서

구분 내용
애플리케이션 배포할 아티팩트(application)를 식별하는 이름
컴퓨팅 플랫폼 CodeDeploy가 애플리케이션을 배포하는 대상 플랫폼.
종류에는 EC2, Lambda, ECS가 있다.
애플리케이션 사양파일(appspec.yml) 배포할 애플리케이션에 대한 정보를 지정하는 yml 혹은 json 형식의 파일 
배포 구성 배포 중 AWS CodeDeploy에서 사용하는 배포 규칙과 배포 성공 및 실패 조건 세트.
EC2 인스턴스의 최소 개수 지정, Lambda 특정 트래픽만 라우팅 등 기능이 가능하다.
배포 그룹 배포할 대상.
태그가 지정된 인스턴스나 AutoScaling 그룹 등이 있다.
배포 방식 배포를 수행하는 방식.
인플레이스(실행 중 배포)와 블루/그린(하나씩 점진적배포)이 있다.
서비스 역할 AWS 리소스에 액세스할 수 있는 권한을 지정하는 IAM 역할.
인스턴스, AutoScaling, 로드밸런서의 작업 등을 수행하기 위한 권한 부여.
IAM 프로파일 Amazon EC2에 연결하는 IAM 역할
IAM 프로파일에는 애플리케이션이 저장되는 S3, Github 레포지토리 등에 액세스하기 위해 필요한 권한이 포함되어있다.

 

 

AWS CodeDeploy의 배포 참조파일(appspec.yml) 및 프로세스

 

CodeDeploy가 필요한 권한

IAM Role

codedeploy-service-role

 

Policy

AmazonS3FullAccess

 

생성한 역할이 CodeDeploy에서 제공되는 모든 엔드포인트에 접속하기 위해 정책 수정이 필요하다.

 

 

EC2 인스턴스 프로파일에 필요한 권한

IAM Role

codedeployEC2-Permissions

 

Policy

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": "arn:aws:s3:::[bucket-name]/*"
        }
    ]
}

그리고 S3FullAccess를 추가한다.

 

'AWS > Service' 카테고리의 다른 글

AWS Transfer Family  (0) 2023.12.25
AWS CodePipeline  (0) 2023.12.17
AWS CodeBuild  (0) 2023.12.16
Route53 Resolver  (0) 2023.12.02
S3 업로드 방식 및 웹 사이트용 주의사항  (0) 2023.12.02