본문 바로가기
Study/Docker

[Docker_CI/CD_스터디] 1. AWS EC2 인스턴스 생성 및 Docker 설치

by Lpromotion 2025. 1. 26.

목차
 

1. AWS 가입

실습용 구글 게정을 새로 생성하여 AWS 가입을 완료했다.

 

2. EC2 인스턴스 실행

콘솔로 이동

 

서울 지역으로 선택

 

EC2 대시보드로 이동

 

인스턴스 시작

 

이름과 OS 선택 (Ubuntu)

 

인스턴스 유형: t2.micro

새 키 페어 생성

파일로 생성됨

 

네트워크 설정

나머지 설정은 기본값으로 설정함.

 

인스턴스 시작 > 인스턴스 생성됨

 

인스턴스 연결

 

“SSH 클라이언트”에서 위에서 생성한 pem 키로 연결할 수 있음.

 

“EC2 인스턴스 연결”에서 연결하면 웹 브라우저에서 서버로 연결할 수 있음.

 

간단한 작업 시 “EC2 인스턴스 연결”을 사용하고, 복잡한 작업 시 pem 키를 이용해 “SSH 터미널”을 직접 연결하여 사용한다.

 

3. Linux 사용하기

VirtualBox 설치

기존에 Virtual Box가 설치되어 있어 새 버전으로 업그레이드 해줬다.

“업데이트가 필요한 일부 파일이 현재 사용 중입니다.”라는 메시지가 떠, 작업관리자에 들어가 위 프로세스 id인 작업을 종료해줬다.

 

Ubuntu 설치

“ubuntu linux iso download”

최신 버전인 24.04를 설치함.

 

VirtualBox > 새로 만들기

다운로드 받은 iso 파일을 선택함.

 

호스트 이름과 도메인 이름은 그대로 둠.

 

메모리: 4GB, 프로세서: 4개

 

25GB를 점유하는 것이 아니라, 최대 25GB까지 파일이 늘어남을 의미함.

 

완료

 

우분투 설치하는 화면이 나왔다.

업데이트 후 다시 설치 앱으로 이동.

 

설치완료.

지금 다시 시작 선택.

 

Terminal 실행.

 

nginx 설치

sudo apt-get install nginx

sudo: 루트 권한을 빌림.

설치 완료.

 

nginx가 설치되었는지 확인.

ps -aux | grep nginx

ps: 프로세스를 확인하는 명령어.

 

vs code 설치하기

웹 브라우저 > vs code

Ubuntu Linux의 파일 패키징은 .deb 파일이다.

 

Downloads 디렉토리에서 확인할 수 있음.

 

설치 명령어

sudo dpkg -i {.deb 파일}

`code .` 를 입력하면 vs code가 실행됨.

 

python 설치

수동으로 설치할 경우

  1. 패키지 목록을 업데이트 합니다. `sudo apt update`
  2. Python을 설치합니다 (Python 3.x 버전) `sudo apt install python3`
  3. 설치 확인 `python3 --version`
  4. `python3`로 설치 했을 경우 관련 명령어 입력 시 `python3`로 입력

 

pip 설치

sudo apt install python3-pip

 

Flask 설치

pip install flask

오류가 발생했다.

 

다음 명령어로 설치했다.

sudo apt install python3-flask

app.py 파일을 실행하면

app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
	return 'Hello, World!'

if __name__ = '__main__':
	app.run()

5000번 포트로 서비스가 실행된 것을 확인할 수 있다.

브라우저에서 “localhost:5000”접속하면 “Hello, World!”가 나오는 것을 확인할 수 있다.

 

4. EC2 인스턴스 연결

위 명령어를 복사해서 터미널에 입력한다.

(.pem 키가 저장되어 있어야 한다. 나는 이메일로 linux 환경으로 옮겨줬다.)

 

pem 키 권한 확인

ls -al {pem 키}

644 권한이 너무 많이 열려 있어서 오류가 남.

 

그래서 권한을 변경한다.

chmod 400 {pem 키}

 

다시 접속해보면 바로 연결된다.

Linux 환경에서 ssh를 이용해 EC2 Linux로 연결 완료.

 

5. Docker 설치하기

Docker 공식 문서

https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

1. Set up Docker's apt repository.

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

 

2. Install the Docker packages.

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

위 단계 그대로 따라 설치해주면 된다.

설치할 때마다 자꾸 가상머신이 먹통이 되는 현상이 발생하여 메모리를 4GB에서 8GB로 변경해줬다.

 

설치 완료.

docker version

 

docker images

root 유저 권한이 필요하여 오류가 발생한다.

sudo docker images

 

매번 “sudo”를 사용하기 번거롭다.

Docker 그룹에 user를 포함시킨다.

sudo groupadd docker

‘docker’ 그룹은 이미 있다고 출력된다. → 설치되면서 생김.

 

sudo usermod -aG docker {유저name}
newgrp docker

 

hello-world 이미지 가져옴.

docker pull hello-world

 

hello-world 이미지 실행.

docker run hello-world

 

Docker Hub

Docker Hub 사이트에서 “nginx official” 검색.

 

docker run --name some-nginx -p 8080:80 -d nginx

pull을 하지 않고 run을 실행할 경우, pull까지 실행해줌.

 

중지 명령어

docker stop {ID 또는 Name}

 

다시 실행 명령어

docker start {ID 또는 Name}

 

stop된 컨테이너까지 확인하는 명령어

docker ps -a

 

 

EC2 인스턴스에 ssh로 로그인한 후, docker 환경 install 하고, nginx docker image 실행까지 완료.

반응형

댓글