클라우드 네이티브 이해
- CNCF(Cloud Native Computing Foundation) : 클라우드 네이티브라는 용어를 처음 만든 단체
- 퍼블릭, 프라이빗, 하이브리드 클라우드와 같은 현대적이고 동적인 환경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있게 해줌
- 컨테이너(도커), 서비스 메쉬, 마이크로서비스(쿠버네티스), 불변 인프라, 선언형 API 등등이 클라우드 네이티브 접근 방식의 예시
- 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 해줌
- 엔지니어 입장에서 영향이 큰 변경을 최소한의 노력으로 자주 배포할 수있다.
- 시간 흐름에 따라 생산성과 민첩성이 높아지면서 자연스럽게 생겨남
Native APP | Web APP | Cloud Native App | |
애플리케이션 개발 방법론 | 폭포수 모델 | 애자일 | DevOps |
애플리케이션 운영 구조 | 모놀리틱 | 멀티티어(프론트 - 비즈니스 - 백엔드) | MSA |
애플리케이션 운영 인프라 | 물리 서버 | 가상 서버 | 컨테이너 |
- 클라우드 네이티브 기술 계층
Cloud 서비스 -> 컨테이너 -> MSA -> 자동화
컨테이너 이해
- 애플리케이션과 운영환경이 모두 들어있는 독립된 공간
- 애플리케이션 가상화
- 경량의 독립 실행형 소프트웨어 패키지
- 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같이 응용 프로그램을 실행하는 데 필요한 모든 것을 포함
도커가 그냥 뚝 하고 만들어진것은 아니다! 이것도 역사가 깊다.
Jails -> VServer(리눅스) -> Zonesw -> cgroups(구글) : 특정 프로세스에게 CPU, 메모리, 디스크 같은 리소스 할당 -> Namespaces(redhat) : 특정 프로세스 격리시켜줌 -> LXC(IBM) 의 과정을 걸쳐서 최종적으로 Docker가 탄생했다.
도커 컨테이너 WorkFlow
출처 : https://docs.docker.com/get-started/docker-overview/
- DOCKER_HOST : 도커 서버, 서비스 Daemon 동작
- Registry : 컨테이너 저장
- Client - Server 모델의 Daemon 형태로 운영
Docker vs Podman
- Docker daemon : image, container, kernel에 대한 접근에 대해 제어
- 중지되면 컨테이너 관련된 애플리케이션 서비스는 하나도 할수없다.(의존성이 강하다)
- Root 계정이 아니면 동작 할수없다.
- PODMAN : 컨테이너 관리를 위한 도커와 아주 유사한 OCI 컨테이너 관리 툴, Deamon에 의존적인 형태가 아닌 각각 독립적으로 운영 (Root less 컨테이너 운영 가능)
도커 컨테이너 설치
- Amazon EC2 인스턴스 만들기
이름 : docker-host
AMI : Ubuntu Server 22.04 LTS (HVM), SSD Volume Type
인스턴스 유형 : t2.micro(cpu 1, memory 1GiB)
키 페어 : 이전에 만들었던 developer.pem
네트워크 설정 : [편집]
VPC : default
서브넷 정보 : ap-northeast-2a
퍼블릭 IP 자동 할당 : 활성화
보안 그룹 : 보안그룹 생성
스토리지 : 8G, gp3
2024.08.15 - [DevOps/AWS] - [AWS] Amazon EC2 인스턴스 만들기
이 글을 참고해서 만들면 된다.
ssh -i developer.pem ubuntu@43.203.199.110
> EC2에 ssh 원격접속
키 페어를 새로 만드는 경우 chmod 400 xxx.pem 명령어를 통해 권한 범위를 줄여줘야한다.
sudo apt update
> 관리자 권한 필요
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
> 필요한 의존성 패키지 설치
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
> 도커 공식 GPG 키 추가
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
> 도커 repository 추가
sudo apt update
sudo apt install docker-ce
> 도커 설치
sudo docker --version
> 도커 설치 확인
sudo systemctl start docker
> 도커 시작
sudo systemctl enable docker
> 부팅시 도커 자동 시작 설정
docker 관리자(ec2-user) 설정
sudo usermod -aG docker $USER[ubuntu 사용]
> 도커 그룹에 현재 사용자 추가 (sudo 권한 없이 Docker 명령 사용)
id ubuntu
도커 설치가 완료 됐고, 다음 포스팅에선 Docker 명령어들에 대해서 알아보고자 한다.
'DevOps > Docker' 카테고리의 다른 글
[DOCKER] 컨테이너 스토리지 관리 (2) | 2024.10.07 |
---|---|
[DOCKER] Docker 명령어 총정리 (2) | 2024.09.16 |
[DOCKER] Docker 아키텍처 (0) | 2024.09.15 |