기술 정리 & CS/기술면접 대비

[기술면접 대비] CI-CD, Infra, Cloud

yubi5050 2022. 10. 1. 04:11

👉 1. CI CD란?

CI 

빌드 자동화, 유닛 및 통합 테스트, 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미

애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 개발자가 서로 충돌할 수 있는 문제를 해결 가능

 

CD 

지속적인 서비스 제공(Continuous Delivery) or 지속적인 배포(Continuous Deployment)를 의미

개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것을 의미

 

👉 2. EC2, ECS, S3, IAM, Lambda, S3, SQS, ElasticCache, EKS 등

EC2 (Elastic Compute Cloud ) : 컴퓨팅 자원

ECS (Elastic Container Service) : 컨테이너 오케스트레이션 서비스

S3 (Simple Storage Service) : Object Storage Service (not filesystem)

IAM (Identify Access Management) : 계정 권한 관리

EKS (Elastic Kubernetes Service) : 매니지드 쿠버네티스 서비스

Lambda : 서버리스 컴퓨팅 서비스로 코드만을 배포

ElasticCache : 인 메모리 캐시 서비스 (Redis, Memcached 제공)

SQS (Simple Queue Service) : 매니지드 메시지 큐 서비스, 메시지 처리 보장

 

참고 문헌 : https://www.44bits.io/ko/keyword/amazon-web-service#%EC%95%84%EB%A7%88%EC%A1%B4-s3s3-amazon-simple-storage-service

 

👉 3. Docker 이미지 줄이는 법

Slim, alpine 등의 이미지 사용

Build와 Running 이미지를 나누는 Builder Pattern 사용

- 앱 Build에 필요한 도구, 라이브러리, 파일들을 제외하고 실제 바이너리만 받아서 사용하는 방식

- 한 Dockerfile에 작성 가능 (문법 있음)

 

 

👉 4. Docker와 VM (Virtual Machine) 차이는?

Docker와 가상머신의 차이는 Docker는 Kernel을 공유, 가상머신은 Kernel을 공유하지 않음

(Kernel 이란 하드웨어와 응용 프로그래사이의 인터페이스로 자원을 관리하는 역할을 수행)

 

 

👉 5. 인프라 설계 구조 이해