Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- TypeScript
- 크롬 익스텐션
- 백준 7579
- 포도주시식
- 2156
- 갓생
- nodejs
- Chrome Extension
- 동적계획법
- 백준 #7568번 #파이썬 #동적계획법
- 백준
- 크롬 확장자
- discord.js
- webpack
- popup
- content script
- 디스코드 봇
- 캠스터디
- Message Passing
- C언어로 쉽게 풀어쓴 자료구조
- supabase
- 공부시간측정어플
- X
- react
- 프로그래머스 #정수삼각형 #동적계획법
- background script
- 파이썬
- 자료구조
Archives
- Today
- Total
히치키치
이상청 : Github actions 이용한 AWS 배포 CI/CD 본문
CI/CD
💙 어플리케이션 개발 단계부터 배포까지 자동화를 통해 효율적이고 빠르게 사용자에게 빈번히 배포할 수 있는 것
파이프라인
Code ⇒ Build ⇒ Test ⇒ Release ⇒ Deploy
CI : Continuous Integration
- 코드 변경 사항을 주기적으로 빈번하게 머지함
- 통합을 위한 단계 (빌드, 테스트, 머지)의 자동화
- 주기적으로 머지된 코드의 변경 사항이 자동으로 빌드가 되어야 함
- 코드 변경 사항 이후에도 코드의 빌드 성공 여부 확인되어야 함
- 코드 변경 사항으로 인해 기존 시스템에 버그 초래 여부 테스팅 진행함
→ 개발 생산성 향상, 빠른 코드 결함과 문제점 발견으로 인한 버그 수정 용이
CD : Continuous Delivery / Continuous Deployment
- Continuous Delivery
- CI 통해 주기적으로 머지된 변경사항이 자동으로 빌드와 테스팅이 완료되었다면 Prepare Release 거침
- 준비된 Release가 문제가 없는지 직접 검증하고 수동적으로 Release를 deploy함
- Continuous Deployment
- CI 통해 주기적으로 머지된 변경사항이 자동으로 빌드와 테스팅이 완료되었다면 Prepare Release 거침
- Release가 준비가 되자마자 자동으로 사용자에게 배포되도록 함→ 최종 단계 자동화 여부/범위에 따라 Delivery와 Deployment 구분
Github Action을 통한 CI/CD
💙 개발 프로세스 핵심 : 자동화
개발환경 :
Git (버전 관리 시스템) + Github (Git 배포) + Github Actions (Jenkins, BuildKite 등 별도의 외부 툴 필요)
Github Actions 개념
1. Events
- 어떤 일이 발생했는 지 지정
- 예시) Main Branch로 머지, 커밋 푸시, 이슈 Open
2. Workflows
- 특정 이벤트 발생 시 내가 자동화 실행하고 싶은 스크립트 작성
- Workflow > 한개 이상Jobs 존재 > Steps 명시
3. Jobs & Steps
- Jobs : 병렬적 동시 다발적으로 수행됨 (순차적 수행 설정 가능)
- Steps : 어떤 순서대로 Job이 실행되어야 하는지 단계 명시예시) Shell Script 작성, npm, Github Actions
4. Actions
- Runners각각의 job은 개별적인 독립적인 컨테이너에서 실행됨
- 예시) VM, Docker Container
Github Actions 예시 코드 분석
.github/workflows/workflow.yml
1. name : 어떤 workflow인지 이름 명시 → Publish 워크플로우
2. on : 어떤 이벤트가 발생 시 workflow 실행되는지 명시 → main 브랜치에 푸시 발생 시 해당 워크 플로우 실행
3. Jobs : 해당 이벤트 발생 시 어떤 jobs이 실행되는지 명시 → build (job 이름) 수행
- runs-on : 어떤 VM 사용하는지 명시 : 우분투 최신 버전 사용
- steps : 어떤 순서대로 수행해야하는지 명시
- name : checkout source code (steps 이름) 수행
- uses : 수행 명령어 : 깃허브 액션에서 main checkout 하기
프론트엔드 인프라 구축 전략
💙 가비아 도메인 + S3 + CloudFront + Route53 + ACM 사용해 https 배포
인프라 구축 전략에 따른 CI/CD PipeLine
1. Continuous Integration
2. Continuous Deployment
Cl/CD PipeLine에 맞는 Github-Actions Workflow 생성
Github Repo Workflow 확인 해보기
Github Repo ReadMe에 Workflow 현황 배지
'이상청' 카테고리의 다른 글
이상청 : OpenGraph Protocol 사용한 SEO 처리 (단순링크, 트위터 공유) (0) | 2022.08.08 |
---|---|
이상청 : CSS Position과 Canvas, html link를 사용한 곰돌이 아바타 (0) | 2022.08.08 |
이상청 : 미디어쿼리와 useWindowWidth() 이용한 반응형 웹페이지 (0) | 2022.08.08 |
이상청 : Axios interceptor, instance 모듈화 통한 api 통신 (0) | 2022.08.08 |
이상청 : Recoil 사용한 비동기적 상태관리 & 사용자 경험 향상 (0) | 2022.08.07 |
Comments