⭐️ EC2서버 배포를 위한 과정
1. 배포 파일 빌드(build)
지금까지 만들어온 프로젝트를 배포하기 위해 하나의 파일로 묶는것 -> 배포 파일 빌드
인텔리제이 - 오른쪽 탭 Gradle 클릭 -> Tasks-build-build 더블 클릭
=> 좌측에 build폴더 -> libs- .jar확장자로 끝나는 파일이 생성되면 빌드 완료
2. OpenJDK설치(나는 설치했으니까 앞으로는 생략해도 되겠지..?)
// apt-get은 인덱스를 가지고있음(위치: etc/apt/sources.list)
// 이곳에 저장된 저장소에서 사용할 패키지의 정보를 얻는 것(?) 저장소에 openjdk 받기전에 확인하는 것
sudo apt-update
// 프로젝트 생성할 때 설정했던 자바 버전에 맞춰서 설치(설치되어있으면 안해도됨)
sudo apt-get install openjdk-8-jdk
sudo apt-get install openjdk-11jdk
// java 버전 확인
java -version
• apt-get(Advanced Packaging Tool): 우분투(Ubuntu)를 포함안 데비안(Debian)계열의 리눅스에서 쓰이는 패키지 관리 명령어 도구 • sudo: superuser 권한으로 실행하기 위해서 씀 |
3. AWS EC2 접속하기
1) keypair 접근 권한 변경
sudo chmod 400 받은키페어를끌어다놓기
chmod: 권한 변경(change mod) 나/그룹/전체 순으로 권한을 나타내고 Read(4) Write(2) execute(1) 숫자들의 합으로 권한을 표시함 👉🏻 400의 의미는 나만 읽을 수있다는 것 |
2) SSH 접속하기
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
// ssh -i /Users/sky/Desktop/sky_key.pem ubuntu@111.111.111.220 이런식으로 나옴
SSH(Secure Shell Protocol) 다른 컴퓨터에 접속할 때 쓰는 프로그램으로 보안이 상대적으로 뛰어남 |
4. Filezilla(파일질라)를 이용해서 배포 파일 업로드
프로토콜: SFTP / HOST: 내 EC2서버 IP / USER: ubuntu / key file: 키파일 위치 |
마우스로 드래그해서 파일을 업로드/다운로드 👉🏻 프로젝트 빌드한 .jar파일을 오른쪽으로 드래그하기 |
5. 포트 사용 확인
⭐️⭐️⭐️⭐️ 매 주마다 스프링부트로 새로운 프로젝트를 올리고있어서 포트는 열려있고, 포트가 이미 사용중이라는 에러를 저번주에 이어 이번주도 본다.. 미리 사용하고있는 포트 죽이고 스프링 부트를 작동시키자 |
더보기
1. 8080포트를 누가 쓰고있는지 찾기
lsof -i :8080
// 다른 포트번호 사용이 궁금하면 lsof -i :포트번호 입력하면 됨
2. 위 명령으로 8080포트 사용하고있는 PID를 확인할 수 있음. PID를 써서 포트 죽이기
kill -9 PID입력
// 내 8080포트 사용중인 PID를 넣으면 이런 형식
// kill -9 101681
6. 스프링 부트 작동시키기
java -jar {파일명.jar}
// java -jar 입력하고 파일명 앞에 몇 글자만 입력하고 Tap키 누르면 내가 만든 파일이 자동으로 들어옴
7. 웹브라우저에서 IP입력해서 접속해보기
http://내AWS아이피:8080
⭐️ 웹브라우저에서 안열리면 확인하기!
더보기
(첫 주에 파이참으로 프로젝트 했을 때는 포트가 8000이였었음)
기본적으로 22번 포트만 열려져있음
AWS에 E2C에서 자체적으로 포트를 열기/닫기를 관리함
-> AWS EC2 Security Group에서 인바운드 요청 포트를 열어줘야 함
EC2 관리 콘솔 -> 보안그룹(영문: Security Group) -> 보안 그룹-> Edit inbound rules -> 포트 추가하기
접속 확인 후
8. nohup 적용하기
내가 터미널을 꺼도(SSH접속을 꺼도) 계속 서버가 돌아가게 하기위해서
// 원격 접속 종료해도 계속 서버가 돌아가게 하기: nuhup으로 배포
nohup java -jar {파일명.jar} &
// 서버 종료 방법 순서 1.pid 값(프로세스 번호)확인
ps -ef | grep java
// 2. 확인한 pid값을 입력하여 프로세스 kill
kill -9 {pid값}
9. 도메인 붙이기
이건 지금 가비아에 설정해놔서 따로 안해도 됨(필요 시 추후에 추가할 것)
📄 레퍼런스
'aws' 카테고리의 다른 글
아마존, aws, EC2, 인스턴스, AMI 개념잡기 (0) | 2022.12.16 |
---|---|
📝 도메인 주소가 aws EC2서버까지 전달되는 과정 (0) | 2022.11.16 |
aws RDS MySQL DB 인텔리제이(Intellij)와 연결하기 (0) | 2022.09.26 |
aws RDS MySQL 데이터베이스 생성하기 (0) | 2022.09.26 |
aws 프리티어 기간 RDS 과금..청구💸 (0) | 2022.09.13 |