Spring

[Spring] DB 연결 하기 (2) AWS -EC2 : 배포방법

Journey Jeong 2023. 4. 18. 16:42

1. EC2 란? 

  • 아마존 웹 서비스(AWS)에서 제공하는 클라우드 컴퓨팅 서비스
  • 클라우드 컴퓨팅은 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공 → AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것
  • 후불제 PC방과 같이 사용한 만큼 비용을 지불하기 때문에 탄력적인 이라는 의미의 Elastic이라는 단어가 붙어있다. Elastic은 비용적인 부분 뿐만이 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미도 가지고 있다
  • 이외 아래 URL 참고 
  • https://velog.io/@server30sopt/AWS-EC2-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC

 

2. AWS 에 EC2 : 인스턴스 생성 

 

1) 인스턴스 시작 

* 애플리케이션 및 OS 이미지

  • 이름 : myWebServer01 ---- 추후에 02 03..
  • QuickStart : Amazon Linux | Amazon Linux 2023 AMI (프리티어) 
  •  아티텍처: 62 비트 

* 인스턴스 유형 

  •  인스턴스 유형 : t2.micro 

* 키 페어 (로그인)

  • 키 페어 생성 : 이름 입력 | RSA | .pem 
                        -> 생성 시 파일 다운로드 됨 , 위치 경로 잘 기억해두기 

* 네트워크 설정

  • 방화벽(보안그룹) : 보안그룹 생성
  • SSH 트래픽 허용 | 내IP (제한 걸어두는 것)
  • 인터넷에서 HTTPS 트래픽 허용 
  • 인터넷에서 HTTP 트래픽 허용

* 스토리지 구성 

  • 1x 30 GIB gp3 루트 볼룸 

* 고급 선택 정보는 수정하지 않음 

 

--> 인스턴스 시작! 

 

 

2) 탄력적 IP 주소 할당 

+  EC2 -> 네트워크 및 보안 -> 탄력적 IP 생성하기 : 기본 셋팅으로

+ 인스턴스 연결하기 : 자동으로 뜨는 것 으로 

완료되면 생성된 인스턴스에 탄력적 IP 가 뜸 

 

3)  PuTTU 다운로드 : 파일 업로드할때 쓰는 파일 -> 2개 다운로드 

다운로드 링크: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

  • putty.exe (the SSH and Telnet client itself) 64-bit x86
  • puttygen.exe (a RSA and DSA key generation utility) 64-bit x86
  • 위 키페어와 동일한 폴더에 저장하기 

+ puttygen.exe 파일 실행 

  • import key ->  pem 파일 불러오기 
  • save publick key 클릭 후 pem 과 같은 이름으로 저장하기 (단, 확장명은 ppk) 

 

 

+ putty.exe 파일 실행하기 

  • Connection -> SHH -> Auth -> Credential 에 Private KEey 에 ppk 연결
  • EC2 에서 퍼블릭 IPv4 주소 복사해와서 Basic Options dp 넣고 Saved Session 생성 후 Open 
  • 꼭 해당 key 에다가 ip 주소 및 키페어 파일 저장! 하기 

 

 

4) 검은 창 login as 에 ec2-user 입력 아래와 같이 뜨면 성공! => 리눅스 언어 사용 

* 리눅스 명령어 

ls -l = ll  : 현재 위치에 존재하는 파일리스트 
ll -al: 숨어있는 모든 파일 
is --help  :도움말 창 키키
cd / : 최상위 폴더로 이동 
rm : 삭제 
-- 권한없을 시 sudo rm 
cd~ 또는  cd : home/ec2-user

ll local* :목록 중 local~ 찾아줘
cat localtime : local 타임의 내용을 보여줘

 

3. 셋팅하기 

 

1) 시간 변경하기  UTC -> KST 

(1) 기존 시간 파일 삭제: cd / etc 에서 localtime 삭제 | sudo rm localtime
(2) 파일생성: sudo ln -s /usr/share/zoneinfo/Asia/Seoul localtime
(3) 파일이 잘 생성됐는지 조회하기: 만든 위치에서 ll local*date 입력 하여 kst 인지 확인!!

 

2) java 다운로드

  • 자바 버전 검색: dnf list java*
  • 그중 버전 선택 후 다운로드 실행: 
    sudo dnf install java-11-amazon-corretto-devel.x86_64  --> yes 
  •  잘 다운로드 됐는지 확인:  dnf list java-11* 
     | java --version | javac -version 으로 버전확인 

3) 톰캣 다운로드 

  •  위치지정 : cd/home/ec2-user
  • 다운로드 파일 :톰캣 버전 9 tar.gw 의 주소 복사 ->리눅스이기에 tar
  • 파일 넣기 : get http~~~tar.gz
  • 압축 풀기 (x 압축 해제, v 과정보기 ,f 파일지정: tar -xvf apache~~tar.gz
  • 확인했을 때 파랑색으로 풀려있으면 성공

4)  위치 변경하기

  • 변경 요청하기: sudo mv apeche~ /usr/local/
  • 위치변경 확하기: usr/local/apache~
  • 보안 변경하기: AWS 인바운드 규칙 편집 EC2 -> 보안 그룹 -> launch-wizard-1 ~ -> 인바운드 규칙 편집 -> 규칙 추가  
    • 사용자지정 TCP | IPv4 anywhere | 8080  -> 저장
  • 톰캣 파일 실행하기 
  • 퍼블릭 주소 확인하기: AWS 에서 EC2인스턴스 퍼블릭 주소 + :8080

 

4. 배포하기 

--> jar는 아래 링크 참고

https://kimcoder.tistory.com/394

 

[Spring Boot] 프로젝트 AWS에 배포하기

이번 포스팅에서는 여러분들이 작업한 Spring 프로젝트를 AWS에 배포해서, 로컬 컴퓨터가 꺼져있더라도 언제 어디서든 웹 애플리케이션에 접근할 수 있도록 하는 방법을 순서대로 설명할 것이다.

kimcoder.tistory.com

(1) Spring 에서 기존 만들었던 프로젝트 Run 하여 확인 

(2) Gradle Tasks 에서 적용할 프로젝트 로딩 : build > Run Gradle Task 클릭하면 workspace에 bulid 폴더가 생성

(3) bulid 폴더 > libx > 에 war 파일 두개 있는지 확인 (키로 진행 시 해당 파일에 pem 과 ppk 파일 넣어주기) 

(4) plain 파일의 이름을 ROOT.war 으로 변경 (안해도 됨) ㅣㅣ

 

+ 다시 검은 창에서 

 (5) vim/usr/local/apache-tomcat-9.0.74/conf/server.xml 로 톰캣 파일 열기 

     - Insert 모드로(I클릭) Host 수정 | Context 삽입 --- esc 후 :wq (저장하고 나가기) <--> :q 그냥 나가기 , :q! 강제나가기 

     * nano/usr/local/apache-tomcat-9.0.74/conf/server.xml 로도 톰캣 파일 열 수 있음 나가기는 컨트롤+x  

(7) /home/ec2-user 에 myweb 과 root 폴더 만들기(-p는 여러개 만들때)  : mkdir -p myweb/root 

(8) 가지고 올 폴더에 war 파일 가지고 오기 :  wget https://github.com/~~/ROOT.war

(9) ROOT.war 압축 풀기 :   jar -xvf ROOT.war 

(10) ROOT.war 압축 파일은 삭제 : rm ROOT.war 

(11) v파일 실행:  /usr/local/apache-tomcat-9.0.74/bin/startup.s

(12) 리얼타임으로 보기: tail -f /usr/local/apache-tomcat-9.0.74/logs/catalina.out 

(13) 퍼블릭주소:8080 으로 확인 ! 잘 되면 성공!!

* 종료방법 bin 위치에서 shutdown 

$ cd /usr/local/apache-tomcat-9.0.74/bin
$ ./shutdown.sh