AWS로 배포하기 - EC2 instance 안에 Docker 구동시키기

·2022년 10월 1일
0

이 글은 AWS의 모든 셋팅이 완료되고 instance 구동만 남았다는 전제 하에 작성!

📌 git 설치하기

sudo yum install git

📌 git clone 해주기

git clone 주소

📌 instance 안에 docker 설치하기

docker 설치

// 도커 설치
sudo amazon-linux-extras install docker

// 도커 시작
sudo service docker start

// 권한 부여
sudo usermod -a -G docker ec2-user

// auto start에 docker 등록
sudo chkconfig docker on

// docker 버전 확인
docker version

docker compose 설치

// 최신 docker compose 설치
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

// 권한 부여
sudo chmod +x /usr/local/bin/docker-compose

// 설치 확인
docker-compose version

📌 docker 구동을 통해 끊기지 않는 서버 관리하기

cd ~ 를 통해 git clone 한 폴더로 접근

폴더 내에서 명령어 실행

// 도커파일 실행해서 저장
docker-compose build

// 실행 (=yarn start)
docker-compose up

🚧 docker 설치 후 /var/run/docker.sock의 permission denied 에러가 발생하는 경우

// 파일 권한을 666으로 변경하여 그룹 내 다른 사용자도 접근 가능하게 변경
sudo chmod 666 /var/run/docker.sock

🚧 갑자기 build가 안되거나 에러가 발생하는 경우 (instance 메모리 문제)

메모리 확인해보기

df -h

instance 볼륨 확장해주기

EC2에서 해당 instance 선택 - storage - volume ID 클릭 - 해당 volume 체크 후 Actions - Modify volume 에서 Size 16으로 늘려주기

콘솔 셋팅해주기

// 크기 조정이 필요한 파티션 확인
lsblk

// 파티션 크기 조정
sudo growpart /dev/파티션이름 1

// 파일 시스템 확장
sudo xfs_growfs /dev/파티션이름1

// 용량 확인
df -h

🚧 S3에 새롭게 build한 파일을 업로드 했는데도 실서버에서 적용이 되지 않는 문제

해당 문제는 CloudFront가 스스로 cache에서 기존 파일들을 꺼냄으로써 발생하는 것이다. 따라서 CloudFront가 cache를 무시하고 새롭게 업로드된 파일을 가져오도록 설정해줘야한다.
(CloudFront는 24시간 동안 유지되는 캐시를 사용)

CloudFront - 해당 CloudFront ID 선택 - Invalidations - Create Invalidation - object paths 에 /* 넣고 Create Invalidation

<참고> https://chucoding.tistory.com/23
https://narup.tistory.com/223
https://github.com/occidere/TIL/issues/116

https://soulduse.tistory.com/86
https://penguingoon.tistory.com/256

profile
개발을 개발새발 열심히➰🐶

0개의 댓글