본문 바로가기

클라우드 및 인프라177

[AWS] [3] codepipeline으로 Github+ CodeBuild + CodeDeploy 생성하기, AWS CI/CD 구축하기 Codepipeline 생성하기 step1 파이프라인 이름과 서비스 역할을 설정한다. step2 소스는 Github(버전2) 를 사용한다. 아래 이미지에 보이는 GitHub에 연결 이라는 버튼을 통해서 연결한다. 연결된 깃허브 내용은 왼쪽 사이드바에서 설정 -> 연결 에서 확인할 수 있다. step3 빌드 공급자에서 CodeBuild를 선택하고 CodeBuild에 만들어 두었던 프로젝트 이름을 선택해준다. step4 배포 공급자에서 CodeDeploy 를 선택하고 CodeDeploy 에 만들어 두었던 프로젝트 이름을 선택해준다. 검토 후에 파이프라인을 생성한다. 2022. 6. 20.
[AWS] [4] CodeDeploy 에서 Blue/Green으로 배포하기, AWS CI/CD 구축하기 CodeDeploy 에서 일반 배포가 아닌 Blue/Green으로 배포하는 방법이다. 시작템플릿 생성하기 Auto Scaling에서 사용할 시작 템플릿을 만든다. EC2에 접속해 왼쪽 사이드 바에 인스턴스 아래에 시작 템플릿 이라고 있다. 시작 템플릿 생성하기를 클릭해준다. AMI의 경우 나는 만들어 둔 것으로 대체했다. 본인이 개발하고자 하는 환경에 맞게끔 인스턴스 유형과 키 페어를 선택해준다. 네트워크에는 생성되어 있는 보안그룹을 선택해준다. 고급 세부 정보를 클릭해 IAM 설정과 제일 아래로 내리면 사용자 데이터 부분에 인스턴스를 실행할 때 실행하고자 하는 명령어를 적어주면 된다. #!/bin/bash 를 제일 상단에 적어주어야하며 디폴트로 root로 실행된다. Auto Scaling IAM Aut.. 2022. 6. 16.
[AWS] CodeDeploy BlockTraffic 로딩 시간 지연 BlockTraffic 이 배포 수명 주기 이벤트 중에는 트래픽을 현재 제공하고 있는 인스턴스에 액세스할 수 없도록 인터넷 트래픽이 차단된다. 이 이벤트는 CodeDeploy 에이전트에 예약되어 있으므로 스크립트 실행에 사용할 수 없다. BlockTraffic 에 걸리는 시간이 오래 걸린다 생각된다면 EC2 -> 대상그룹 -> 로드밸런서 -> Attributes 로 이동해 Deregistration delay 의 시간을 변경하면 된다. ex ) 300 -> 60 2022. 6. 15.
[AWS] [2] codepipeline으로 Github+ CodeBuild + CodeDeploy 생성하기, AWS CI/CD 구축하기 [2] codedeploy 생성하기 EC2 에 CodeDeploy -agent 설치 aws-cli 를 설치 sudo yum install -y aws-cli home 으로 이동해서 cli 설정을 진행한다. cd /home/ec2-user sudo aws configure Access Key, Secret Access Key : aws 로그인 정보 region name : ap-northeast-2 output format : json codedeploy-agent 설치 codedeploy-agent에 필요한 ruby와 codedeploy-agent를 설치해준다. codedeploy-agent는 CodeDeploy 앱이 배포 명령을 내리는 것을 수신하고 작업을 수행하는 역할을 하는 프로그램인듯하다. 이 친.. 2022. 6. 15.
[AWS] [1] codepipeline으로 Github+ CodeBuild + CodeDeploy 생성하기, AWS CI/CD 구축하기 GitHub 에 코드가 변경될 때마다 CodeBuild가 실행될 수 있도록 Github+ CodeBuild를 연결한다. 빌드 생성하기 깃허브를 연결해서 사용하고자 하는 깃 레포지토리를 연결해준다. Webhook 의 경우 필요하다면 추가한다. 나의 경우 pull request merge 가 이루어질 때 CodeBuild가 진행될 수 있도록 했다. 특정 브랜치에서 시작하길 원한다면 BASE_REF 에 브랜치 이름을 작성해주면 된다. ex) release 브랜치일 때 환경에서는 Amazon Linux 2 와 Ubuntu 에서 본인이 사용하는 환경을 선택해서 사용하면 된다. 이미지는 여기 에서 이미지별 버전 확인해서 사용한다. 프로젝트 파일에는 buildspec.yml 이름을 가진 파일이 있어야 한다. 빌드 상.. 2022. 6. 14.
[AWS] Codedeploy AllowTraffic 에서 무한 로딩 후 배포 실패 AllowTraffic 이 배포 수명 주기 이벤트 중에는 배포 후 인터넷 트래픽이 인스턴스에 액세스할 수 있도록 허용된다. 이 이벤트는 CodeDeploy 에이전트에 예약되어 있으므로 스크립트 실행에 사용할 수 없다. 대상그룹 Healthy 확인 AllowTraffic 에서 상태가 보류중으로 뜨며 오랜 시간이 지나도 진행이 안되는 문제가 있다. 대상 그룹에서 Healthy 로 되어 있어야 AllowTraffic 이 진행된다. 대상 그룹의 Health status의 경우 로드밸런서를 생성할 때 Listeners and routing 에서 타겟 그룹을 선택하는데 사용하는 타켓 그룹의 Health checks에 지정되어 있는 프로토콜 경로가 본인이 사용하는 프로토콜 경로가 맞는지 확인해준다. 2022. 6. 14.