프로젝트를 진행하면서 Infra를 담당하게 되었다.
지금껏 백엔드 개발자로서 API 설계를 바탕으로 추가적인 기능을 구현하는 역할을 맡았다.
하지만 프론트와 데이터를 주고 받을 때 어떻게 흘러가는가. 어떠한 포트로 데이터가 오고 가는지 흐름을 이해하는 것은 상당히 중요하다고 느꼈다.
그래서 이번 프로젝트에서는 Infra에 도전하여 데이터의 흐름을 이해하고 CI/CD를 구축 및 설계를 진행하기로 하였다.
해당 프로젝트에서는 Ubuntu 환경에서 도커 가상환경을 사용하여 Python, SpringBoot, Vue, MaraiDB, Jenkins 컨테이너를 띄우고 통신한다.
| 해당 명령어는 먼저 패키지 관리자를 업데이트한다. 그리고 다음과 같은 패키지들을 설치한다.
$ sudo apt update
$ sudo apt-get install -y ca-certificates \\
curl \\
software-properties-common \\
apt-transport-https \\
gnupg \\
lsb-release
- ca-certificates: TLS/SSL 인증서를 검증하기 위한 패키지.
- curl: URL을 통해 데이터를 전송하기 위한 도구.
- software-properties-common: 소프트웨어 소스를 추가하거나 제거하기 위한 도구.
- apt-transport-https: HTTPS를 통해 패키지를 다운로드하기 위한 도구.
- gnupg: 암호화 기능을 제공하는 도구.
- lsb-release: 리눅스 배포판 정보를 확인하기 위한 도구.
이러한 패키지들이 설치되어 있어야, 도커 공식 GPG 키를 다운로드하고, HTTPS를 통해 도커 패키지를 다운로드할 수 있다. 이후에는 다운로드한 GPG 키를 사용하여 도커 패키지를 검증하고, 패키지 관리자를 사용하여 도커 엔진을 설치할 수 있다.
| GPG 키 및 저장소 추가
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
해당 텍스트는 도커 공식 GPG 키를 다운로드하기 위한 것이다.
이를 위해서는 먼저 /etc/apt/keyrings 디렉토리를 생성해야하며, 이후 curl을 사용하여 도커 공식 GPG 키를 다운로드하고, gpg를 사용하여 이를 /etc/apt/keyrings/docker.gpg 파일에 저장한다. 이 과정을 거치면, apt 패키지 관리자가 이 파일을 사용하여 도커 패키지를 검증할 수 있다.
echo ~ : Docker 저장소를 Ubuntu 시스템의 APT 패키지 소스 목록에 추가한다.
| docker engine install
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io
도커 엔진은 컨테이너 기반 가상화 플랫폼으로서, 컨테이너의 생성, 실행, 관리 등의 기능을 담당하고 컨테이너는 애플리케이션과 그 애플리케이션이 동작하는 데 필요한 라이브러리, 도구, 설정 파일 등을 포함하는 가상화된 환경이다.
* 도커 엔진 역할
1. 컨테이너를 생성하고 실행하며, 컨테이너가 동작하는 동안 이를 관리하는 역할
2. 도커 엔진은 다양한 도커 이미지를 관리하고, 이를 기반으로 컨테이너를 생성하고 실행
3. 컨테이너 간의 네트워크 연결 및 데이터 볼륨 관리 등 다양한 기능을 제공
| docker-compose install
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
이 명령들은 Docker Compose를 다운로드하고, 설치한 후 실행 가능하게 만든다.
1. docker compose 바이너리를 다운로드 받아 /usr/local/bin 디렉토리에 저장
2. 다운로드 받은 Docker Compose 바이너리에 실행 권한을 추가
3. 바이너리에 대한 심볼릭 링크를 /usr/bin 디렉토리에 생성. 이를 통해 docker-compose 명령어를 어디에서든 실행할 수 있게 된다.
* 심볼릭 링크 : 심볼릭 링크(Symbolic Link)는 유닉스 및 리눅스 시스템에서 사용되는 파일 시스템의 파일 혹은 디렉토리에 대한 참조 방식.
'기타 > 인프라 구축과정' 카테고리의 다른 글
[Infra] 6. 컨테이너 구동 - Voda Project (0) | 2023.04.04 |
---|---|
[Infra] 5. Jenkins 프로젝트 빌드 - Voda Project (0) | 2023.04.04 |
[Infra] 4. MariaDB 설정 - Voda Project (0) | 2023.04.04 |
[Infra] 3. https 설정 (Cerbot) - Voda Project (0) | 2023.04.04 |
[Infra] 2. 젠킨스 설정 - Voda Project (0) | 2023.04.04 |
댓글