본문 바로가기
AWS

[AWS/Docker] 실전 클라우드 서버 구축 올인원 패키지 Online / 패스트캠퍼스 챌린지 07일차

by 원동호 2021. 9. 12.

Ch 03. 협업 툴 활용 A-Z

  • 01. 스프링 프로젝트 세팅 1
  • 02. 스프링 프로젝트 세팅 2
  • 03. 스프링 프로젝트 세팅 실습 1 - 1
  • 04. 스프링 프로젝트 세팅 실습 1 - 2
  • 05. 스프링 프로젝트 세팅 실습 2

스프링 프로젝트 세팅

해당 강의영상에서는 이클립스를 사용하여 진행하지만 본인은 IntelliJ IDE를 이용해서 진행보겠다.

 

OpenJDK 설치

https://jdk.java.net/archive/

Spring Framework는 자바로 만든 웹 프레임워크기 때문에 javak development kit(jdk)가 필요하다. 

11버전을 설치해보자.

압축 해제 및 폴더 이동

다운로드 한 디렉토리로 이동하고 압축을 해제한다.

cd ~/Downloads

tar xf openjdk-11_osx-x64_bin.tar.gz

jdk폴더 해당 경로로 이동

sudo mv /Library/Java/JavaVirtualMachines/

 

Termina에서 자바 버전확인

정상적으로 jdk가 적용되었으면 아래 명령어 입력시 현재 적용된 jdk 버전을 확인할 수 있다.

java -version

* Mac에서 확인된 개발자가 등록한 응용 프로그램이 아니기 때문에 'open jdk 11' 사용을 차단했습니다. 라고 문구가 뜰 경우 Mac 환경설정에서 해당 jdk를 허용해야 한다.  아래 화면에 해당 문구가 떴을때 허용 버튼을 눌러주면 된다. 

IntelliJ 설치

https://www.jetbrains.com/idea/download/#section=mac

 

IntelliJ 실행

Open 버튼을 클릭한다.

강의 영상에서 제공하는 스프링 프로젝트를 선택하고 Open버튼을 클릭한다.

Maven project를 선택하고 OK 버튼을 클릭한다.

프로젝트를 열면 자동으로 plugin 설치가 진행되며 완료될때 까지 기다려 준다.

프로젝트 실행하기

Spring Boot는 내장 톰캣이 이미 구축되어있기 때문에 별도의 톰캣은 설치하지 않아도 실행이 가능하다.  

하지만 프로젝트를 실행시키기위해서는 몇가지 설정이 필요하다.

상단의 Add Configuration.. 버튼을 클릭한다.

Add new run configuration.. 을 클릭하고 Application을 클릭한다.

Name : 원하는 이름을 입력한다.

Build and run : SDK는 인텔리제이에서 해당 Machine에 설치여부를 확인하고 설치되어있으면 문구가 뜨고 허용 버튼을 눌러주면 된다. 시작할 Application 경로를 선택해준다. 이것 또한 인텔리제이에서 인식하기 때문에 ReviewApplication 파일을 선택하기만 하면 된다.

Run Configuration을 설정한 후 위 상단에 Run, Debug 버튼이 활성화 된것을 볼 수 있다.

우측 화살표를 클릭하면 프로젝트 빌드 후 실행된다.

 

review/src/main/resources/application.properties

아래 파일에서는 해당 Springboot Project의 설정 값들이 정의 되어있다. 

포트는 원하는대로 변경할 수 있으며 해당 프로젝트는 7000번으로 정의되어있으므로 접속시 7000번 포트로 접속하면 되겠다.

#SERVER PORT
server.port=7000
server.servlet-path=/*

.
.
.

spring.aop.proxy-target-class=true

프로젝트가 성공적으로 실행되었으면 아래와 같은 화면을 볼 수 있다.

 

Web 접속

아래 URL로 접속해보자.

http://localhost:7000

 

AWS 구축

Java 설치

# jdk 리스트를 확인한다.
yum list | grep jdk

# open jdk 설치
sudo yum intsall -y java-1.8.0-openjdk

# 자바 버전 확인
java -version

# openjdk version "1.8.0_302"
# OpenJDK Runtime Environment (build 1.8.0_302-b08)
# OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)

 Tomcat 설치

# wget 패키지 설치
sudo yum install -y wget

# 톰캣 설치할 폴더 생성
sudo mkdir /opt/tomcat

# 톰캣 다운로드
sudo wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz

# 톰캣 압축해제 (/opt/tomcat 디렉토리 내에 풀어야함.)
sudo tar xvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1

Tomcat 계정 추가

sudo useradd -M tomcat

해당 계정 tomcat 권한 부여

sudo chgrp -R tomcat /opt/tomcat

소유권 설정

sudo chown -R tomcat webapps/ work/ temp/ logs/

Config 디렉토리 권한 부여

sudo chmod g+x conf

파일 삭제 및 수정 권한 부여

sudo chmod 777 webapps

톰캣 서비스 파일 생성

# vi /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID\
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target

* 톰캣 서비스 구동중 서비스 파일을 수정할 경우 아래 명령어를 통해 데몬서비스를 재시작 해야한다.

sudo systemctl daemon-reload

톰캣 구동 및 상태 확인

# 톰캣 서비스 등록
sudo systemctl enable tomcat
# Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to 
#/etc/systemd/system/tomcat.service.

# 톰캣 서비스 시작
sudo systemctl start tomcat

# 톰캣 서비스 상태 확인
sudo systemctl status tomcat

server.xml 수정

# conf 디렉토리 권한 수정
sudo chmod 777 conf

# server.xml open / 강의에서 제공하는 파일로 수정한다.
vi server.xml

webapps 폴더 정리

cd webapps/
rm -rf *

프로젝트 빌드

빌드 된 파일의 경로를 알 수 있다.

war 파일 배포

강의 영상에서는 파일질라(SFTP)를 이용했지만 커맨드 명령이 더 편해서 아래와 같은 명령을 이용해서 파일을 복사했다.

scp -i [pem 파일 경로] [복사하고자 하는 로컬 디렉토리 혹은 파일 명] [ec2계정명]@[dns or pulbic ip]:[복사 받고자 하는 aws 디렉토리]

톰캣 재시작 후 public ip:7000포트로 접속하면 정상적으로 화면이 뜨는것을 확인할 수 있다.

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

-> https://bit.ly/37BpXiC

댓글0