[Ubuntu] App Server 필요 라이브러리 설치 및 세팅
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