EC2, Docker, nginx, Let's Encrypt / React, Express 배포 (https://www.25toillet.xyz/)

Eunsoo Ha·2021년 6월 15일
1

1. 도커이미지

이미지는 컨테이너를 조립하는 틀, 조립키트 라고 생각하면 됨

2. 도커머신

  • 원격시스템(ec2같은)에 docker 호스트를 프로비저닝 할때 좋음
  • pc에 도커가 설치되어 있지 않아도 제어가 가능하다.

3. 도커 컴포즈

  • 각각의 컨테이너를 컨트롤 함.

  • 도커 컴포즈에 배포를 할 떄 프론트 관련된걸 넣어 줘야 한다.

  • 도커파일에 내가 구축하고 싶은 환경을 설정한다 -> 서버와 내 컴퓨터에 각각 설치하면 docker는 그 파일을 읽어서 필요한걸 다운 받아 해당 설정과 같은 환경의 컨테이너를 만들어 준다 ->

  • aws에서 계정별로 접근 권한을 설정 하는 툴
    ssh
    vpc
    aws profile
    aws cli

IAM 설정 (Windows10)

  • IAM -> 사용자 추가 ( key값 저장해야 함) -> 프로그래밍형식 access => amazoneEC2containerregistryFullAccess 로 선택 => 키, 테그는 건너뜀 ====> 엑세스 키 id, 비밀 액세스 키 저장해야 함! => 터미널에서 aws configure 입력해서 id, 액세스 키 입력 => default region 은 ap-nprtheast-2 입력
C:\Users\사용자이름\.aws => code ./ 

=> 파일 열어서 defalt 값을 수정하거나, 다른 이름으로 값을 넣어 줄 수 있다.

ec2서버에 도커 설치

sudo apt-get update
sudo apt-get install docker.io -y
sudo usermod -a -G docker $USER
sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo usermod -a -G docker $USER

Dokcer Machine

  • ssh 키 값을 추가 해줘야한다.
  • Window10의 경우 bash를 이용해야 하는데, 나 같은 경우는 git bash를 이용하였다.
ssh-add -k C:\\key 경로\\키.pem 

(git bash에서는 \를 2번써야 1번 입력값으로 먹혀서 2번씀)

docker-machine create --driver generic --generic-ip-address=ec2.ip.주소.입력 --generic-ssh-user ubuntu 도커머신이름

cf) git bash에서 ssh-add가 안될 경우
1. 관리자로 git bash실행
2.

$ eval $(ssh-agent) 
  1. cd /c 이동 => ssh-add -k 키.pem 하면 됨
  2. docker-machine create 안되면 rm -f 로 싹 지웠다가 다시 하면 됨
  3. npm run deploy 는 git bash관리자로 열어서 실행 해야 함(멈추면 껏다켜야함..)


나의 경우 window10에서 Docker Machine과 ECR을 이용한 경우, Image가 ECR로 Push되긴 했으나 Ec2 서버에서 pull 되지 않았으며, 직접 ec2에 sercer, client를 복사 한뒤, Dockerfile로 image를 각각 만들었다.

docker-compose -> front, client, nginx, Let's Encrypt 컨터이너를 전부 띄움.

nginx container에 접속

docker exec -it 컨테이너 이름 /bin/bash

컨테이너 이름은 docker ps 하면 나옴

도커 컨테이너에 vi 설치

docker exec -it [container_id] bash
apt-get update
apt-get upgrade
apt-get install vim

0개의 댓글