AWS 프로젝트 배포

songmin jeon·2024년 2월 27일
0
post-thumbnail

프로젝트 배포!


0. 개념 알아두기

배포

  1. 프로젝트 빌드
    ⓐ프로젝트 ->
    ⓑ실행가능한 압축파일
    -> .jar => 순수 java
    -> .war => web 구성요소(jsp)
  1. 가상 서버 구축
    실행하기 위한 환경설정

  2. 파일 업로드 후 실행


1. 프로젝트 빌드

  • 이클립스 실행
  • 프로젝트 하나 만듬
  • 다이나믹 프로젝트 AwsTest 명으로 만들기 (이름이 조금 중요함)
    - 톰켓서버의 버전을 잘 알아둬야 한다.
    - 자바의 버전을 잘 알아둬야 한다.

  • 메이븐 생성
    - jar 파일을 빌드하는 역활

    • 프로젝트의 빌드해주는 역활

  • war로 되어야 jsp 사용가능

  • pom.xml에서 이 부분으로 변경가능함.(jar, war)

  • 위에 작업을 처리하면 web.xml이 생김!
  • 실제 배포를 위해서는 web.xml 필요함.
  • 스프링에서는 할 필요 없음

  • 서블릿 생성

  • 코드 작성
package com.smhrd.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/test")
public class TestController extends HttpServlet {
	private static final long serialVersionUID = 1L;
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		// test.jsp로 forward 이동
		
		String url = "WEB-INF/views/test.jsp";
		
		RequestDispatcher rd = request.getRequestDispatcher(url);
		rd.forward(request, response);
		
	}

}
  • WEB-INF 안에 jsp 파일만들기
    (views 폴더 안에 test.jsp 가 생성됨)
  • 서버 구동 후 페이지 이동 하는지 확인하기

  • 메이븐 빌드
  • package 입력하고 run
  • 에러 발생된 경우
    => 메이븐 업데이트 해줘야함
    (아래는 실패한 경우)

  • 성공한 경우

우리가 앞으로 쓰게 될 war 파일

쓰기 편하게 프로젝트명과 동일하게 바꿈


위 파일을 바탕화면으로 이동
카톡내용 받아서 SpringBoot.war 바탕화면으로 이동


2. aws 가상 서버 구축

  • aws 로그인

2.1. 인스턴스 생성

검색창에 ec2

  • 인스턴스 시작 누르기



  • 키 페어




  • 인스턴스 생성됨!

id 클릭

보안에 보안 그룹을 클릭

  • 규칙추가 클릭
    다음 과 같이 설정

  • 규칙 저장

  • 인스턴스 > 인스턴스id 클릭 > 연결 클릭


2.2. 파워셀 설정

  • 윈도우에서 파워쉘 실행
  • 경로를 KEY가 저장된 경로로 설정
    (아래는 다운로드 경로 설정됨)
PS C:\Users\smhrd4> cd .\Downloads\

PS C:\Users\smhrd4\Downloads>

알아두기 !

(아래는 작업 내용과 관계 없음)

  • 리눅스의 대표적인 명령어

chmod 400 "key.pem"
권한 변경 명령어 권한(숫자) "파일이름"
-> 파일 의 권리를 숫자로 변경해라

파일 -> 나 그룹 다른사용자
파일 -> rwx rwx rwx
파일 -> 111 110 100


※ 주의 우분투에 컨트롤 + v는 쓰지 말것! (강제 종류 명령어임)


  • 인스턴스에 연결 에서 주의문구 생기면!

    액세스하려면 22 포트를 개방해야 할 수 있으므로 이 인스턴스에 연결하지 못할 수 있습니다.

    [고지은고:티스토리]
    (출처: https://letsgojieun.tistory.com/137)

=> ssh 22 포트를 연결해서 해결할 수 있다!


파워셀에 우클릭 > yse > 대기 완료되면 다음 화면으로 됨

  • sudo apt-get update 쓰고 엔터
    sudo : 관리자 권한으로 실행
    apt-get(apt) : 무언가를 설치하겠다.
    update : OS를 업데이트 하겠다.
  • 아래처럼 되면 업데이트 완료

2.3. 프로젝트 실행하기 위한 설치가 필요함.

1. jdk 설치 (자바 버전 맞춰 쓰기 !)

sudo apt-get install openjdk-17-jdk 쓰고 엔터 > Y > 설치완료

1.1. 버전 확인은 아래처럼 (설치 실패시 버전이 안뜸)

2. maven 설치 하기

sudo apt-get install maven 쓰고 엔터 > Y > 설치 완료

3. tomcat 설치하기 (기존과 달리 톰켓은 설치방법이 다름)

  • 톰켓 검색하기
  • 톰켓 홈페이지 방문

sudo wget 붙여넣기 엔터 > ls 엔터 > 아래처럼 나오면 다운 잘된거임

  • 압축해제를 해줘야함.
    tar -xvf apache-tomcat-9.0.86.tar.gz 엔터 > ls
    -x : 압축을 풀것이다.
    -xvf : 지정한 것의 압축을 풀 것이다.

압축파일은 빨간색, 파랑색은 압축 해제된 폴더


2.4. 파일질러로 파일 전송환경 구축

  • 컴퓨터간의 데이터 전송을 편하게 하기 위해 파일질러 다운받기 !
    - 1. 파일 질러 검색
    - 2. 홈페이지 방문

  • 이후는 next > install > 파일질러 창이 뜸
  • 편집 > 설정 >

  • 확인 클릭

  • 파일 > 사이트 관리자

  • 새 사이트 추가

  • 해당 위치에서 호스트 알 수 있음

  • 포트 없음

  • 사용자는 우분튜 ubuntu 임

  • 비밀번호 없음

  • 파일 넘겨주기 (2개)
    (나중에 작업할땐 이클립스에서 .war한 파일만 옮겨주면 됨!)

  • 우분투에서 ls 확인해보면 추가한 파일 2개가 더 있음.
    sudo mv AwsTest.war apache-tomcat-9.0.86/webapps/
    입력하여 파일 옯겨주기

  • 아파치내 해당 이미지의 파일이 실행되야함.

sudo apache-tomcat-9.0.86/bin/startup.sh
입력 엔터


2.5. 웹 페이지 공유

성공!


(아래는 수업에서 전달 받은 파일 정보)

  • AwsTest.war
    -> Maven project
    Tomcat이 실행시켜줘야함
    tomcat의 wevapps 폴더에 넣고
    tomcat의 startup.sh를 실행

  • SpringBoot.war
    -> Spring Boot project
    tomcat이 프로젝트에 내장됨
    스스로 실행(tomcat 설치 X)


스프링부트 파일 실행해보기

우분투에서 입력
java -jar SpringBoot.war 엔터


3 공유할 URL 주소


4. 수료하고 나서 주의사항!

우분투 종료시 서버가 셧다운 됨으로 닫지 말고록
aws의 인스턴스를 중단해야 돈이 안나감(데이터 쓰는만큼 소모됨)
재시작할때마다 url 호스트 주소가 바뀜으로 재설정 해줘야함

인스턴스 정지
키페어 삭제
보안그룹 삭제 (디폴트는 무시해도됨!)

profile
제가 한 번 해보겠습니다.

0개의 댓글