티스토리 뷰

0. 준비 및 기본정보

 

* 기본정보

      JAVA 11

      Gradle Spring Boot 

      MYSQL

      Windows 기준

      

 

* 준비

      - AWS 가입하기

      - MobaXterm 설치하기

        -> AWS SSH 접속하기 위해서 사용되는 툴

      +  Mac OS -> iTerm2 이용

 

      - DataGrip 설치하기 (유료)

        -> RDS 접속하기 위해서 사용되는 툴

 

      - Clone할 데이터

        -> AWS에 넣어 화면에 보여줄 Spring 프로젝트

 

 

 

1. [AWS][EC2] 인스턴스 세팅
1-1. 인스턴스 생성 

웹 서버 이름 : 아무렇게나
애플리케이션 및 OS 이미지 : amazon Linux
키페어 : 새 키 페어 생성 (다운로드 형식 .pem)
네트워크 설정 : 인터넷에서 HTTPs 트래픽 허용, 인터넷에서 HTTP 트래픽 허용

※ 무료로 사용하고자 할때 꼭 프리티어인 t2.micro를 선택한다.

(전체 EC2 포함하여 한달 총 750시간 제공)

사용자가 1개의 EC2을 24시간*30일 사용할 경우 720시간이므로 문제없지만

사용자가 2개의 EC2을 24시간*30일 사용할 경우 1440시간이므로 과금이 발생된다.

 

1-2. 보안 - launch wizard 인바운드 규칙 9090포트 추가

1-E. 인스턴스 시작


인스턴스 요약 -> 퍼블릭 IPv4 주소


2. [MobaXterm] 세팅

2-1. AWS 접속하기

      -  Session -> SSH 
      -  Basic SSH settings : 퍼블릭 IPv4 주소 (1. 에서 생성한 EC2 주소 참고)
      -  Advanced SSH settings : Use private key : 키페어.pem   (1. 에서 생성한 키페어 참고)


2-2. MobXterm 로그인

      -  ec2-user 입력한다.


2-3. 자바11 설치하기
      -  업데이트 : sudo yum update
      -  자바 설치 : sudo yum install java-11-amazon-corretto -> y

      -  자바 버전 : java -version
      -  설치된 모든자바 확인: rpm -qa | grep java
      -  설치된 자바 버전 삭제 : sudo yum remove 자바이름

2-4. 깃 설치 및 깃 클론하기

      -  깃 설치 : sudo yum install git -> y
      -  깃 클론 : git clone 깃허브 주소


2-5. 빌드할 파일 deploy.sh 스크립트 만들기

      -  vi deploy.sh
      -  스크립트 입력 (맨 밑 참고 링크!)
      -  :wq
      
2-6. 실행 권한 부여 

      - chmod 755 파일명-0.0.1-SNAPSHOT.jar

      - chmod 755 gradlew

      - chmod 755 ./deploy.sh


2-7. Plain.jar 생성 막기

      - build.gradle  -> "jar { enabled = false }" 추가


2-8. 실행 : ./deploy.sh

      - 필요한 jar파일을 다운받게 된다.

빌드 오류 
* plain 으로 잡힐 경우
  -> 파일 삭제 (프로젝트/libs, ~ 경로) :  sudo rm 파일명-SNAPSHOT-plain.jar
  -> 2-7 적용

* Socket 오류일 경우
  -> 2-6 적용 // jar 파일 권한 부여

* 빌드 오류 일 경우
  -> 2-6 적용 // gradlew 파일 권한 부여



3. [AWS][RDS] 데이터베이스 세팅

3-1. 데이터베이스 보안그룹 생성
보안 그룹이름 : 이름
설명 : 설명
인바운드 규칙 : MYSQL/Aurora   AnyWhere-ipv4
아웃바운드 규칙 : 모든트래픽   0.0.0.0/0


3-1-1. 보안그룹 생성 완료

3-2. 데이터베이스 생성
엔진옵션 : MySql
템플릿 : 프리티어

※ 프리티어를 선택하지 않으면 과금이 나오게 된다.

DB 인스턴스 식별자 : 식별자명
마스터 이름 : 이름
마스터 암호 : 암호
퍼블릭 액세스 : "예"

보안그룹 -> 3-1.에 생성했던 보안규칙을 넣는다.

3-3. application.properties jdbc -> RDS 엔드포인트 주소:3306/스키마명


4. [DataGrip] 세팅


4-1. [AWS] RDS -> 엔드포인트 복사
4-2. NEW -> DATASOURCE -> MYSQL
     HOST : 엔드포인트 (3-1. 에서 생성한 RDS 내역)
     USER : 유저이름 (3-2. 마스터이름)
     PW : 패스워드 (3-2. 마스터암호)

 

   + 커넥트 테스트하도록 한다.

4-3. SQL 데이터베이스 삽입

 

5. 접속 방법
http://주소:9090/

 

번외. nohub 확인방법

      - tail nohub.out

 

다음으론 NginX 설치하여 5. 에서 포트번호를 없애는걸 다루도록 한다.

 

참고링크 : https://jojoldu.tistory.com/263?category=635883 

 

5) 스프링부트로 웹 서비스 출시하기 - 5. EC2에 배포하기

이번 시간엔 지금까지 개발한 내용을 EC2에 배포 해보겠습니다. (모든 코드는 Github에 있습니다.) 5-1. EC2에 Git 설치 및 프로젝트 Clone 배포에 앞서 기반작업이 되는 Java와 Git을 EC2에 설치하겠습니다

jojoldu.tistory.com