詳細検索

CodePipeline EC2 행동: EC2 애플리케이션 배포 파이프라인을 90% 단순화하세요!

아바타
글쓴이 Jatin Mehrotra
5분 읽기

CodePipeline EC2 행동: EC2 애플리케이션 배포 파이프라인을 90% 단순화하세요!
English에서 번역 • 원문 보기

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 업데이트를 공유합니다. 저를 팔로우해 주세요. 여러분의 삶을 더 편하게 만들어 드리겠습니다.

Related Articles