1. CI / CD 란?
- 코드가 git에 push 되면 자동으로 테스트와 빌드가 수행되어 안정적인 배포 파일을 만드는 과정을 CI (Continuous Integration - 지속적 통합) 이라고 한다.
- 이 빌드 결과가 자동으로 운영 서버에 무중단 배포까지 진행되는 과정을 CD (Continuous Deployment - 지속적인 배포) 라고 한다.
2. CI의 장점
현대 개발에서는 여러 프로그래머가 하나의 프로젝트를 같이 개발하므로 지속적인 코드가 통합되는 환경(CI)를 구축하고, 테스트코드와 빌드를 수행하면서 자동으로 코드가 통합되어 개발에 집중할 수 있게 한다.
3. CD의 장점
한 두대의 서버에 개발자가 수동으로 배포를 하지않고, 수백대나 긴박하게 배포할 경우 수동으로 하면 오래걸리기 때문에 자동화 하여 개발자가 개발만 집중하게끔 해준다.
4. CI의 4가지 규칙
- 모든 소스 코드가 실행되고 누구든 현재의 소스에 접근할 수 있는 단일 지점을 유지할 것
- 빌드 프로세스를 자동화해서 누구든 소스로부터 시스템을 빌드하는 단일 명령어를 사용할 수 있게 할 것
- 테스팅을 자동화하여 언제든지 시스템에 대한 건전한 테스트를 실행할 수 있게 할 것
- 누구나 현재 실행 파일을 얻으면 가장 완전한 실행파일을 얻었다는 확신을 얻게 할 것
5. Travis CI ?
깃허브에서 제공하는 무료 CI 서비스이다.
젠킨스는 설치해야 하기 떄문에 젠킨스 서버(EC2 인스턴스)가 하나 더 필요하다. (NCP 할땐 맘대로 해서 좋았는데)
배포를 위한 EC2 인스턴스는 돈이 들기 때문에 웹 서비스인 Travis를 사용해보자.
YAML?
JSON에서 괄호를 제거한 것이며, Travis CI는 YAML을 통해 설정하고 있다.
build.gradle과 같은 위치에서 .travis.yml을 생성한 뒤 코드를 추가한다.
language: java
jdk:
- openjdk8
branches:
only:
- main
# Travis CI 서버의 Home
cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.gradle'
script: "./gradlew clean build"
# CI 실행 완료 시 메일로 알람
notifications:
email:
recipients:
- 메일주소 입력
하고 travis에서 확인해보면 빌드가 됨을 확인 할 수 있다.
6. Travis CI와 AWS S3 연동하기
S3란 AWS에서 제공하는 일종의 파일 서버이다. ( NCP의 오브젝트 스토리지 )
이미지 파일을 비롯한 정적 파일이나 배포 파일들을 관리하다. 이미지 업로드를 구현한다면 S3서버를 주로 활용한다.
IAM를 발급받은뒤,
travis의 Environment Variables에 AWS_ACCESS_KEY, AWS_SECRET_KEY를 추가해준다.
여기에 등록된 값들은 .travis.yml에서 변수로 사용될 수 있다.
728x90
'개발 공부 기록 > 03. AWS' 카테고리의 다른 글
AWS에서 무중단 서비스를 구축해 보자. (1) | 2023.11.28 |
---|---|
AWS EC2 서버에 프로젝트를 배포해보자. (0) | 2023.11.26 |
Windows에서 putty를 이용하여 aws ec2와 rds 서버에 접속해보자. (1) | 2023.11.26 |
AWS RDS 데이터베이스 환경을 만들어보자. (0) | 2023.11.26 |
AWS EC2 회원가입 및 설정을 따라해보자. (3) | 2023.11.26 |