[Server] AWS 서버 배포

애이용·2020년 12월 19일
0

DevOps

목록 보기
5/6

1) AWS RDS

AWS RDS 구매

https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2#

  • 퍼블릭 액세스 기능 : "예" 선택
    (-> 우리 컴퓨터에서 연결 가능)

  • VPC 보안 그룹 생성

  • RDS 포트 열어두기

    1. 연걸&보안 > 보안 > VPC 보안그룹 클릭 > 보안그룹 ID 클릭 > 인바운드 규칙 편집
    2. (인바운드 규칙 편집) 소스 -> 위치 무관

IntelliJ에서 연결


Database > Data Source > MySQL 클릭

Name: DB 인스턴스 식별자
Host: 엔드포인트 # 연결&보안 탭에 있음
User: 마스터사용자 이름
Password: 마스터 암호
Database: 데이터베이스 이름

application.properties

spring.datasource.url=jdbc:mysql://나의엔드포인트:3306/myselectshop
spring.datasource.username=나의USERNAME
spring.datasource.password=나의패스워드
spring.jpa.hibernate.ddl-auto=update

2) EC2 배포

AWS EC2 서버 구매

https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2

  • AWS에서 80, 8080 포트 열기
    AWS EC2에서도 자체적으로 포트를 열고/닫을 수 있게 관리를 하고 있음
    -> AWS EC2 Security Group 에서 인바운드 요청 포트 열어줘야 함 인바운드 규칙 편집 > 규칙 추가
    → 80포트: HTTP 접속을 위한 기본포트
    → 8080포트: 스프링 부트 기본포트
    (소스 : 위치 무관 설정)

putty로 서버 접속 -> openJDK 설치, java -version으로 확인

배포파일 build

build 더블클릭
.jar 확장자로 끝나는 파일이 생기면 빌드 성공

FileZilla

배포파일 업로드

맨 위 탭(사이트 관리자) 클릭 > New site
프로토콜 : SFTP 설정
호스트 : 퍼블릭 IP 주소
키파일 : .pem 확장자 파일

접속

java -jar JAR파일명.jar # 스프링부트 작동 (서비스 시작)
http://내AWS아이피:8080 # 접속

포트포워딩 & nohup

ip주소:8080 입력을 해야 접속 가능
: http 요청에서는 포트 80이 기본이기 때문에, 80을 붙이지 않아도 자동 연결됨

포트포워딩

포트번호를 입력하지 않아도 자동으로 접속되기 위해,
80 포트로 오는 요청을 8080 포트로 전달하게 하도록 하는 것

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

nohup

ssh 접속 끊어도 서버 작동 시킴

nohup java -jar JAR파일명.jar &
# cf) 서버 종료 (강제 종료)
ps -ef | grep java # pid 값 봄
kill -9 [pid값] # 특정 프로세스 kill

gradle wrapper 명령어 : gradlew 파일 생성

profile
로그를 남기자 〰️

2개의 댓글

comment-user-thumbnail
2021년 4월 21일

좋은내용 잘보고 감당!
백엔드과정 수료중 이신 것 같은데 혹시 학원이나 업체에서 교육받으시는거라면 학원명좀 여쭤봐도 될까영

1개의 답글