givepro

AWS EC2 설정 및 도메인 적용 그리고 배포까지 (1) 본문

DevOps/aws

AWS EC2 설정 및 도메인 적용 그리고 배포까지 (1)

givepro 2022. 11. 10. 16:01
반응형

이번 포스팅은 AWS EC2를 활용해서

Rest API로 진행한 프로젝트를 배포하는 내용입니다.

 

전체적으로 진행하는 내용은 아래와 같습니다.

1. EC2 & RDS 생성
2. EC2 서버 JDK 및 MySql 설치 & 설정
3. 도메인 네임서버 변경
4. SSL 생성 및 설정
5. ALB 생성 및 설정
6. 보안그룹 설정
7. 배포

한번에 모든 내용을 다루면 복잡하다보니 단계별로 진행하겠습니다.

이번 포스팅은 1,2번입니다.

 


1. EC2 생성 및 보안그룹 설정

EC2 생성 시 주의할점은 아래와 같습니다.

  • 인스턴스 유형
  • 키 페어 (암호키)
  • 보안 그룹
  • 고정 IP

OS의 경우에는 대부분 Amazon Linux 또는 Ubuntu를 사용하기때문에 리눅스 기반 OS로 생각하시면 됩니다.
저는 Amazon Linux로 진행했습니다. (기본 설정 값)

 

인스턴스 유형은 2022년 기준으로 t2.micro가 기본값으로 되어있습니다.

설정하는 유형에 따라서 서버의 스펙이 결정되니 사용량에 따라 유형을 설정하시면 되겠습니다.

 

키 페어는 서버로 접속하기 위한 중요한 파일입니다. 새로 생성하고 생성된 키는 별도로 보관을 해야 합니다. (최초 생성시 가능)

 

보안그룹은 네트워크 설정에서 확인 가능합니다. 보안 그룹은 보통 서버에서 허용하는 포트에 대해서 설정합니다.

예를들면 http의 경우 80, https의 경우 443, MySql 3306 등 사용하는 포트를 ipv4, ipv6 설정을 하도록 합니다.

 

여기서는 Rest API에 대해서 셋팅하는 것이므로 80, 443, 3306에 대해 허용하도록 했습니다.

(3306 포트는 RDS로 설정했습니다.)

위와 같이 생성하면 EC2 인스턴스를 생성 할 수 있습니다.

그다음으로 저는 탄력적 IP 주소 연결을 하도록 했습니다.

EC2 → 탄력적 IP 주소 메뉴로 이동 후 탄력적 IP 주소를 먼저 생성해줍니다. (별다른 설정 없음)

생성이 완료되었으면 연결을 해야겠죠? 리스트에서 생성한 IP를 선택 후 작업을 선택하면 주소 연결이 있습니다.

리소스 유형은 인스턴스, 인스턴스는 연결하고자 하는 EC2 인스턴스로 선택하면 됩니다.

위처럼 진행했으면 이제 해당 인스턴스는 탄력적 IP로 설정이 완료되었습니다.

 

2. RDS 생성 및 설정

RDS → 데이터베이스 생성을 진행하도록 합시다.

저는 MariaDB를 사용하기로 했습니다. 엔진 유형을 MariaDB로 선택. (여기서 말하지 않는 항목은 기본값으로 설정했습니다.)

 

그 다음 Name 및 루트 계정에 대해 입력

인스턴스 구성은 저의 경우 프리티어라서 db.t3.micro로 설정했습니다.

위와 같이 설정 후 저는 새로운 보안그룹 생성 후 EC2 인스턴스를 연결해주도록 했습니다.

EC2 인스턴스가 RDS를 접근 가능하도록 이렇게 셋팅을 했습니다.

위와 같이 설정을 해줘야 EC2 서버에서 RDS URL로 접근할 때 허용이 가능합니다.

ipv4, ipv6로 설정한 내용은 DB 툴로 접속하기 위함입니다. (내 로컬에서 DB 접속)

 

3. EC2 JDK11 Mysql 설치

JDK 11 설치

sudo curl -L https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.rpm -o jdk11.rpm

sudo yum localinstall jdk11.rpm

rm -rf jdk11.rpm

Mysql 설치

sudo yum install -y mysql

mysql -uroot -p -h {RDS Host Url}

Port 80 → 8080 연결

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

만약 포워딩을 삭제하고 싶으면?
 $sudo iptables -t nat -L --line-numbers
설정된 포트의 번호를 확인 후 아래와 같이 입력
$ sudo iptables -t nat -D PREROUTING 2

 

 


 

AWS 클라우드 활용, 도메인에 SSL 적용하기 A to Z(Route53, Certificate Manager, Load Balancer)

지난번 포스트에서 소개해드린 AWS 클라우드 활용, 도메인 등록 및 관리하기에 이어서 이번 포스트에서는 해당 도메인에 SSL을 적용하는 방법을 소개해드리겠습니다. AWS 클라우드를 활용한 SSL 적

ajangajangcoding.tistory.com

 

Comments