[크래프톤 정글 3기] 2/6(화) TIL

ClassBinu·2024년 2월 6일
0

크래프톤 정글 3기 TIL

목록 보기
108/120

fly.io를 Docker로 EC2에 배포하기!

Docker

도커 로컬 테스트

  1. 이미지 생성
docker build --tag storify-be:0.0.1 .
  1. 실행
 docker run --name storify-be -d -p 3000:3000 storify-be:0.0.1
  1. 성공

.env가 이미지에 안 들어가서 오류 발생했음. 임시로 넣어서 돌림.

EC2

  1. GitHub Access Token 발급(전체 계정)

  2. Repo의 Actions에 Secret 등록

  3. EC2 인스턴스 생성

  4. SSH 접속

  5. AWS에 Github Runner 설치

Dotnet Core 6.0 없다고 에러 뜸
근데 알려주는 설치도 안 됨

수동 설치해서 해결
https://learn.microsoft.com/en-us/dotnet/core/install/linux-fedora

  1. 러너 등록 완료

  2. 러너 실행

스크립트를 "no hang up" 모드에서 백그라운드로 실행
터미널 세션이 종료되거나 사용자가 로그아웃해도 스크립트가 계속 실행

nohup은 실행 중인 프로세스가 종료 신호를 무시
&는 해당 명령어를 백그라운드에서 실행

nohup ./run.sh &
  1. 배포 실패

권한 문제로 배포 실패
클래식 토큰에서는 packages권한을 주면 되는데
TAT에는 해당 권한이 없음.

스택 오버플로우에서 답 찾음

  1. 또 실패

EC2에 도커를 설치 안 함.(머쓱;)

  1. 도커 설치

AWS 가이드대로 도커 설치가 안 되서 참고함
https://stackoverflow.com/questions/53918841/how-to-install-docker-on-amazon-linux2

근데 가이드도 봐야 함.
https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/create-container-image.html

  1. 다시 빌드 & 배포

성공!

아직도 배포는 어려움
이건 단순 EC2 배포이고 실무에서는 세팅할 게 많겠지?
이건 어디서 배우나..

근데 로그를 어떻게 봐야 하지?

docker logs로 볼 수 있음

  1. 컨테이너 아이디 확인
docker ps
  1. 로그 확인
docker logs -f 컨테이너ID또는이름

-f는 follow 약자

CloudWatch

도메인 연결

프론트엔드 https에서 백엔드 http로 요청 불가
메타 태그로 해결할 수 있지만, 하는 김에 도메인 연결하고 SSL 설치까지 함!

https://velog.io/@gmlstjq123/EC2%EC%97%90-HTTPS-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0

SSL 인증서

저녁 먹고 왔더니 발급 됐다!

HTTPS

로드밸러서 설정, 계속 안 되다가 Route53에 별칭으로 로드밸런서 연결하니까 됨.

0개의 댓글