일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- thymeleaf
- growpart
- NoArgsConstructor
- 개발서버
- jdk upgrade
- 카카오 알림톡
- telegram
- Kotlin
- QureyDsl
- docker node
- docker
- springboot
- Telegram API
- docker app
- querydsl
- jenkins window
- 윈도우 개발서버
- 고정 아이피
- rbenv
- 비즈뿌리오
- modelmapper
- DynamoDB
- NoSQL Workbench
- 알림톡
- EC2
- push 403
- layout-dialect
- AWS
- spring boot
- jenkins bitbucket
- Today
- Total
givepro
AWS EC2 설정 및 도메인 적용 그리고 배포까지 (1) 본문
이번 포스팅은 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
'DevOps > aws' 카테고리의 다른 글
카카오 알림톡 AWS Lambda 구현 (2) | 2023.04.21 |
---|---|
AWS EC2 설정 및 도메인 적용 그리고 배포까지 (2) (0) | 2022.11.10 |
AWS 주요 서비스 정리 (0) | 2022.10.25 |
AWS DynamoDB 로컬 환경에서 사용 (2) (0) | 2022.10.25 |
AWS DynamoDB 로컬 환경에서 사용 (1) (0) | 2022.10.25 |