기타/인프라 구축과정

[Infra] 1. 서버 환경세팅 - Voda Project

배발자 2023. 4. 4.
반응형

프로젝트를 진행하면서 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)는 유닉스 및 리눅스 시스템에서 사용되는 파일 시스템의 파일 혹은 디렉토리에 대한 참조 방식. 

반응형

댓글