WY J
학습 공간
WY J
  • 분류 전체보기 (95)
    • Java (38)
      • 알고리즘 (5)
      • 자료구조 (4)
      • 기초 (9)
      • OOP (10)
      • Collection (3)
      • Effective (5)
      • reator (2)
    • HTML&CSS (5)
    • macOS (3)
    • Git (5)
    • Network (5)
    • MySQL (2)
    • Spring Boot (31)
      • Core (5)
      • MVC (15)
      • Security (10)
    • 알고리즘 (1)
    • Cloud (3)
      • AWS (3)
    • Docker (1)
    • Project (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

hELLO · Designed By 정상우.
WY J

학습 공간

[AWS] EC2에 .war 외장 톰캣 서버 배포하기
Cloud/AWS

[AWS] EC2에 .war 외장 톰캣 서버 배포하기

2022. 10. 25. 09:27

EC2 패키지 인스톨러 업데이트

sudo apt update
sudo apt upgrade

 

Java 설치

sudo apt install openjdk-11-jre-headless

SSH Key 생성

ssh-keygen

 

SSH 공개 Key 복사

cat ~/.ssh/id_rsa.pub

 

Github에 공개키 등록

  1. github 접속
  2. setting
  3. SSH and GPG keys
  4. new SSH Key 클릭 후 등록

JAR → WAR 포맷 변경

 

1. build.gradle 수정

plugins {
    id 'org.springframework.boot' version '2.4.2'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'war' // 추가합니다.
    id 'java'
}
...

 

2. {project}Application 파일 수정

@SpringBootApplication
public class sampleApplication extends SpringBootServletInitializer { // (1)

    public static void main(String[] args) {
        SpringApplication.run(sampleApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // (2)
        return builder.sources(sampleApplication.class);
    }
}
  • SpringBootServletInitializer를 상속
  • config를 Override

 

3. 프로젝트 빌드

./gradlew build 명령어를 이용하여 프로젝트를 war 파일로 빌드


내장 Tomcat 실행

java -jar 빌드파일이름.war # or .jar

외장 Tomcat 서버에 배포하기

 

1. Tomcat 설치

https://tomcat.apache.org/download-80.cgi

 

링크 주소 복사

 

복사한 주소로 설치 진행

wget [복사한 주소]

 

다운로드한 파일 압축 해제

tar xvfz apache-tomcat-8.5.83.tar.gz

 

2. war 파일을 Tomcat 폴더로 옮기기

war 파일을 "apache-tomcat/webapps" 경로로 이동시킨다.

 

3. server.xml 파일 수정

config 폴더 하위에 있는 server.xml 파일을 수정한다.

...
<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Context path="/" docBase="sample"  reloadable="false" > </Context>
        
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
...

docBase에 개인이 설정한 프로젝트 이름을 작성한다. 이 후, 톰캣을 실행하면 .war 파일을 압축해제하여 webapps에 동일한 이름의 디렉토리가 구성된다.

 

4. Tomcat 포트 변경

...
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
...

IntelliJ의 내장 톰캣의 기본 포트는 8080번이므로 충돌을 방지하기 위해 port 번호를 수정할 수 있다. 예) 8090

 

5. Tomcat 실행

bin 디렉토리 하위에서 진행한다.

 

Window CMD

C:\Users\...\apache-tomcat-9.0.68\bin> .\start.bat # 톰캣을 실행합니다.
C:\Users\...\apache-tomcat-9.0.68\bin> .\shutdown.bat # 톰캣을 종료합니다.

Mac

{username}@{root} bin % ./start.sh # 톰캣을 실행합니다.
{username}@{root} bin % ./shutdown.sh # 톰캣을 종료합니다.

 

http://IP주소 또는 퍼블릭 DNS:8080/프로젝트명/ 경로로 접속하면 된다.

'Cloud > AWS' 카테고리의 다른 글

[AWS] 배포 자동화  (0) 2022.10.06
[Cloude] AWS이란?  (0) 2022.09.30
    'Cloud/AWS' 카테고리의 다른 글
    • [AWS] 배포 자동화
    • [Cloude] AWS이란?
    WY J
    WY J

    티스토리툴바