안녕하세요. aws 배포관련해서 궁금사항 질문드립니다. 현재 Jenkins로 빌드 및 테스트를…

안녕하세요. aws 배포관련해서 궁금사항 질문드립니다.
현재 Jenkins로 빌드 및 테스트를 하고 aws에 자동 배포를 하려고 합니다.
배포시 고려사항은
1. auto scaling 고려하여 자동화된 AMI 생성
2. 무중단 배포
3. 문제 발생시 롤백
입니다.

질문입니다.
1. 현재 구성되어있는 aws인프라를 건드리지 않고,
Jenkins에서 생성된 패키지를 aws에 자동 배포하기 위해서 어떤 방법이 좋을까요?(Cloud Formaion 제외..)
아니면 보통 aws에 어떤 방법으로 자동 배포를 하는지 궁금합니다.

2. 배포후 AMI를 새로만들어 새로운 auto scaling 그룹 생성후 이전 그룹과 스위치 하는 방법(Blue-Green)과
CodeDeploy를 이용한 방법 중 비용 및 장단점이 궁금합니다.
또한 CodeDeploy에서 tag type에 auto scaling 그룹을 지정하여
배포하면 기존에 지정된 AMI에서
현재 릴리즈된 버전으로 자동으로 빌드되는지 궁금합니다.

3 thoughts on “안녕하세요. aws 배포관련해서 궁금사항 질문드립니다. 현재 Jenkins로 빌드 및 테스트를…

  1. 저희는 Elastic Beanstalk에 인프라의 기본 셋팅들을 적용시켜놓고, Jenkins 의 플러그인 중 AWSEB(ElasticBeanstlak) Deployment Plugin을 사용하여 배포하고 있습니다.

  2. jenkins에 스크립트를 만들어서 auto scaling group을 직접 컨트롤 하고 있습니다. 새로운 버전 적용시에는 기존의 EC2 갯수만큼 새 configuration으로 올리고, 새로운 인스턴스들이 ELB에 붙으면 기존 인스턴스를 내리는 식으로 컨트롤 하고 있습니다.
    근데 곧 Code Deploy나 Code Pipeline으로 바꾸려고 합니다.

  3. 저는 jenkins에서 shell스크립트를 사용합니다. aws cli를 통해 배포타겟인 asg그룹에 포함된 ec2리스트를 뽑고 loop돌면서 rsync 로 배포합니다. 이때 loop 돌기 전에 버저닝되는 s3에 업로드 해놓고 타겟에 배포합니다. 만약 배포 중 오류가 발생하면 s3에 올린 버전만 삭제하구요. ami는 생성하지않고 ec2 launch configuration 에서 user data를 통해 스크립트로 아까 올린 s3에서 다운받고 was실행하도록 제어합니다.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.