AWS의 EC2로 로컬로 배포 하기!
들어가며
AWS의 EC2서버로 도커를 사용해 로컬 서버로 배포하는 방법을 알아보겠습니다.
(외부에서 접속은 다음에 포스팅해 보겠습니다.)
사전 준비
배포를 진행하기 전에 필요한 준비 사항을 몇 가지 확인해야 합니다. 만약 여러분이 이미 프로젝트를 준비했다면 아래의 내용은 무시하셔도 됩니다.
EC2 인스턴스 배포하기
생성한 인스턴스이다. 이제 접속하기 위해서는 퍼블릭 IPv4 주소로 접속하자.
MobaXterm에 접속하자
① Session 클릭
② SSH 클릭
③ 생성한 IPv4 주소 작성
④ 체크박스 클릭수 ec2-user 작성
⑤ None 선택
⑥ 체크박스 클릭 후 발급받은 key저장한 위치
⑦ None 클릭후 ok 클릭해 접속하기
다음과 같이 접속화면이 뜨면 성공
# 슈퍼유저로 변경
sudo su -
# docker를 다운로드 -y 옵션으로 적용
sudo yum install docker -y
# docker 실행
systemctl start docker
명령어 입력 후
버전이 나온 다면 올바르게 설치 완료
# 도커 로그인
docker login
도커 허브에서 리파지토리에 저장한 이미지 다운받기
(mysql, board프로젝트 다운받기)
docker pull <계정이름>/<리파지토리명>:<버전명>
현재 db와 jar파일의 이미지가 존재한다.
이제 컨테이너끼리 통신을 주고받으려면 동일한 네트워크가 필요하다.
docker network create <사용할 네트워크명>
나는 board 네트워크로 만들었다
이제 다운로드한 이미지를 같은 네트워크를 사용해서 컨테이너에 올려보자.
docker run -d -p <사용할 포트>:<지정포트> --name <사용할 컨테이너명> --network <생성한 네트워크명> <이미지명>
(만약 제가 만든 게시판 프로젝트로 실행할 시 mysql의 컨테이너명은 꼭 mysql-con으로 만들어주세요!!!!)
두 개의 컨테이너가 정삭적으로 실행 중인 것을 볼 수 있다.
네트워크를 보면 같은 네트워크 안에 mysql-con과 board-con이 포함되어 있는 것을 볼 수 있다.
이제 EC2 서버에 도커 컨테이너를 뛰어 서버를 배포했다.
이제는 인스턴스를 만들었던 보안그룹에 가서 인바운드 설정을 해줘야 한다. 그렇지 않으면 접속을 할 수 없다.
인스턴스를 설정한 보안그룹에 들어가 인바운드 규칙 편집 클릭
- 규칙추가로 추가
- 유형을 사용자 지정 TCP로 설정
- 포트범위를 지정한 포트를 작성
- AnyWhere..로 선택해 누구나 들어올 수 있게 설정
- 규칙 저장
이렇게 인바운드 규칙 설정을 해놓고 이제 퍼블릭 IPv4:설정한 포트번호 주소로 접속해 보면 정상적으로 접속한 것을 볼 수 있다.
이제 회원가입을 해보고 DB에 저장이 됐는지 확인해 보자
성공적으로 DB에 값이 저장된 것을 볼 수 있다.
이번 배포에서는 볼륨을 설정을 하지 않고 진행했기 때문에 재시작 시에는 데이터가 다 초기화됩니다. 그래서 볼륨을 설정해서 컨테이너를 시작하거나 AWS 스토리지를 통해서 사용해야 합니다.
마치며
이번에는 간단하게 EC2 서버에 도커를 활용해 배포하는 방법을 알아봤습니다. 궁금한 점이 있으면 댓글로 남겨주시면 제가 아는 선에서.. 알려주도록 하겠습니다. 감사합니다.!!!
'Devops > AWS' 카테고리의 다른 글
[AWS] EC2 - Docker 컨테이너로 배포된 Spring 서버 내부로 이미지 업로드 하기 (1) | 2024.05.07 |
---|---|
[AWS] AWS 컴퓨팅 서비스의 인스턴스 및 키페어 (0) | 2024.01.26 |