Linux

[Ubuntu] App Server 필요 라이브러리 설치 및 세팅

worldcenter 2024. 12. 17. 22:03

 

 

 

Springboot 프로젝트를 진행하면서 App Server를 배포를 완료하였습니다. Spring 애플리케이션을 배포하기 전 몇 가지 필요한 라이브러리를 설치하고 세팅한 과정을 설명드리겠습니다.

 

사전 환경

 

  • AWS EC2
  • Ubuntu 22.04 LTS

 

패스워드 기반 로그인으로 설정 변경

AWS VM은 처음 생성 시 기본적으로 SSH Key 기반으로 로그인이 가능하도록 세팅되어 있습니다. 이를 패스워드 기반으로 변경해보겠습니다. 패스워드로 변경하는 이유는 SSH Key의 경우 유출되면 보안 이슈가 발생할 수 있고 Linux서버에 접속해야 하는 사용자가 여러명인 경우 키 보다는 패스워드 기반이 관리 측면에서 훨씬 유리하기 때문입니다.

 

1. SSH Key를 통해 최초 로그인을 진행합니다.

ssh -i [PEM KEY] [USERNAME]@[EC2 IP]

 

2. sshd 설정 파일로 접근합니다.

sudo vi /etc/ssh/sshd_config

 

3. 패스워드 기반의 로그인이 가능하도록 설정을 아래와 같이 변경합니다.

PasswordAuthentication yes # 주석 삭제
PermitEmptyPasswords no # 주석 삭제

#KbdInteractiveAuthentication no # 주석 처리

 

KbdInteractiveAuthentication no 설정은 키보드를 통해 인증을 받는 것을 막는 설정으로 패스워드 기반의 로그인은 키보드를 통해 인증을 받기 때문에 이 부분을 주석 처리 해주어야 합니다.

 

3. SSH 서비스를 재시작 합니다.

sudo service ssh restart

 

4. 처음 로그인한 관리자의 패스워드를 설정합니다.

sudo passwd [USERNAME]

 

 

MySQL Connection 연결 확인을 위한 MySQL-Client 설치

1. 우선 APT 저장소를 업데이트 및 업그레이드 합니다.

sudo apt update && sudo apt upgrade

 

2. 이후 Mysql-Clinet를 설치합니다.

sudo apt install mysql-client

 

3. 정상적으로 MySQL이 연결 되는지 확인합니다.

mysql -u [USERNAME] -h [MySQL Host] -p

 

 

Redis Connection 연결 확인을 위한 redis-tools 설치

1. redis-tools를 설치합니다.

sudo apt install redis-tools

 

2. 정상적으로 Redis가 연결되었는지 확인합니다.

redis-cli -h [REDIS HOST]

 

 

jar 파일 실행을 위한 JDK17 temurin 설치

1. JDK17 temurin 설치 파일을 다운로드 하여 압축을 풉니다.

wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.13%2B11/OpenJDK17U-jdk_x64_linux_hotspot_17.0.13_11.tar.gz
tar xzfv OpenJDK17U-jdk_x64_linux_hotspot_17.0.13_11.tar.gz

 

2. 압축을 해제한 파일을 /opt/ 하위 경로로 이동시킵니다.

sudo mv jdk-17.0.13+11 /opt/

 

3. 전역 설정 파일로 접근하여 JAVA_HOME 환경 변수를 등록합니다.

sudo vi /etc/profile
------------------------------
export JAVA_HOME=/opt/jdk-17.0.13+11
export PATH=$PATH:$JAVA_HOME/bin
------------------------------
source /etc/profile

 

4. Java 버전 명령어를 통해 제대로 JDK가 설치되었는지 확인합니다.

java --version

 

 

AWS CodeDeploy 사용을 위한 agent 설치

1. Agent 설치 전 몇 가지 필요한 라이브러리들을 설치합니다.

sudo apt update && sudo apt install ruby-full && sudo apt install wget

 

2. CodeDeploy Agent 설치 파일을 가져옵니다.

wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install

 

3. 설치 진행 전 install 파일에 실행 권한을 부여합니다.

chmod +x ./install

 

4. 설치를 진행합니다.

sudo ./install auto

 

5. CodeDeploy Agent를 활성화 합니다.

sudo systemctl enable --now codedeploy-agent

 

 

서버 시간 KST로 변경

1. time 명령어로 현재 어떤 시간대로 서버가 설정되어 있는지 확인합니다.

timedatectl

 

2. Asia/Seoul(KST) 시간대로 변경합니다.

sudo timedatectl set-timezone Asia/Seoul

 

3. 다시 확인해보면 시간대가 정상적으로 변경되었음을 볼 수 있습니다.

 

 

Bastion VM 상에 Xrdp, Chrome 설치

Bastion에서 Grafana를 통해 로그 모니터링을 볼 수 있도록 Xrdp와 Chrome을 설치해보도록 하겠습니다.

 

1. Xrdp를 설치하고 서비스를 시작합니다.

# xrdp 설치
sudo apt-get install xrdp

# xrdp 접속 포트 변경(기본값 3389)
sudo vi /etc/xrdp/xrdp.ini

# xrdp 시작 및 enable
sudo systemctl start xrdp
sudo systemctl enable xrdp

# 추가 패키지 설치
sudo apt-get install -y xfce4

# xfce 데스크톱 환경 구성 파일 변경
sudo vi /etc/xrdp/startwm.sh

 

2. xfce 데스크톱 환경 구성을 아래와 같이 변경합니다.

# 13~14 라인 주석 처리
#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession
# 하기 내용 추가
test -x /usr/bin/startxfce4 && exec /usr/bin/startxfce4
exec /bin/sh /usr/bin/startxfce4

 

3. Chrome을 설치합니다.

# Chrome 설치
sudo apt update
sudo apt install wget
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb

# 의존성 문제가 발생할 경우
sudo apt-get install -f
sudo dpkg -i google-chrome-stable_current_amd64.deb