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 【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를 이용한 자동 배포 시 환경변수 주입하기 + 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] 설계 오류 대책 비망록(주로 AppSpec) CodeDeploy에서 depro에서 발생한 오류와 대책에 대한 비망록 주로 AppSpec의 쓰기 방법입니다. S3에 원본 파일 그룹을 zip 파일로 배치하고 이 파일을 사용하여CodeDeploy로 EC2를 처리합니다 디렉토리 구성은 다음과 같습니다. 모든 디렉터리/파일의 소유자, 그룹의fuga 644www/tmp의 권한 위임ww/tmp/request 644ww/tmp/response 권한 ... AWSCodeDeployappspectech CodeCommit+CodeDeploy+CodePipline 자동화 어플라이언스를 통해 시도해 보았지만, 코드의 향상과 depro를 수동으로 실행해야 합니다. 번거로움과 오류를 없애기 위해 이번에는 CodeCommit+CodeDeploy+CodePipline을 사용하여 depro를 자동화했습니다. CodeCommit AWS 콘솔의 CodeCommiit에서 웨어하우스 제작 창고 방문을 위한 인증 정보를 만듭니다. ※"AWS 콘솔→IAM→사용자→사용자 선택→인증 정보" 인증 방법은... CodeCommitCodeDeployAWSCodePipeline AWS CodeDeploy를 사용하여 PHP 어플리케이션 디버깅 AWS CodeDeploy는 Amazon EC2 인스턴스와 시작 보너스 실행 인스턴스를 포함한 다양한 인스턴스에 대한 자동 코드 디버깅 서비스입니다.AWS CodeDeploy를 사용하면 디버깅 중에 다운타임이 발생하지 않도록 애플리케이션을 더욱 쉽게 업데이트하고 새로운 기능을 빠르게 발표할 수 있습니다.AWS CodeDeploy를 사용하면 오류가 발생하기 쉬운 수동 작업과 인프라 시설의 서비... CodeDeployPHPAWS
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 【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를 이용한 자동 배포 시 환경변수 주입하기 + 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] 설계 오류 대책 비망록(주로 AppSpec) CodeDeploy에서 depro에서 발생한 오류와 대책에 대한 비망록 주로 AppSpec의 쓰기 방법입니다. S3에 원본 파일 그룹을 zip 파일로 배치하고 이 파일을 사용하여CodeDeploy로 EC2를 처리합니다 디렉토리 구성은 다음과 같습니다. 모든 디렉터리/파일의 소유자, 그룹의fuga 644www/tmp의 권한 위임ww/tmp/request 644ww/tmp/response 권한 ... AWSCodeDeployappspectech CodeCommit+CodeDeploy+CodePipline 자동화 어플라이언스를 통해 시도해 보았지만, 코드의 향상과 depro를 수동으로 실행해야 합니다. 번거로움과 오류를 없애기 위해 이번에는 CodeCommit+CodeDeploy+CodePipline을 사용하여 depro를 자동화했습니다. CodeCommit AWS 콘솔의 CodeCommiit에서 웨어하우스 제작 창고 방문을 위한 인증 정보를 만듭니다. ※"AWS 콘솔→IAM→사용자→사용자 선택→인증 정보" 인증 방법은... CodeCommitCodeDeployAWSCodePipeline AWS CodeDeploy를 사용하여 PHP 어플리케이션 디버깅 AWS CodeDeploy는 Amazon EC2 인스턴스와 시작 보너스 실행 인스턴스를 포함한 다양한 인스턴스에 대한 자동 코드 디버깅 서비스입니다.AWS CodeDeploy를 사용하면 디버깅 중에 다운타임이 발생하지 않도록 애플리케이션을 더욱 쉽게 업데이트하고 새로운 기능을 빠르게 발표할 수 있습니다.AWS CodeDeploy를 사용하면 오류가 발생하기 쉬운 수동 작업과 인프라 시설의 서비... CodeDeployPHPAWS