코드 3형제를 사용하여 ECS를 계속 진행하는 방법
6174 단어 AWS
CodeCommiit 는 Backlog Giit 를 지원하지 않으며, CodeXXX 는 매우 많아서 사용하기 어렵다는 인상을 준다
뿌리를 내리긴 했지만 AWS Summit Tokyo 2019 중외지에서 CodeBuild, CodeDeploy, CodePipeline
ECS 환경에서 (상) 디자인할 수 있는 곳이 있기 때문에 이 기회를 시험해 봤습니다.
AWS資格試験
(땀을) 위해개요
CodeCommiit 창고에 등록한 후
CodeBuild를 통한 Docker 이미지 구축
ECR별
ECS에 반영하는 단계입니다.
전제 조건
CodeCommit
이번에는 CodeCommiit 를 사용합니다.
CodeCommiit에서 창고를 준비하고 구축하려는 응용 프로그램의 코드를 Commit & Push로 만듭니다.
buildspec.yml의 준비
다음 샘플buildspec.복사 후 사용 중인 어플리케이션을 업데이트합니다
runtime-versions
.runtime-versions에서 지원하는 언어 버전은 아래에 기재되어 있습니다.
https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html
또한
<container-definition>
는 ECS에서 사용되는 컨테이너 이름으로 변경됩니다.컨테이너 이름은 ECS의 작업 정의를 통해 확인할 수 있습니다.
편집된 파일은 대상의 창고 경로에서commiit &push를 진행합니다.
buildspec.yml
version: 0.2
phases:
install:
runtime-versions:
# golang: 1.12 # アプリケーションによって書き換え
# ruby: 2.6
pre_build:
commands:
- echo Logging in to Amazon ECR...
- $(aws ecr get-login --no-include-email --region ap-northeast-1)
build:
commands:
- echo Build started on `date`
- echo Building the Docker image...
- docker build -t $ECR_NAME:$ECR_VERSION .
- echo docker tag $ECR_NAME:$ECR_VERSION $ECR_ID.dkr.ecr.ap-northeast-1.amazonaws.com/$ECR_NAME:$ECR_VERSION
- docker tag $ECR_NAME:$ECR_VERSION $ECR_ID.dkr.ecr.ap-northeast-1.amazonaws.com/$ECR_NAME:$ECR_VERSION
post_build:
commands:
- echo Build completed on `date`
- echo Pushing the Docker image...
- docker push $ECR_ID.dkr.ecr.ap-northeast-1.amazonaws.com/$ECR_NAME:$ECR_VERSION
- printf '[{"name":"<container-definition>","imageUri":"%s"}]' $ECR_ID.dkr.ecr.ap-northeast-1.amazonaws.com/$ECR_NAME:$ECR_VERSION > imagedefinitions.json # <container-definition> もお使いのコンテナ名に書き換え
artifacts:
files: imagedefinitions.json
ECR 의 복제품 과 버전 등 하드웨어 인코딩 도 가능 하다실전에 더욱 적합하도록 환경 변수로 정의한다.
다음에 설명한
CodeBuild
프로젝트를 만들 때 이 환경 변수를 정의합니다.CodeBuild
주의해야 할 항목만 기재되었다.
CodeBuild 프로젝트 만들기
Environment 설정
요점
AmazonEC2ContainerRegistryFullAccess
수여설치 프로젝트 등runtime-versions를 설정하지 않아도 괜찮지만aws/codebuild/standard:2.0을 지정했을 때 반드시 필요합니다.
환경 변수
다음 항목과 일치하도록 환경 변수를 설정합니다.
$ECR_ID.dkr.ecr.ap-northeast-1.amazonaws.com/$ECR_NAME:$ECR_VERSION
ECR_VERSION(이미지 태그)은 기본적으로 사용됩니다latest
.IAM Role for CodeBuild and ECR
IAM Role
AmazonEC2ContainerRegistryFullAccess
주다이렇게 하면 이미지를 ECR로 미룰 수 있다.
개별 빌드 실행
성공을 보장하기 위해 수동으로 구축합니다.
여기서 성공하지 못하면 CodePipeline은 실패하겠죠.
CodePipeline
소스 공급자와의 ~CodeCommiit 협력
CodeCommiit, Giithub 등의 공급업체를 선택하십시오.
이번에 사용한 것은 CodeCommiit이기 때문에 CodeCommiit의 창고와 지점을 지정합니다.
디버그 단계~ECS와의 합작 선택
ECS 선택
ECS의 클러스터 이름 및
ECS의 서비스 이름
선택하십시오.
결과를 확인하다
push 후 실행 여부 확인
Deploy까지 Succeeded이면 ECS의 최신 코드(이미지 구축)
(아마도)
사용한 소감.
ECS에서 이미 실행 중이면 CodeCommiit에서 ECS로의 디버깅까지 CI/CD를 사용할 수 있습니다.
로컬build &push에서 의외로 시간이 걸리고 로컬 PC도 영향을 미쳐 의외로 사용할 수 있을 것 같다는 것을 느꼈습니다.
백로그 지트에 지원돼 람바다 등을 사용하지 않고 depro 결과를 할 수 있는 슬랙 연대 등이 이뤄지면 이전을 논의할 예정이다.
Reference
이 문제에 관하여(코드 3형제를 사용하여 ECS를 계속 진행하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ytanaka3/items/d643b7fd821bd45e1f0d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)