Ubuntu 환경 자바 설치

1. 개요

AWS EC2(Ubuntu) 환경에서 다음 환경을 구성합니다:

  • JDK 17
  • Maven
  • Node.js + npm + PM2
  • Git
  • Nginx (reverse proxy 및 정적 파일 서빙용)

2. 필수 명령어 설명

- sudo

  • 슈퍼유저 권한으로 명령을 실행
  • 예: sudo apt update

- apt

  • Ubuntu 계열 리눅스의 패키지 관리자
  • 패키지 설치: sudo apt install 패키지명
  • 패키지 목록 최신화: sudo apt update

- cd

  • 디렉토리 이동
  • 예: cd backend-project

- ls

  • 현재 디렉토리 내 파일 목록 보기
  • 옵션 예: ls -al (숨김파일 포함, 상세보기)

3. 시스템 패키지 설치

1) 패키지 목록 최신화 및 업그레이드

sudo apt update           # 패키지 목록 최신화
sudo apt upgrade -y       # 시스템 전체 업그레이드 (선택)

2) JDK 17 설치

sudo apt install -y openjdk-17-jdk
java -version             # 설치 확인

3) Maven 설치

sudo apt install -y maven
mvn -v                    # 설치 확인

4) Node.js & npm 설치

sudo apt install -y nodejs
sudo apt install -y npm
node -v && npm -v         # 버전 확인

최신 Node.js 설치를 원할 경우 NodeSource에서 제공하는 setup 스크립트 사용 가능:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

5) Git 설치

sudo apt install -y git
git --version             # 설치 확인

4. Git 프로젝트 가져오기 및 빌드

1) Git에서 프로젝트 클론

git clone https://github.com/username/project.git
cd project/backend-project

2) Maven 빌드

mvn clean install         # target 디렉토리에 .jar 파일 생성됨

참고:

  • clean: 이전 빌드 파일 삭제
  • install: .jar 파일을 생성하여 로컬 Maven 저장소에도 설치

5. 프론트엔드 & 백엔드 실행 설정

1) PM2 설치 및 실행

sudo npm install -g pm2

# 백엔드 실행 (jar 파일 실행)
pm2 start "java -jar target/my-app.jar" --name backend

# 프론트엔드 실행 (React 등)
cd ../frontend-project
npm install
npm run build
pm2 serve build 3000 --name frontend

2) PM2 자동 재시작 설정

pm2 startup
pm2 save

재부팅 시 자동 실행되도록 설정

6. Nginx 설치 및 설정

1) Nginx 설치

sudo apt install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

2) Nginx 기본 명령어

sudo systemctl status nginx     # 상태 확인
sudo systemctl restart nginx    # 재시작
sudo systemctl stop nginx       # 중지
sudo nginx -t                   # 설정 파일 문법 검사

3) Nginx 설정 예시 (/etc/nginx/sites-available/default)

server {
  listen 80;

  location / {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }

  location /api/ {
    proxy_pass http://localhost:8080;
  }
}
sudo nginx -t
sudo systemctl restart nginx

7. 기타 유용한 리눅스 명령어

명령어설명
`ps auxgrep java`java 프로세스 확인
kill -9 [PID]프로세스 강제 종료
df -h디스크 용량 확인
free -m메모리 사용량 확인
top실시간 리소스 사용량 확인
tail -f logs/app.log로그 실시간 모니터링
chmod +x script.sh실행 권한 부여