목차
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 설치
수동으로 설치할 경우
- 패키지 목록을 업데이트 합니다. `sudo apt update`
- Python을 설치합니다 (Python 3.x 버전) `sudo apt install python3`
- 설치 확인 `python3 --version`
- `python3`로 설치 했을 경우 관련 명령어 입력 시 `python3`로 입력
pip 설치
sudo apt install python3-pip
Flask 설치
pip install flask
오류가 발생했다.
다음 명령어로 설치했다.
sudo apt install python3-flask
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 실행까지 완료.
'Study > Docker' 카테고리의 다른 글
[Docker_CI/CD_스터디] 3. GitLab으로 AWS Cloud로의 지속적인 배포 (0) | 2025.02.04 |
---|---|
[Docker_CI/CD_스터디] 2. GitLab 세팅 & Docker Image 빌드 및 푸시 (0) | 2025.01.31 |
댓글