AWS EC2 인스턴트를 생성하고 , Spring Boot + React + MySQL 를 Docker 컨테이너에 각각띄우는 것을 목표로 합니다.
해당 게시글은 https://bcp0109.tistory.com/356 에 있는 뱀귤
님의 블로그를 참조하여 추가 작성했습니다.
위의 개시글은 다음과 같은 순서로 진행됩니다
여기에서는 EC2 인스턴트 생성 및 탄력적 IP를 추가하는 방법을 간단하게 작성됩니다.
EC2 인스턴트로 들어가여 인스턴트 시작을 실행합니다.
AMI 는 어떤 서버로 구성할지 선택합니다. 저는 Linux를 선택하여 진행합니다.
인스턴트 유형은 서버의 성능을 선택합니다. 너무 적은 인스턴트를 고르게 되면 EC2 서버 내에서 과부하가 걸려 접속 및 서버가 심각하게 느려지거나 종료될 수 있으므로 적당한 크기를 할당해주세요. ( 너무 많은 스케일은 금액적으로 부담이 될 수 있습니다 )
하단에 내리게 되면 키 페어가 있는데 키 페어는 EC2 서버에 SSH 접속하기 위해 필수입니다. 새 키페어를 할당 받아 생성합니다.
해당 키 페어를 선택해주세요.
SSH 트래픽에서 내 IP로 설정을 하게 되면 내 IP에서만 SSH에 접근할 수 있습니다.
EC2 인스턴트는 서버를 중지하고 다시 실행하면 IP가 변경되기 때문에 고정 IP를 사용해야 합니다.
메뉴에 탄력적 IP를 들어가 새로운 고정 IP를 할당받습니다.
이제 EC2 인스턴트에 접속하기 단계입니다.
위의 사진의 3번과 4번의 예
의 명령어를 잘 기억해 둡니다.
chmod 400 "본인의 키".pem
해당 키페어가 다운로드 되어있는 위치로 가서 해당 명령어를 실행해주세요
퍼블릭 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에서 접근하게 설정해야 합니다.
인바운드는 외부에서 EC2 로 요청할 때 허용할 IP 입니다. 만약 3000번 포트의 React를 사용한다고 하면 사용자 지정 TCP / 3000 / 0.0.0.0/0 을 추가해 주세요.
SSH 는 로컬서버가 접속할 수 있게 내 IP로 설정했습니다.
아웃바운드는 설정할게 없기 때문에 모든 트래픽에 둡니다.
생성한 보안그룹을 선택합니다. 해당 주소에 들어가면 refuse 요청은 이제 뜨지 않게 됩니다.
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
) 다시 로그인합니다.