CodeDeploy Java Code 시리즈를 사용한 CI/CD GitHub에 소스 코드를 푸시하면 AWS의 EC2에 배포되도록 환경을 만들 때 메모를 남기려고합니다. Code 시리즈의 작성 방법 등은 다른 기사를 참조해 주시고, 본 기사에서는 ・배포될 때 자동으로 프로덕션 환경의 설정 파일로 전개되도록 하고 싶다! 가 되었을 때에, 각종 설정 파일(Maven의 pom.xml이나, CodeBuild의 buildspec.yml, CodeDeploy의 app... CodeBuildCodePipelineCodeDeploy자바AWS AWS CodePipeline에서 GitHub 소스를 S3에 배포 CodePipeline 설정 절차 비망록. GitHub에 push를 트리거하고 S3에 자동 배포하고 싶습니다 환경을 나누고 싶다 (개발, 스테이징, 프로덕션) 배포 결과를 slack 통지하고 싶다 1. CodePipeline 설정 파이프라인 이름을 입력하여 처음에는 새 역할을 만듭니다. 소스 프로바이더는 GitHub를 선택. (버전 1은 더 이상 사용되지 않으므로 버전 2 선택.) "새 앱 ... CodeBuildCodePipelineCodeDeployS3AWS CodeBuild+CodeDeploy+CodePipeline에서 EC2에 자동 배포해 보았습니다. Source 아티팩트는 S3의 "codepipeline-ap-northeast-1-…"바게트vue-chat/SourceArti로 출력 vue-chat/SourceArti로 출력된 소스를 CodeBuild가 빌드 동일한 바게트 vue-chat/BuildArtif에 미리 빌드된 소스 출력 vue-chat/BuildArtif의 미리 빌드 된 소스를 CodeDeploy가 수신 EC2에 배치 배포 된... CodePipelineCodeDeployCodeBuild 하나의 CodePipeline 프로젝트에서 여러 ECS 서비스 배포 CodePipeline에서 하나의 프로젝트에서 여러 ECS 서비스를 배포하기 위한 설정 방법에 궁리가 필요했기 때문에 메모 포인트 buildspec.yml 아티팩트에서 배포 할 서비스 수만큼 imagedefinitions.json 생성 Deploy 스테이지의 여러 action을 만들고 buildspec.yml에 따라 생성 된 아티팩트의 imagedefinitions.json 사용 builds... CodeBuildECSCodePipelineCodeDeployAWS 다른 AWS 계정으로 Blue/Green 자동 배포(교차 계정 배포 @ECS Fargate) 다중 계정 환경에서 AWS Fargate 에서 Blue/Green 자동 배포를 설정합니다(개발 환경-> 프로덕션 환경에 배포를 가정). 자동 빌드 설정은 CloudFormation 및 관리 콘솔을 사용합니다. ※이하의 순서를 실행하면, AWS 의 서비스 이용료가 발생합니다. ※개발 환경(배포 원 환경), 프로덕션 환경(배포처 환경)의 전제로 기재합니다. ※개발 환경(배포 원본 환경), 프로덕... BTCFargateCodeBuildCodePipelineCodeDeploy ECS Fargate에서 GitHub WebHook에 Blue/Green 자동 배포 AWS Fargate 에서 Blue/Green 자동 배포를 설정합니다. 소스 리포지토리에는 GitHub, 빌드에는 CodeBuild, 배포 파이프라인에는 CodePipeline를 사용합니다. 자동 빌드 설정은 CloudFormation 및 관리 콘솔을 사용합니다. ※이하의 순서를 실행하면, AWS 의 서비스 이용료가 발생합니다. ※ Fargate 의 Blue/Green 배포 설정이 완료된 것... BTCFargateCodeBuildCodePipelineCodeDeploy AWS CodePipeline을 통과하면 symlink가 텍스트 파일이됩니다. AWS CodePipeline은 기본적으로 Source Build Deploy 3단계에서 CI/CD 파이프라인을 실행합니다. 위의 Source 스테이지 리포지토리에 symlink가 있으면 빌드 스테이지 단계에서 단순한 텍스트 파일로 변경되는 것 같습니다. 다음은 Source 스테이지(CodeCommit 혹은 GitHub 리포지토리)에서의 상태입니다. 이 단계에서는 symlink입니다. 다음으... CodeCommitCodeBuildCodePipelineCodeDeployAWS CodeDeploy를 사용해 보았습니다. Lambda 배포가 잘되지 않기 때문에 Qiita에 쓰면서 노력하기로 결정했습니다. Blue/Green Deploy Blue/Green 배포란? 현재 가동하고 있는 환경과 별도로 또 하나 가동 환경을 작성해, 로드 밸런서등의 라우팅을 신 환경에 향하는 배치 방법입니다. 항상 요청을 받고 있는 실행 중인 서버를 대체하는 것보다 안전하게 배포할 수 있는 것이 장점입니다. 신청 배포 그룹 배포의 ... 람다CodeDeployAWS CodeDeploy 결과를 Slack에 알립니다. AWS Chatbot을 사용하여 CodeDeploy의 성공/실패를 Slack에 알리고 싶습니다. AWS Management Console에서 AWS Chatbot을 탐색하고 Slack을 지정하여 채팅 클라이언트를 설정합니다. slack에 대한 액세스 권한을 부여합니다. 새 채널을 설정합니다. Slack 채널 : 비공개로 채널 ID를 지정합니다 Slack의 채널 ID는 Slack의 채널 링크를... 슬랙AWSChatbotCodeDeployAWS ECS 배포 중 상태 확인을 자동화하는 Appspec의 Hooks 설정 배포에 실패했을 때 자동으로 롤백할 수 있다는 것은 중요하다. ECS의 CodeDeploy에 의한 배포에서는 End-to-End의 상태 확인을 자동화할 수 있다. 상태 확인을위한 Lambda 함수 만들기 Appspec에서는 CodeDeploy의 각 라이프사이클 이벤트를 훅하고 Lambda 함수를 호출할 수 있으므로, 그 훅의 설정(Hooks)을 설정한다. 이번에는 ECS 태스크 배포 후 EL... 람다CodeDeployECSAWS ECS Fargate에서 Blue/Green 배포 설정 AWS Fargate 에서 지원되는 Blue/Green 배포를 설정합니다.CloudFormation 에서 모두 설정하고 싶습니다만, 대응중의 스테이터스(2020/1/12 현재)이므로, CloudFomation 와 매니지먼트 콘솔로 실시합니다. ※이하의 순서를 실행하면, AWS 의 서비스 이용료가 발생합니다. ※ VPC , Subnet , Security Group 등의 NetWork 주위의 ... BTCFargateECSCloudFormationCodeDeploy 【AWS】CodeDeploy를 구현했을 때의 에러와 그 해결까지 CodeDeploy에서 배포 자동화를 구현하려고 할 때 몇 가지 오류가 발생하여 기록으로 남습니다. 거의 범 미스 같은 느낌입니다만, 참고가 되면 다행입니다. 이것은 단순히 .circleci/config.yml 디렉토리에 s3へのアップロード 의 기재를 하지 않았기 때문이었습니다. config.yml 원인은, AfterInstall 이벤트로 사용되고 있던 쉘 스크립트가 반영되어 있지 않은 것이... PHP라라벨CodeDeployAWS 【대 트러블|핀치 503 에러】Amazon EC2 Auto Scaling로 해서는 안되는 설정 미스 ! 인스턴스가 시작하고 즉시 종료하고 시작하고 즉시 종료하고 무한 루프. EC2 Auto Scaling이 왜 시작되고 실패하는지 확인합니다 그리고 갑자기 AMI에서 인스턴스를 단독으로 시작하고 최신 소스 코드를 반영하여 ALB에 연결했습니다. 우선 여러가지 간략화한 그림이지만 이하와 같은 서버 구성도로 되어 있다(EC2는 최소 2대의 구성) 우선, 처음에 STATUS 체크 faild 가 되고... AutoScalingEC2CodeDeployS3AWS AWS CodeDeploy에서 최신 배포된 아티팩트 얻기 현재의 최신의 배포가 끝난 아티팩트의 상태를 보고 처리를 나눌 필요가 있어, awscli로 바삭바삭하게 취득할 수 있는지 조사했는데, 아무래도 1발로는 당길 수 없었습니다. 그래서 쉘로 했습니다. s3의 버킷과 키를 각각 취득하기 위해서 api를 2번 부르는 것은 jq에 의존하고 싶지 않았기 때문입니다. sed도 환경에 의존하기 때문에 설명을 생략하기 위해하지 않았습니다. 1발로 정보를 취득... CodeDeployaws-cliAWS [AWS] Jenkins, CodeDeploy로 AutoScaling Blue/green 배포 환경 구성 EC2 → Target groups → Create target group Target group name: prd-apn2-test-web-tg VPC: prd-apn2-test-vpc EC2 → Security Groups → Create security group Security group name: prd-apn2-test-web-xalb-sg VPC: prd-apn2-test-vpc... awsjenkinsdevopsCI/CDCodeDeployCI/CD AWS CodeDeploy를 이용한 자동 배포 시 환경변수 주입하기 + Spring Boot 이렇게 해두고 개발 서버에 환경변수를 등록해 놓았는데 CodeDeploy는 배포 과정에서 이 변수들을 주입받지 못하였다. 그래서 그냥 배포 후 실행할 스크립트를 서버에 저장해두고(이렇게 하면 변수들을 public한 곳에서 숨긴 채로 배포할 수 있으니까?) CodeDeploy의 hook이 실행될 때 그 파일을 실행하도록 하였는데 정상적으로 작동하지 않았다. 따라서 어쩔 수 없이 프로젝트 디렉토... awsCodeDeploySpring bootCodeDeploy Circleci+AWS-Codeploy를 통해 Stage 환경 등을 자동으로 디버깅 Circleci+AWS-Codeploy를 통해 Stage 환경 등을 자동으로 디버깅하기를 원합니다. 현재 AWS-Codedeploy는 다음 두 가지 방법으로 디버깅을 수행할 수 있습니다. S3으로 압축을 푸는 소스 코드 Giithub의 원본의commiit를 지정하여 산열하고 펼치기 CircleaCI에서 AWS-Codeploy라고 하면 대부분의 경우 S3 방식을 사용한다. 그나저나 본가의doc... CodeDeployGitHubCircleCI2.0AWS AWS CodeDeploy를 사용한 Laavel 어플리케이션 설계 내가 20일째 맡은 일이야 .잘 부탁드립니다. 지난달 에 발표 .AWS CodeDeploy는 EC2 인스턴스를 대상으로 Amazon S3의 구간 또는 GiitHub의 창고에서 소스를 미리 처리하는 서비스입니다. 상세한 설명과 상기 링크와 다른 보도는 이번에 GiitHub 창고에서 EC2까지 Laavel 응용 프로그램을 개발하는 방법을 간단하게 요약하고자 합니다. 일의 순서는 다음과 같다. 설... CodeDeployLaravelAWS Slack에 CodeDeploy 결과 알림 Joolen Advent Calendar 2019 6일째 보도입니다. 전날 보도는 씨의 입니다. 캘린더 URL 여기 있습니다. 응용 프로그램 단위로 공지하면 AWS Chatbot을 사용하면 이 글의 내용보다 슬랙에게 쉽게 공지할 수 있습니다. 그것에 관한 기사는 별도로 제작될 것이다. 프로그램 그룹별로 알림을 하려면 이 글을 참고하십시오. CodeDeploy의 자동 설계를 사용하면 매우 편리... CodeDeployAWSjoolen
Java Code 시리즈를 사용한 CI/CD GitHub에 소스 코드를 푸시하면 AWS의 EC2에 배포되도록 환경을 만들 때 메모를 남기려고합니다. Code 시리즈의 작성 방법 등은 다른 기사를 참조해 주시고, 본 기사에서는 ・배포될 때 자동으로 프로덕션 환경의 설정 파일로 전개되도록 하고 싶다! 가 되었을 때에, 각종 설정 파일(Maven의 pom.xml이나, CodeBuild의 buildspec.yml, CodeDeploy의 app... CodeBuildCodePipelineCodeDeploy자바AWS AWS CodePipeline에서 GitHub 소스를 S3에 배포 CodePipeline 설정 절차 비망록. GitHub에 push를 트리거하고 S3에 자동 배포하고 싶습니다 환경을 나누고 싶다 (개발, 스테이징, 프로덕션) 배포 결과를 slack 통지하고 싶다 1. CodePipeline 설정 파이프라인 이름을 입력하여 처음에는 새 역할을 만듭니다. 소스 프로바이더는 GitHub를 선택. (버전 1은 더 이상 사용되지 않으므로 버전 2 선택.) "새 앱 ... CodeBuildCodePipelineCodeDeployS3AWS CodeBuild+CodeDeploy+CodePipeline에서 EC2에 자동 배포해 보았습니다. Source 아티팩트는 S3의 "codepipeline-ap-northeast-1-…"바게트vue-chat/SourceArti로 출력 vue-chat/SourceArti로 출력된 소스를 CodeBuild가 빌드 동일한 바게트 vue-chat/BuildArtif에 미리 빌드된 소스 출력 vue-chat/BuildArtif의 미리 빌드 된 소스를 CodeDeploy가 수신 EC2에 배치 배포 된... CodePipelineCodeDeployCodeBuild 하나의 CodePipeline 프로젝트에서 여러 ECS 서비스 배포 CodePipeline에서 하나의 프로젝트에서 여러 ECS 서비스를 배포하기 위한 설정 방법에 궁리가 필요했기 때문에 메모 포인트 buildspec.yml 아티팩트에서 배포 할 서비스 수만큼 imagedefinitions.json 생성 Deploy 스테이지의 여러 action을 만들고 buildspec.yml에 따라 생성 된 아티팩트의 imagedefinitions.json 사용 builds... CodeBuildECSCodePipelineCodeDeployAWS 다른 AWS 계정으로 Blue/Green 자동 배포(교차 계정 배포 @ECS Fargate) 다중 계정 환경에서 AWS Fargate 에서 Blue/Green 자동 배포를 설정합니다(개발 환경-> 프로덕션 환경에 배포를 가정). 자동 빌드 설정은 CloudFormation 및 관리 콘솔을 사용합니다. ※이하의 순서를 실행하면, AWS 의 서비스 이용료가 발생합니다. ※개발 환경(배포 원 환경), 프로덕션 환경(배포처 환경)의 전제로 기재합니다. ※개발 환경(배포 원본 환경), 프로덕... BTCFargateCodeBuildCodePipelineCodeDeploy ECS Fargate에서 GitHub WebHook에 Blue/Green 자동 배포 AWS Fargate 에서 Blue/Green 자동 배포를 설정합니다. 소스 리포지토리에는 GitHub, 빌드에는 CodeBuild, 배포 파이프라인에는 CodePipeline를 사용합니다. 자동 빌드 설정은 CloudFormation 및 관리 콘솔을 사용합니다. ※이하의 순서를 실행하면, AWS 의 서비스 이용료가 발생합니다. ※ Fargate 의 Blue/Green 배포 설정이 완료된 것... BTCFargateCodeBuildCodePipelineCodeDeploy AWS CodePipeline을 통과하면 symlink가 텍스트 파일이됩니다. AWS CodePipeline은 기본적으로 Source Build Deploy 3단계에서 CI/CD 파이프라인을 실행합니다. 위의 Source 스테이지 리포지토리에 symlink가 있으면 빌드 스테이지 단계에서 단순한 텍스트 파일로 변경되는 것 같습니다. 다음은 Source 스테이지(CodeCommit 혹은 GitHub 리포지토리)에서의 상태입니다. 이 단계에서는 symlink입니다. 다음으... CodeCommitCodeBuildCodePipelineCodeDeployAWS CodeDeploy를 사용해 보았습니다. Lambda 배포가 잘되지 않기 때문에 Qiita에 쓰면서 노력하기로 결정했습니다. Blue/Green Deploy Blue/Green 배포란? 현재 가동하고 있는 환경과 별도로 또 하나 가동 환경을 작성해, 로드 밸런서등의 라우팅을 신 환경에 향하는 배치 방법입니다. 항상 요청을 받고 있는 실행 중인 서버를 대체하는 것보다 안전하게 배포할 수 있는 것이 장점입니다. 신청 배포 그룹 배포의 ... 람다CodeDeployAWS CodeDeploy 결과를 Slack에 알립니다. AWS Chatbot을 사용하여 CodeDeploy의 성공/실패를 Slack에 알리고 싶습니다. AWS Management Console에서 AWS Chatbot을 탐색하고 Slack을 지정하여 채팅 클라이언트를 설정합니다. slack에 대한 액세스 권한을 부여합니다. 새 채널을 설정합니다. Slack 채널 : 비공개로 채널 ID를 지정합니다 Slack의 채널 ID는 Slack의 채널 링크를... 슬랙AWSChatbotCodeDeployAWS ECS 배포 중 상태 확인을 자동화하는 Appspec의 Hooks 설정 배포에 실패했을 때 자동으로 롤백할 수 있다는 것은 중요하다. ECS의 CodeDeploy에 의한 배포에서는 End-to-End의 상태 확인을 자동화할 수 있다. 상태 확인을위한 Lambda 함수 만들기 Appspec에서는 CodeDeploy의 각 라이프사이클 이벤트를 훅하고 Lambda 함수를 호출할 수 있으므로, 그 훅의 설정(Hooks)을 설정한다. 이번에는 ECS 태스크 배포 후 EL... 람다CodeDeployECSAWS ECS Fargate에서 Blue/Green 배포 설정 AWS Fargate 에서 지원되는 Blue/Green 배포를 설정합니다.CloudFormation 에서 모두 설정하고 싶습니다만, 대응중의 스테이터스(2020/1/12 현재)이므로, CloudFomation 와 매니지먼트 콘솔로 실시합니다. ※이하의 순서를 실행하면, AWS 의 서비스 이용료가 발생합니다. ※ VPC , Subnet , Security Group 등의 NetWork 주위의 ... BTCFargateECSCloudFormationCodeDeploy 【AWS】CodeDeploy를 구현했을 때의 에러와 그 해결까지 CodeDeploy에서 배포 자동화를 구현하려고 할 때 몇 가지 오류가 발생하여 기록으로 남습니다. 거의 범 미스 같은 느낌입니다만, 참고가 되면 다행입니다. 이것은 단순히 .circleci/config.yml 디렉토리에 s3へのアップロード 의 기재를 하지 않았기 때문이었습니다. config.yml 원인은, AfterInstall 이벤트로 사용되고 있던 쉘 스크립트가 반영되어 있지 않은 것이... PHP라라벨CodeDeployAWS 【대 트러블|핀치 503 에러】Amazon EC2 Auto Scaling로 해서는 안되는 설정 미스 ! 인스턴스가 시작하고 즉시 종료하고 시작하고 즉시 종료하고 무한 루프. EC2 Auto Scaling이 왜 시작되고 실패하는지 확인합니다 그리고 갑자기 AMI에서 인스턴스를 단독으로 시작하고 최신 소스 코드를 반영하여 ALB에 연결했습니다. 우선 여러가지 간략화한 그림이지만 이하와 같은 서버 구성도로 되어 있다(EC2는 최소 2대의 구성) 우선, 처음에 STATUS 체크 faild 가 되고... AutoScalingEC2CodeDeployS3AWS AWS CodeDeploy에서 최신 배포된 아티팩트 얻기 현재의 최신의 배포가 끝난 아티팩트의 상태를 보고 처리를 나눌 필요가 있어, awscli로 바삭바삭하게 취득할 수 있는지 조사했는데, 아무래도 1발로는 당길 수 없었습니다. 그래서 쉘로 했습니다. s3의 버킷과 키를 각각 취득하기 위해서 api를 2번 부르는 것은 jq에 의존하고 싶지 않았기 때문입니다. sed도 환경에 의존하기 때문에 설명을 생략하기 위해하지 않았습니다. 1발로 정보를 취득... CodeDeployaws-cliAWS [AWS] Jenkins, CodeDeploy로 AutoScaling Blue/green 배포 환경 구성 EC2 → Target groups → Create target group Target group name: prd-apn2-test-web-tg VPC: prd-apn2-test-vpc EC2 → Security Groups → Create security group Security group name: prd-apn2-test-web-xalb-sg VPC: prd-apn2-test-vpc... awsjenkinsdevopsCI/CDCodeDeployCI/CD AWS CodeDeploy를 이용한 자동 배포 시 환경변수 주입하기 + Spring Boot 이렇게 해두고 개발 서버에 환경변수를 등록해 놓았는데 CodeDeploy는 배포 과정에서 이 변수들을 주입받지 못하였다. 그래서 그냥 배포 후 실행할 스크립트를 서버에 저장해두고(이렇게 하면 변수들을 public한 곳에서 숨긴 채로 배포할 수 있으니까?) CodeDeploy의 hook이 실행될 때 그 파일을 실행하도록 하였는데 정상적으로 작동하지 않았다. 따라서 어쩔 수 없이 프로젝트 디렉토... awsCodeDeploySpring bootCodeDeploy Circleci+AWS-Codeploy를 통해 Stage 환경 등을 자동으로 디버깅 Circleci+AWS-Codeploy를 통해 Stage 환경 등을 자동으로 디버깅하기를 원합니다. 현재 AWS-Codedeploy는 다음 두 가지 방법으로 디버깅을 수행할 수 있습니다. S3으로 압축을 푸는 소스 코드 Giithub의 원본의commiit를 지정하여 산열하고 펼치기 CircleaCI에서 AWS-Codeploy라고 하면 대부분의 경우 S3 방식을 사용한다. 그나저나 본가의doc... CodeDeployGitHubCircleCI2.0AWS AWS CodeDeploy를 사용한 Laavel 어플리케이션 설계 내가 20일째 맡은 일이야 .잘 부탁드립니다. 지난달 에 발표 .AWS CodeDeploy는 EC2 인스턴스를 대상으로 Amazon S3의 구간 또는 GiitHub의 창고에서 소스를 미리 처리하는 서비스입니다. 상세한 설명과 상기 링크와 다른 보도는 이번에 GiitHub 창고에서 EC2까지 Laavel 응용 프로그램을 개발하는 방법을 간단하게 요약하고자 합니다. 일의 순서는 다음과 같다. 설... CodeDeployLaravelAWS Slack에 CodeDeploy 결과 알림 Joolen Advent Calendar 2019 6일째 보도입니다. 전날 보도는 씨의 입니다. 캘린더 URL 여기 있습니다. 응용 프로그램 단위로 공지하면 AWS Chatbot을 사용하면 이 글의 내용보다 슬랙에게 쉽게 공지할 수 있습니다. 그것에 관한 기사는 별도로 제작될 것이다. 프로그램 그룹별로 알림을 하려면 이 글을 참고하십시오. CodeDeploy의 자동 설계를 사용하면 매우 편리... CodeDeployAWSjoolen