Amazon Web Services(AWS) CodePipeline 팀은 개발자와 DevOps 엔지니어의 운영 오버헤드를 단순화하고, EC2로 배포 과정을 간소화하여 EC2 인스턴스에 직접 배포할 수 있는 CodePipeline 액션을 도입했습니다.
*왜 그게 당신에게 중요한가요? *
이전에는 EC2 인스턴스에 배포하려면 CodeDeploy와 AppSpec 파일을 사용해 배포를 구성해야 했습니다. 업데이트 이후에는 CODEDeploy 리소스와 APPSPEC 파일을 관리할 필요가 없습니다.
*오늘 이 방법을 시도해봤으니, 배포 파이프라인을 90% 단순화하고 복잡한 프로세스와 스크립트를 모두 제거하는 방법을 보여드리겠습니다!! *
건축

선수 조건
- 리눅스 인스턴스 유형만 지원합니다
- 최대 지원 플릿 크기는 500 인스턴스입니다.
- 파이프라인 V2만 지원됨
- SSM 에이전트가 설치되어야 합니다
비하인드 신
이 동작은 SSM을 사용하여 인스턴스에서 스크립트를 실행하기 위해 전송 명령을 수행합니다.
Apache로 EC2 인스턴스를 생성하세요
참고: 인스턴스를 생성하려면 'AmazonSSMManagedInstanceCore', 'AmazonS3ReadOnlyAccess'로 역할을 생성하고 ec2 인스턴스에 연결해야 합니다.
- '사용자 데이터'를 사용하거나 기존 인스턴스에 로그인한 후 명령을 실행하여 SSM 에이전트를 수동으로 인스턴스에 추가하세요.
- 기존 인스턴스를 사용 중이라면 SSM 에이전트를 추가한 후 인스턴스를 재부팅해야 합니다.
블로그를 간단히 하기 위해 Apache 웹 서버와 함께 EC2를 만들었습니다.

수도 수
맛있는 업데이트 -y
Yum install httpd -y
서비스 httpd 시작
chkconfig httpd on
에코 "Codepipeline EC2 배포 동작" > /var/www/html/index.html

Ec2 배포 동작으로 파이프라인 생성
- 여기서는 태그를 사용해 인스턴스를 선택해야 합니다; 저는 인스턴스를 식별하기 위해 이름표를 사용했습니다.
- 그다음 배포하려는 ec2 인스턴스의 대상 디렉터리를 제공해야 합니다.
- 마지막으로 배포 단계 이후에 실행되는 실행 스크립트 파일로 가는 경로.
참고: 파이프라인이 생성되면 오류를 피하기 위해 파이프라인 서비스 역할을 편집하고 다음 권한을 추가해야 합니다.
{
"효과": "허용",
"액션": [
"ssm:취소명령",
"ssm:DescribeInstanceInformation",
"ssm:ListCommandInvocations",
"ssm:명령 전송"
],
"자원": "*"
}
파이프라인을 돌려라
저는 소스 코드를 GitHub로 사용하고, 코드 시작(code, start) 연결을 사용하며, 코드는 이 저장소에 있습니다.
참고: AWS 가이드에서는 ec2 인스턴스 역할에 'AWSSystemsManagerDefaultEC2InstanceManagementRoleeployAction'을 추가하라고 했지만, 제 환경에서는 그 권한이 필요하지 않았습니다


이 행동을 위한 고급 옵션
- 병렬로 배포할 인스턴스 수나 백분율을 지정할 수 있습니다.
- 인스턴스 수를 수나 백분율로 지정하여 작업이 실패하면 작업을 중단할 수 있습니다.
- 배포 시 해당 인스턴스의 트래픽을 차단하는 로드 밸런서를 지정할 수 있습니다.
개발자, DevOps 관점에서
- 이번 업데이트를 통해 CodeDeploy 자원 관리 없이도 EC2에서 엔드 투 엔드 AWS 네이티브 지속적 배포가 가능해졌습니다.
- 이는 복잡한 배포 프로세스보다는 비즈니스 문제와 애플리케이션에 집중하고자 하는 개발자와 데브옵스 엔지니어에게 분명히 게임 체인저가 될 것입니다.
- 물론 AWS가 역할에 필요한 권한을 추가하면 이 단순화 경험은 100%까지 더 확장될 수 있습니다.
이 글을 읽고 나서, 이 동작으로 전환하여 배포 과정을 단순화하고 싶으신가요?
저는 매일 Linkedin, * X에서 DevOps, Kubernetes, GenAI 관련 놀라운 AWS 업데이트를 공유합니다. 저를 팔로우해 주세요. 여러분의 삶을 더 편하게 만들어 드리겠습니다.