실습

CodeCommit

  1. CDK를 통해서 실습 환경을 구축하세요.

    cdk deploy codecommit
  2. Outputs에서 인스턴스 ID 및 CodeCommit 리포지토리 이름을 확인할 수 있습니다.

  3. AWS Systems Manager Session Manager를 통해서 EC2 인스턴스에 접속하세요.

  4. 아래의 명령어를 실행해서 ec2-user로 전환하세요.

    sudo -i
    su ec2-user
    cd
  5. 아래의 명령어를 실행해서 AWS CLI에 설정된 자격증명을 확인하세요.

    aws sts get-caller-identity
  6. 해당 문서를 참고해서 위에서 확인한 IAM 유저에게 CodeCommit 리포지토리에 대한 쓰기 권한을 부여하세요.

  7. /home/ec2-user/mycode 디렉토리 안에 있는 파일을 Outputs에 나온 CodeCommit 리포지토리로 업로드 하세요.

  8. 수동으로 생성한 리소스들을 삭제하고 CDK를 통해서 실습 환경을 삭제하세요.

    cdk destroy codecommit

CodeBuild

  1. CDK를 통해서 실습 환경을 구축하세요.

    cdk deploy codebuild
  2. Outputs에서 인스턴스 ID, CodeBuild 프로젝트, CodeCommit 리포지토리 및 ECR 리포지토리 이름을 확인할 수 있습니다.

  3. Outputs에서 나온 CodeBuild 프로젝트를 확인해 보면 실행중이거나 완료된 빌드를 확인할 수 있습니다. 만약 빌드가 실행중이라면 완료될때까지 기다리세요.

  4. 빌드가 실패했다면 CodeBuild 프로젝트 설정 혹은 Dockerfile을 확인해서 빌드가 성공되도록 수정하세요. buildspec.yml 파일에는 아무 문제가 없습니다. 소스코드는 Outputs에서 나온 CodeCommit 리포지토리에서 확인 가능합니다.

  5. 빌드가 성공했으면 Outputs에서 나온 ECR 리포지토리에 컨테이너 이미지가 추가 되었는지 확인하세요.

  6. AWS Systems Manager Session Manager를 통해서 EC2 인스턴스에 접속하세요.

  7. 컨테이너 이미지를 호스트의 80번 포트에 연동해서 실행시키고 웹브라우저에서 인스턴스의 퍼블릭 IP로 접근했을때 "Hello World"가 출력되는지 확인하세요.

  8. Amazon EventBridge를 통해서 Outputs에서 나온 CodeCommit 리포지토리에 새로운 Commit이 생성되면 Outputs에서 나온 CodeBuild 프로젝트의 빌드를 자동으로 시작하도록 구성하세요.

  9. app.py 파일을 수정해서 웹서버의 인덱스 페이지가 "Hello CodeBuild"를 출력하도록 하고 변경분을 CodeCommit 리포지토리에 반영하세요. 해당 변경분에 대한 Commit ID를 메모하세요.

  10. CodeBuild 프로젝트로 이동해서 새로운 빌드가 실행중인지 확인하세요.

  11. 빌드가 성공했으면 ECR 리포지토리에 새로운 컨테이너 이미지가 추가 되었는지 확인하세요. 이미지의 태그값은 9번에서 확인한 Commit ID와 동일해야 합니다.

  12. AWS Systems Manager Session Manager를 통해서 EC2 인스턴스에 접속하세요.

  13. 새로운 컨테이너 이미지를 호스트의 80번 포트에 연동해서 실행시키고 웹브라우저에서 인스턴스의 퍼블릭 IP로 접근했을때 "Hello CodeBuild"가 출력되는지 확인하세요.

  14. 수동으로 생성한 리소스들을 삭제하고 CDK를 통해서 실습 환경을 삭제하세요.

    cdk destroy codebuild

CodeDeploy

  1. CDK를 통해서 실습 환경을 구축하세요.

    cdk deploy codedeploy
  2. Outputs에서 CodePipeline 이름 및 ALB와 연동된 도메인 주소를 확인할 수 있습니다. 해당 CodePipeline 구성을 통해서 생성된 CodeCommit 리포지토리, CodeBuild 프로젝트, CodeDeploy 애플리케이션 및 기타 리소스등을 확인하세요.

  3. Outputs에서 확인한 CodePipeline의 상태를 보면 배포가 진행중이거나 완료된 배포를 확인할 수 있습니다. 만약 배포가 진행중이라면 완료될때까지 기다리세요.

  4. 배포가 실패했다면 CodeDeploy 관련 구성 및 설정 파일들을 확인해서 배포가 성공하도록 수정하세요. 애플리케이션 소스코드 및 CodeBuild 설정에는 아무 문제가 없습니다.

  5. 배포에 성공했으면 Outputs에서 확인한 ALB 도메인 주소로 접속해서 웹페이지에 "Welcome to my website"가 출력이 되고 대상그룹에 포함된 인스턴스들로 트래픽이 분산되는지 확인하세요.

  6. 애플리케이션 소스코드(main.go)를 수정해서 웹페이지에 "Welcome to my new website"가 출력되도록 수정하세요.

  7. 배포에 성공했으면 Outputs에서 확인한 ALB 도메인 주소로 접속해서 웹페이지에 "Welcome to my new website"가 출력되는지 확인하세요.

  8. 배포가 실패했거나 혹은 배포가 성공했으나 수정분이 반영이 안되는 경우에는 CodeDeploy 관련 구성 및 설정 파일들을 확인해서 소스코드 수정분이 반영되도록 고치세요.

  9. 오토스케일링 그룹의 Desired Capacity 값을 3으로 변경해서 1개의 인스턴스가 추가되도록 하고 해당 인스턴스에 자동으로 애플리케이션이 배포되는지 확인하세요.

  10. ALB 도메인 주소로 접속해서 새로 추가된 인스턴스에도 트래픽이 분산되는지 확인하세요.

  11. 수동으로 생성한 리소스들을 삭제하고 CDK를 통해서 실습 환경을 삭제하세요.

    cdk destroy codedeploy

CloudFormation

  1. 해당 링크를 통해서 CloudFormation 템플릿을 다운로드 받으세요.

  2. 다운로드 받은 템플릿으로 CloudFormation 스택을 생성하세요.

  3. 템플릿의 오류로 스택 생성에 실퍠할 경우에는 템플릿을 수정해서 스택이 정상적으로 생생되도록 하세요.

  4. 스택 생성 완료되면 Outputs에서 나온 ALB 도메인 주소로 접속해서 웹페이지가 정상으로 보이는지 확인하세요.

  5. 생성한 CloudFormation 스택을 삭제하세요.

Last updated