AWS EC2 생성 후 Docker ( Spring boot + React + MySQL ) 띄우기

5tr1ker·2022년 12월 14일
2

aws

목록 보기
2/3
post-thumbnail

AWS EC2 인스턴트를 생성하고 , Spring Boot + React + MySQL 를 Docker 컨테이너에 각각띄우는 것을 목표로 합니다.
해당 게시글은 https://bcp0109.tistory.com/356 에 있는 뱀귤님의 블로그를 참조하여 추가 작성했습니다.

위의 개시글은 다음과 같은 순서로 진행됩니다

여기에서는 EC2 인스턴트 생성 및 탄력적 IP를 추가하는 방법을 간단하게 작성됩니다.

인스턴스 생성

EC2 인스턴트로 들어가여 인스턴트 시작을 실행합니다.

AMI 및 인스턴트 유형 선택

AMI 는 어떤 서버로 구성할지 선택합니다. 저는 Linux를 선택하여 진행합니다.
인스턴트 유형은 서버의 성능을 선택합니다. 너무 적은 인스턴트를 고르게 되면 EC2 서버 내에서 과부하가 걸려 접속 및 서버가 심각하게 느려지거나 종료될 수 있으므로 적당한 크기를 할당해주세요. ( 너무 많은 스케일은 금액적으로 부담이 될 수 있습니다 )

키 페어 생성

하단에 내리게 되면 키 페어가 있는데 키 페어는 EC2 서버에 SSH 접속하기 위해 필수입니다. 새 키페어를 할당 받아 생성합니다.

해당 키 페어를 선택해주세요.

네트워크 및 스토리지

SSH 트래픽에서 내 IP로 설정을 하게 되면 내 IP에서만 SSH에 접근할 수 있습니다.

탄력적 IP

EC2 인스턴트는 서버를 중지하고 다시 실행하면 IP가 변경되기 때문에 고정 IP를 사용해야 합니다.

탄력적 IP 할당

메뉴에 탄력적 IP를 들어가 새로운 고정 IP를 할당받습니다.

탄력적 IP 할당

SSH 클라이언트 서버 접속

이제 EC2 인스턴트에 접속하기 단계입니다.

위의 사진의 3번과 4번의 의 명령어를 잘 기억해 둡니다.

키 권한 변경

chmod 400 "본인의 키".pem

해당 키페어가 다운로드 되어있는 위치로 가서 해당 명령어를 실행해주세요

SSH 접속

퍼블릭 DNS 로 접속
$ ssh -i "my-key.pem" ubuntu@ec2-3-37-206-248.ap-northeast-2.compute.amazonaws.com
퍼블릭 IP 로 접속
$ ssh -i "my-key.pem" ubuntu@3.37.206.248

퍼블릭 DNS 또는 퍼블릭 IP를 이용해 접속할 수 있습니다.

보안 그룹 설정

AWS 에서 제공하는 방화벽으로 외부에서 함부로 접근하면 안되는 인스턴트는 허용된 IP에서 접근하게 설정해야 합니다.

  • 인바운드 (Inbound): 외부 -> EC2 인스턴스 내부 허용
  • 아웃바운드 (Outbound): EC2 인스턴스 내부 -> 외부 허용

보안 그룹 생성

인바운드 규칙

인바운드는 외부에서 EC2 로 요청할 때 허용할 IP 입니다. 만약 3000번 포트의 React를 사용한다고 하면 사용자 지정 TCP / 3000 / 0.0.0.0/0 을 추가해 주세요.
SSH 는 로컬서버가 접속할 수 있게 내 IP로 설정했습니다.

아웃바운드 규칙

아웃바운드는 설정할게 없기 때문에 모든 트래픽에 둡니다.

인스턴스에서 보안 그룹 변경

생성한 보안그룹을 선택합니다. 해당 주소에 들어가면 refuse 요청은 이제 뜨지 않게 됩니다.

  1. EC2 인스턴스에 Spring Boot 서버 띄우기를 제외하고 저는 Docker 컨테이너를 구축합니다.

EC2에 Docker 설치 후 실행

1 . EC2 서버에 접속해서 프로젝트를 git Clone합니다.
만약 Git이 설치되어 있지 않다면?

1 . sudo yum install git # GIT 설치
2 . git clone "프로젝트 주소" # 프로젝트 Clone
3 . chmod +x gradlew # Gradle 권한

위의 단계를 순차적으로 진행해주세요.

2 . Docker-compose 파일을 실행시켜줍니다.
만약 Docker가 설치되어 있지 않다면?

1 . sudo yum install docker # Docker 설치
2 . sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
ㄴ Docker-compose 설치
3 . sudo chmod +x /usr/local/bin/docker-compose
4 . sudo usermod -aG docker ec2-user
ㄴ Docker 접근 권한 부여
4-4 . sudo chmod 666 /var/run/docker.sock
ㄴ docker-compose 명령어 권한 부여
5 . sudo systemctl start docker
ㄴ Docker 실행 ( EC2 재시작할 때에도 해줘야합니다. )
6 . sudo systemctl enable docker
ㄴ Docker 활성화
7 . docker-compose up -d --build
ㄴ docker-compose 설치
ㄴ 3번과 4번을 진행 했음에도 권한 오류가 발생할 경우 터미널에서 EC2 접속을 종료한 후 ( exit ) 다시 로그인합니다.

profile
https://github.com/5tr1ker

0개의 댓글