지속적 전달 파이프라인 생성

https://aws.amazon.com/ko/getting-started/hands-on/create-continuous-delivery-pipeline/

위 링크는 Github 에 소스를 fork 하여 다운로드 받아, aws 환경에 node.js 기반 웹 어플리케이션을 배포하는 튜토리얼입니다.

TO DO

  • Github 리포지토리 설정
  • AWS Elastic Beanstalk 환경 설정 (web app 배포를 위한)
  • AWS CodeBuild 구성 (Github 소스코드 build)
  • AWS CodePipeline 활용 소스, 빌드, 배포까지의 지속적 전달 파이프라인 설정.

Application Archiecture

  • AWS CodePipeline 은 아래 요소들을 연결하여, 지속적 전달 파이프라인을 구성한다.
    • Git Repository
    • AWS CodeBuild
    • Manual Approval
    • AWS ElasticBeanstalk

https://d1.awsstatic.com/webteam/getting_started/GSRC%202020%20updates/DevOps%20Engineer/Module-5.7671640ce429a5183243197ef3c266bcd3d4aa20.png

Module 1

Git 활용 코드 리포지토리 상호 작용.

Git - 소스코드 변경사항 관리 오픈소스 버전 제어 도구

Git Repo - 메타데이터 포함 버전 제어 시스템 포함 모든 파일, 디렉토리가 있는 위치.

Git Commit - 변경 사항 기록 메소드

Repository push - 로컬 호스트 소스를 원격에 적용

Repository fork - 기존 레포지토리 복사본 생성

Module 2

AWS Elastic Beanstalk 에 어플리케이션 배포.

  • 구성
    • Application 실행에 필요한 aws resource
    • ec2 instance - 클라우드 가상서버 (환경 생성 시 하나 이상의 amazon ec2 instance)
    • 웹 서버 - http protocol 활용 인터넷 제공 콘텐츠 소프트웨어
    • platform - OS, 프로그래밍 언어 런타임, 웹 서버, 어플리케이션 서버 및 Elastic Beanstalk 구성요소의 집합.

Module 3

AWS CodeBuild 활용 Github 리포지토리 소스를 작성함.

  • To Do
    • 빌드 프로젝트 생성
    • Github 를 프로젝트 소스 공급자로 설정
    • AWS CodeBuild에서 빌드 실행
  • 튜토리얼은 위 링크에 있는 AWS 가이드대로 따라하시면 됩니다.

Module 4

AWS CodePipeline 활용 소스, 빌드, 배포 단계로 구성된 CI/CD Pipeline 구성.

  • To Do
    • AWS CodePipeline 지속적 전달 파이프라인 구성
    • Github 리포지토리 활용 소스 단계 구성
    • AWS CodeBuild 를 통한 빌드단계 구성
    • AWS ElasticBeanstalk application 활용 배포 단계 구성
    • 파이프라인 활용 호스팅 Application 을 Elasticbeanstalk 에 배포
  • 주요 개념
    • 지속적 전달 : 빌드, 테스트, 배포를 자동화하여 소프트웨어를 더 빠르게 릴리즈함.
    • 파이프라인 : 소프트웨어 변경사항을 전달하는 워크플로우 모델
    • 단계 : 파이프라인 내 각 작업 수행되는위치.
    • 작업 : 실행되는 테스크 들의 집합.
  • 튜토리얼
    • 소스단계 구성
      • 소스공급자 : Github 1
      • 리포지토리 : Github 프로젝트 설정
      • 브랜치 : main
      • 웹 후크 설정
    • 빌드단계 구성
      • 빌드공급자 : AWS CodeBuild
      • 리전 : 미국 서부
      • 프로젝트이름 : Build-DevOpsGettingStarted
      • 단일 빌드
    • 배포단계 구성
      • AWS ElasticBeanstalk
      • 미국 서부
      • DevOpsGettingStarted App
      • DevOpsGettingStarted env

Module 5

AWS CodePipeline 에 검토 단계 추가.

서비스 변경 시 승인 후 배포하도록 하는 단계 추가.

(작업 거부 혹은 7일 내 아무도 승인 안할경우 작업 실패와 동일)

  • To DO
    • AWS CodePipeline Console 오픈
    • Review 단계 추가
    • 검토 그룹 - 작업 그룹 추가
    • 작업 이름 : Manual Review

Build 진행 중에 Review 단계를 추가하면, Build 가 성공된 후 Review 에서 승인 버튼 누르면, AWS ElasticBeanstalk 콘솔에서 Devopsgettingstarted-env 에 있는 도메인을 클릭하면 Node.js Application 이 배포됨을 확인할 수 있다.

요약

Jenkins 로 Pipeline 을 구성하더라도, AWS CodePipeline 과 동일하게 나온다.

Github 프로젝트만 구성되어 있다면, CI/CD 를 하나의 화면에서 모두 처리할 수 있다는 건 확실한 장점이라고 생각합니다. 업무에 바로 활용하기 보다는 AWS 에서 이런 기능이 있다 정도로만 알고 넘어가면 될 것 같습니다.

'개발 > AWS' 카테고리의 다른 글

AWS VPC 튜토리얼  (0) 2020.12.14

+ Recent posts