일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 에어플로우
- Django
- 웹크롤링
- 데이터웨어하우스
- 클라우드
- 데브코스
- DataWarehouse
- 알고리즘
- 프로그래머스
- 기술면접
- airflow
- 운영체제
- 관계형데이터베이스
- CS
- AWS
- 웹자동화
- 취준
- WEB
- Service
- 파이썬
- Amazon
- 데이터엔지니어링
- 부트캠프
- 웹스크래핑
- 데이터엔지니어
- 개념정리
- 자료구조
- 개발
- SQL
- 데이터베이스
- Today
- Total
사진과 음악을 좋아하는 개발자 지망생의 블로그
[클라우드] 6. CI / CD 본문
CI / CD
1) CI? CD?
- CI (Continuous Integration, 지속적 통합)
→ 모든 개발자가 개발한 코드를 공유 리포지토리에 하루에도 여러번 코드를 커밋하고 병합하는 것
- CD (Continuous Delivery, 지속적 전달)
→ 개발팀이 짧은 주기로 소프트웨어를 개발하고 언제든지 운영환경으로 안정적으로 배포하는 것
2) CodeCommit
- Amazon Web Services 호스팅되는 버전 관리 서비스
- 클라우드에서 자산 (예: 문서, 소스 코드, 바이너리 파일)을 비공개로 저장하여 관리하는 데 사용할 수 있도록 함
3) Code Commit 특징
① Benefit from a fully managed service hosted by AWS
- AWS CodeCommit은 AWS에서 완전히 관리되는 서비스로 제공됨
- 이는 AWS가 서버 인프라, 확장성, 백업 및 유지 관리에 대한 책임을 가지고 있다는 것을 의미
- 사용자는 코드 저장소를 관리하고 프로젝트를 개발하는 데 집중할 수 있음
② Store your code securely
- AWS CodeCommit은 코드를 안전하게 저장할 수 있는 환경을 제공함
- AWS의 안정성 및 보안 모범 사례에 따라 저장되며, 데이터 보호 및 액세스 제어를 위한 다양한 보안 기능을 제공
③ Work collaboratively on code
- CodeCommit은 팀 내에서 협업적으로 코드를 작업할 수 있는 기능을 제공함
- 여러 사용자가 동시에 작업하고 코드 변경 사항을 추적하며, 충돌을 방지하고 병합하는 기능을 제공하여
팀의 개발 프로세스를 원활하게 관리할 수 있음
④ Easily scale your version control projects
- CodeCommit은 버전 관리 프로젝트를 쉽게 확장할 수 있도록 설계됨
- 코드 저장소를 필요에 따라 확장하고, 대용량의 코드베이스를 처리하며, 여러 팀과 프로젝트를 효과적으로 관리 가능
⑤ Store anything, anytime
- CodeCommit은 코드 뿐만 아니라 모든 종류의 파일과 리소스를 저장할 수 있는 유연성을 제공
- 프로젝트 문서, 구성 파일, 이미지 등 다양한 유형의 파일을 저장하고 관리가 가능함
⑥ ntegrate with other AWS and third-party services
- CodeCommit은 다른 AWS 서비스 및 제3자 도구와의 강력한 통합 기능을 제공함
- AWS 서비스와의 통합을 통해 개발 프로세스를 자동화하고, 지속적 통합/지속적 전달 파이프라인을 구축하고,
테스트 및 배포 프로세스를 개선이 가능함
⑦ Easily migrate files from other remote repositories
- CodeCommit은 다른 원격 저장소에서 파일을 쉽게 마이그레이션할 수 있는 기능을 제공
- 기존의 원격 저장소(예: Git, Subversion)에서 CodeCommit으로 코드와 버전 이력을 원활하게 이전할 수 있음
⑧ Use the Git tools you already know
- CodeCommit은 이미 익숙한 Git 도구를 사용하여 코드 저장소를 관리가 가능함
- Git 클라이언트 및 명령줄 도구와 호환되므로 사용자는 이미 알고 있는 Git 워크플로우를 그대로 유지하면서
CodeCommit을 사용할 수 있음
4) CodeBuild
- AWS CodeBuild는 AWS가 CodeBuild 서비스의 배포, 운영, 확장 등을 모두 관리하는 완전관리형 빌드 서비스
- CodeBuild는 빌드 작업의 규모를 쉽게 확장할 수 있으며, 필요에 따라 빌드 리소스를 자동으로 조정하여
대규모 빌드 작업을 처리할 수 있음
- Java, Python, Node.js, Ruby, Go 등과 같은 다양한 언어와 AWS 서비스, Docker 등을 통한 컨테이너 기반 빌드를 지원
- 빌드 작업은 격리된 환경에서 실행되며, AWS Identity and Access Management (IAM)을 사용하여
액세스 제어를 관리할 수 있음
- 사용자가 필요에 맞게 빌드 환경을 사용자 정의할 수 있다. 사용자 지정 빌드 스크립트를 작성하고,
필요한 의존성 패키지를 설치하고, 테스트 및 빌드 단계를 구성할 수 있다.
5) CodeDeploy
- Amazon EC2 인스턴스, 온프레미스 인스턴스, 서버리스 Lambda 함수 또는 Amazon ECS 서비스로
애플리케이션 배포를 자동화하는 배포 서비스
- 다음을 포함하여 다양한 애플리케이션 콘텐츠를 거의 무제한으로 배포가능.
→ 코드, 서버리스 AWS Lambda 함수, 웹 및 구성 파일, Executables, 패키지, 스크립트, 멀티미디어 파일
- CodeDeploy는 서버에서 실행되고 Amazon S3 버킷, GitHub 리포지토리 또는 Bitbucket 리포지토리에
저장되는 애플리케이션 콘텐츠들 배포가능
- 또한, CodeDeploy는 서버리스 Lambda 함수 배포 가능
- CodeDeploy를 사용하기 위해 기존 코드를 변경할 필요가 없음.
6) CodePipeline
- 애플리케이션 및 인프라 업데이트를 안전하고 빠르게 진행하기 위한 릴리스 파이프라인을 자동화하는 데
도움을 주는 완전관리형의 지속적 전달 서비스
- 특징
① 소프트웨어 릴리스 프로세스를 모델링하고, 서버를 설정하거나 프로비저닝할 필요성을 줄일 수 있음
② AWS Management Console 또는 AWS command line interface(CLI)를 사용하여 소프트웨어 릴리스 프로세스 단계를
정의할 수 있음
③ 피드백을 반복하고 각 코드 변경을 테스트하여 버그를 포착하는 새로운 기능을 신속하게 릴리스할 수 있음
④ 릴리스 프로세스의 모든 단계에서 자체 플러그 또는 사전 구축된 플러그인을 사용하여 필요에 맞추어 조정할 수 있음
'개발 > 클라우드(with amazon)' 카테고리의 다른 글
[클라우드] 7. AWS CLI, Docker (2) | 2023.05.19 |
---|---|
[클라우드] 5. S3 (0) | 2023.05.17 |
[클라우드] 4. IAM (0) | 2023.05.17 |
[클라우드] 3. Network (0) | 2023.05.16 |
[클라우드] 2. DB (SQL vs NoSQL, Amazon Relational Database Service, Amazon DocumentDB) (0) | 2023.05.16 |