[AWS] 인스턴스 생성
AWS 사이트에서 지역을 서울로 설정한다.
aws 웹사이트에 EC2 검색 후 "인스턴스 시작" 클릭
이름 작성, Ubuntu 선택
인스턴스 유형에 "프리 티어 사용 가능"인지 확인한다.
** 키 페어는 EC2 인스턴스에 원격으로 접속할 때 꼭 필요하기 때문에 생성해야 한다.
"새 키 페어 생성" 클릭
아래와 같이 작성
(기존에 생성한 키 페어가 있을 경우, 다른 인스턴스에 접근할 키로 사용이 가능하다.
기존에 생성해 놓은 키 페어가 있다면 그것으로 사용해도 된다.)
아래 화면에서는 "TestKey"라는 새로운 키 이름을 작성한 예시를 보여드렸지만
이미 저는 기존에 "sshKey"라는 키페어가 있어서 그것을 추후에 사용할 예정입니다.
네트워크 설정
보안 그룹은 방화벽에 관한 내용인데 이건 추후에 따로 생성해서 설정해줄 예정이니 넘어가도록 한다.
(기존에 보안 그룹을 생성하였다면 그걸로 해도 된다.)
- "보안 그룹 생성" 밑에 있는 SSH 트래픽 허용 부분은 EC2 인스턴스를 생성하고 생성한 인스턴스에
본인이 사용하고 있는 노트북이나 데스크톱으로 접속 하기위한 것이며 이때 SSH 통신을 사용한다.
- SSH 통신을 할때 ip 제한을 어떻게 할것인지에 관한 내용으로 집에서 고정된 ip로만 접근하는 경우이면
내 ip 를 선택해 주면 되고,
노트북으로 여러 장소에서 사용할 일이 많을 경우 위치무관(0.0.0.0/0)으로 설정해주면 된다.
스토리지 구성
인스턴스 생성하기
본인이 설정한 요약 정보 확인하고 "인스턴스 시작" 클릭
"인스턴스 시작" 클릭 후 인스턴스가 생성된 것을 확인
보안 그룹 수정하기
보안 그룹 : AWS에서 제공하는 방화벽, 인바인드와 아웃바운드 규칙이 존재한다.
- 인바운드 규칙(inbound) : 외부에서 EC2나 RDS 등의 내부로 접근할 때 사용되는 방화벽 규칙
- 아웃바운드 규칙(outbound) : EC2나 RDS 등의 내부에서 외부로 접근할 때 사용되는 방화벽 규칙
EC2에 접속하여 서버를 띄우는것이 목적이므로 인바운드 규칙만 수정한다.
EC2 메뉴의 "네트워크 보안" - "보안 그룹" 클릭
"보안 그룹 생성" 클릭
보안 그룹 이름을 작성한다.
"인바운드 규칙" 메뉴에서 "규칙 추가" 클릭
- 스프링 부트 기반 서버를 열어줄 것이므로 사용자 지정으로 8081 포트를 설정한 후 url을 아는 누구나 접속할 수
있도록 Anywhere-IPv4 로 설정한다.
"인바운드 규칙"을 아래와 같이 설정한다.
아웃바운드 규칙은 따로 설정하지 않고 "보안 그룹 생성" 클릭
보안 그룹 설정하기
EC2 페이지로 돌아와서 방금 만든 보안 그룹을 EC2에 설정하도록 한다.
기존에 설정된 보안 그룹은 해제하고 방금 만든 보안 그룹으로 교체해준다.
보안 그룹이 제대로 변경되었는지 확인한다.
발급받은 ssh 키로 EC2 우분투 콘솔에 접속하기
EC2 인스턴스가 체크되어있는 상태에서 "연결" 클릭
윈도우 cmd에서는 chmod라는 명령어가 허용이 되지 않아서
"git bash"라는 프로그램을 이용하여 작업을 수행하겠습니다.
(저는 sshKey.pem을 sshkey라는 폴더에 저장하였습니다.)
참고: cd라는 명령어는 ~에 접속하다라는 의미로 생각하시면 됩니다.
- cd ~/Desktop : desktop에 접속
- cd sshKey : desktop에 있는 sshKey라는 폴더에 접속
ubuntu 접속 완료된 화면
Git 설치 명령어
sudo apt-get install git
git --version
Java 설치 명령어
sudo apt install openjdk-17-jdk
java --version
**** 아래는 개인 정리용 (참고 x)
인텔리제이에서 bootjar 더블클릭하면 build 실행
Git bash 열고 아래와 같이 명령어 입력
1)
cd ~/Desktop
// DEKSTOP에 있는 문서 목록 확인
ls
// KEY에 권한 부여
chmod 400 CodeKey.pem
// ec2 연결
ssh -i "CodeKey.pem" ubuntu@퍼블릭 ipv4 주소.ap-northeast-2.compute.amazonaws.com
// 현재 이 bash 셀은 내 컴퓨터가 아닌 EC2 서버에 연결되어 있다.
다른 Git bash 창 열고
2)
cd ~/Desktop
// 존재하는 파일을 로컬에서 서버로 이동시키기
// key에 권한 부여
chmod 400 CodeKey.pem
// (scp -i "키페어.pem" 보낼파일경로 사용자계정@ec2아이피:받을경로)
scp -i "CodeKey.pem" ~/Desktop/projectStudy-0.0.1-SNAPSHOT.jar ubuntu@(퍼블릭 ipv4 주소).ap-northeast-2.compute.amazonaws.com:~/
// 이창 뜨면 git bash 종료
// projectStudy-0.0.1-SNAPSHOT.jar 100% 60MB 10.1MB/s 00:05
다시 1)로 이동
ls
// ls 누르고 enter 치면 projectStudy-0.0.1-SNAPSHOT.jar가 뜬다.
sudo java -jar projectStudy-0.0.1-SNAPSHOT.jar
// 무중단 배포
nohup java -jar projectStudy-0.0.1-SNAPSHOT.jar &