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 aux | grep java` | java 프로세스 확인 |
kill -9 [PID] | 프로세스 강제 종료 | |
df -h | 디스크 용량 확인 | |
free -m | 메모리 사용량 확인 | |
top | 실시간 리소스 사용량 확인 | |
tail -f logs/app.log | 로그 실시간 모니터링 | |
chmod +x script.sh | 실행 권한 부여 |