본문 바로가기

분류 전체보기621

[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.
[AWS] Codepipeline으로 Github+ CodeBuild + CodeDeploy 사용하기, AWS CI/CD 구축하기 CodePipeline 사용해 Github 에 있는 코드를 배포하는 내용을 정리해 보았다. 일단 서비스를 배포하기 위해 필요한 ec2와 IAM을 생성한다. Github, CodeBuild, CodeDeploy 사용을 위한 내용을 아래 순서로 정리해 두었다. 필요한 부분을 참고해서 보면 될 것 같다. [1] GitHub 와 연결해 CodeBuild 생성하기 [2] Codedeploy 생성하기 [3] Codepipeline 생성하기 [4] CodeDeploy Blue/Green 으로 배포하기 해당 이미지는 내가 사용하고자 하는 AWS 아키텍처를 그려보았다. 2022. 6. 10.
[AWS] EC2 메모리 부족 현상 - swap 생성 AWS 프리티어를 사용하는데 t2.micro 의 램이 1GB 밖에 되지 않아 여러 프로젝트를 동시에 돌리면 램 초과로 서버가 폭발한다. RAM 메모리가 부족한 경우를 대비해 swap 메모리를 지정해준다. swap은 RAM이 부족할 경우 HDD의 일정 공간을 RAM 처럼 사용하는 것이다. swap 공간 크기 계산 * swap 은 32MB 미만이 되면 안된다. t2.micro 에서 진행하면 사용할 수 있는 RAM은 1GB 이므로. swap 으로 2GB 정도를 생각하고 잡으면 된다. swap 생성하기 스왑 파일은 4GB(128MB x 32) sudo dd if=/dev/zero of=/swapfile bs=128M count=32 스왑 파일은 2GB(128MB x 16) sudo dd if=/dev/zero .. 2022. 6. 9.
[AWS] Codepipeline The provided role does not have sufficient permissions. codepipeline 에서 codedeploy를 실행하는데 다음과 같은 에러가 나오면서 codedeploy 가 진행되지 않았다. buildspec.yml 파일에 아티팩트 구문이 포함되어 있어야 한다. version: 0.2 artifacts: files: - '**/*' If you change the buildspec.yml version to 0.2 then the shell keeps its settings. In version: 0.1 you get a clean shell for each command. 2022. 6. 7.