본문 바로가기
젠킨스

Jenkins를 활용한 CI/CD 2강 - 젠킨스 개발환경 및 CI/CD 기본 동작 이해

by SAMSUNG CLOUD-OKY 2020. 11. 17.
반응형

 

 

 

## 개발 환경의 종류

- DEV / QA / PROD 

 

 

 

 

 

 

 

 

## 개발 프로세스

- 빌드 -> 코드 배포 -> 테스트  

 

 

 

 

 

 

 

 

 

 

 

 

## 여러 배포환경의 관리에서 핵심은 인프라를 모듈화하여 어떤것이 변수인지 잘 설정하고 이를 잘 설계하는것.

- APP_ENV 처럼 현재 배포하고자 하는 것이 무슨환경인지 설정하고 앱내에서 사용하는 다양한 변수들을 APP_ENV에

  맞게 잘 가져다 쓰는 것이 핵심

- 클라우드 리소스 내에서 인프라별 키관리가 매우 중요해서 AWS System Manager의 parameter store 와 같은

  키 관리 서비스를 추천

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

## S3

- Simple Storage Service

- 정적 웹사이트 코드배포에 용이

- 정적 웹사이트 호스팅에 필요한 다양한 기능 제공

- AWS Cloudfront 와 함께 사용해서 최적화 가능하고 DNS관리도 가능

 

 

 

 

 

## ECR

- Elastic Container Registry

- 도커 이미지를 저장하는 프라이빗 레포지토리

- 실제 PRD 환경에서는 컨테이너 기반의 배포(ECS 등을 활용) 할 것이기 때문에 반드시 레포지토리가 있어야 함.

 

 

 

 

 

 

 

 

## ECS (Elastic Container Service)

- 도커 컨테이너 기반으로 서비스 운용을 가능하게 해주는 간단한 서비스

- 무중단 배포 (rolling update) 를 제공하며, Scale up 이 가능

- 백엔드 서비스를 스케일업 가능한 형태로 배포하는데 최적화

- 수많은 도커 컨테이너 서버를 띄우고 LB가 이들 사이에 밸런싱을 해줌

- Fargate, EC2 모드가 있어서 Docker Container 리소스만 띄우거나 혹은 물리적인 EC2 인스턴스 클러스터 구성 가능

 

- ECS 혹은 k8s 등을 통해 rolling deploy 가 처리되기 때문에 젠킨스의 역할은 배포 명령만 내려주면 된다.

  : aws ecs update-service '서비스 이름'

 

 

 

 

 

 

 

## 계정 분리 권장

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글