👉 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) : 매니지드 메시지 큐 서비스, 메시지 처리 보장
👉 3. Docker 이미지 줄이는 법
Slim, alpine 등의 이미지 사용
Build와 Running 이미지를 나누는 Builder Pattern 사용
- 앱 Build에 필요한 도구, 라이브러리, 파일들을 제외하고 실제 바이너리만 받아서 사용하는 방식
- 한 Dockerfile에 작성 가능 (문법 있음)
👉 4. Docker와 VM (Virtual Machine) 차이는?
Docker와 가상머신의 차이는 Docker는 Kernel을 공유, 가상머신은 Kernel을 공유하지 않음
(Kernel 이란 하드웨어와 응용 프로그래사이의 인터페이스로 자원을 관리하는 역할을 수행)
👉 5. 인프라 설계 구조 이해
'기술 정리 & CS > 기술면접 대비' 카테고리의 다른 글
[기술면접 대비] Django, DRF, 배포 (1) | 2022.11.02 |
---|---|
[기술면접 대비] Web 일반 & 보안 (0) | 2022.10.27 |
[기술면접 대비] Network (0) | 2022.10.25 |
[기술면접 대비] Database 1 - DB 기본, 정규화, 종류 (0) | 2022.10.20 |
[인성면접 대비] 예상 질문 정리 (0) | 2022.10.03 |