[Mac]AWS EC2 가상서버 구축해서 프로젝트 배포하는 방법
인스턴트 생성하기
1.AWS 공식 홈페이지에 접속한다.
2.콘솔에 로그인 버튼을 클릭하여 로그인한다. 계정이 없다면 계정을 생성한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-9.42.11.png)
3.상단의 서비스 메뉴를 클릭하여 컴퓨팅>EC2 카테고리를 클릭한다.
![was](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-9.24.01-e1636073587523.png)
4.인스턴스 메뉴를 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-9.24.11.png)
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-9.25.20.png)
4.우측 상단에 인스턴스 시작 버튼을 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-9.25.55.png)
5.사용할 OS를 선택한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-9.44.43.png)
6.인스턴트 유형을 선택하고 검토 및 시작 버튼을 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-9.47.24.png)
7.인스턴스 시작 검토에서 보안 그룹 편집을 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.23.07.png)
8.규칙 추가 버튼을 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.23.32.png)
9.사용자 지정 TCP를 추가한다.
![was](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.36.06.png)
10.검토 및 시작 버튼을 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.28.32.png)
11.스토리지 편집을 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.50.23.png)
12.프리 티어 최대 용량인 30GB로 늘여준다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.50.34.png)
13.검토 및 시작 버튼을 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.50.43.png)
14.시작하기 버튼을 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.51.51.png)
15.키 페어 설정을 한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.52.35.png)
16.키 페어 다운로드를 한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.52.46.png)
17.인스턴스 시작 버튼을 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.53.00.png)
18.인스턴스 보기 버튼을 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-10.53.25.png)
19.다음과 같은 화면이 나온다.
![was](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오전-11.09.08.png)
SSH 프로토콜 접속
윈도우에서는 mobaxterm 을 다운로드 받아서 사용해야하지만 맥북에서는 기존에 존재하는 터미널을 이용해서 접속할 수 있다. 윈도우 버전에서 접속하는 방법은 다음에 포스팅할 예정이다.
1.인스턴스 목록에서 사용할 인스턴스에서 마우스 오른쪽, 연결 버튼을 클릭한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.19.10.png)
2.연결 버튼을 클릭하면 인스턴스 연결하는 방법을 확인한다.
![aws](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.19.03.png)
3.터미널에서 키 페어 파일을 다운 받아둔 경로로 이동한다.
cd Downloads/
4.키 페어 파일을 이동하여 .ssh 폴더로 안으로 이동한다.
mv green-v1.pem ~/.ssh
5.이동한 키 페어 파일이 있는 경로로 이동한다.
cd ~/.ssh
6.현재 위치한 경로를 확인한다.
pwd
7.다음 명령어를 실행하여 SSH 프로토콜에서의 키가 공개되지 않도록 한다.
chmod 400 green-v1.pem
8.퍼블릭 DNS를 사용하여 인스턴스에 연결한다.
ssh -i “green-v1.pem” ubuntu@ec2-3-37-89-156.ap-northeast-2.compute.amazonaws.com
5번과 6번은 2번의 인스턴스 엑세스 방법에서 확인할 수 있다.
<터미널 전체보기>
![terminal](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-4.50.35.png)
9.깃이 설치되어 있는지 확인한다.
git –version
10.java가 설치되어 있는지 확인한다.
git –version
AWS는 기본적으로 깃은 설치되어 있지만, java는 설치되어 있지 않다.
11.java를 설치한다.
sudo apt update
sudo apt-cache search jdk | grep 11
sudo apt install openjdk-11-jdk
<터미널 전체보기>
![terminal](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.16.34.png)
![terminal](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.16.51.png)
![terminal](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.17.09.png)
![terminal](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.17.56.png)
프로젝트 배포하기
1.테스트용 프로젝트를 생성한다.
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.26.19.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.27.40.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.30.13.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.33.28.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.35.36.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.37.12.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.48.30.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.37.25.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.37.38.png)
2.프로젝트를 jar 파일로 만든다.
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.37.49.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.40.31.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.41.03.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.46.52.png)
![spring](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-2.54.38.png)
3.프로젝트를 깃에 푸시한다.
4. 깃 클론해서 프로젝트를 실행하고 AWS에서 받은 IPv4 퍼블릭 IP를 사용하여 브라우저로 접속한다.
![terminal](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAROAQAAAAAd0xIyAAAAAnRSTlMAAHaTzTgAAAEYSURBVHja7cExAQAAAMKg9U9tCj+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4Gw2qAAHA5UTeAAAAAElFTkSuQmCC)
![brower](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-3.43.30.png)
![browser](https://www.saichoiblog.com/wp-content/uploads/2021/11/스크린샷-2021-11-05-오후-3.43.17.png)
탄력적 IP 주소 할당하기
1.검색창에서 탄력적 IP 주소 메뉴를 선택한다
2.탄력적 IP 주소 할당 버튼을 클릭한다.
3.할당 버튼을 클릭한다.
4.할당 받은 IP 주소를 클릭하여 상세 보기로 들어간다.
5.인트턴스에 탄력적 IP 주소를 연결한다.
6.만들어둔 인스턴스와 프라이빗 주소를 선택한 후 연결 버튼을 클릭한다.
7.주소 연결이 성공적으로 되면 연결된 인스턴트 ID에 표시가 된다.
8.할당 받은 주소로 프로젝트를 열어본다.
탄력적 IP 주소 인스턴스 연결 해체하는 방법
![탄력적IP주소 9](https://www.saichoiblog.com/wp-content/uploads/2021/11/탄력적IP주소-9.png)
탄력적 IP 주소 릴리스 하는 방법
![탄력적IP주소 10](https://www.saichoiblog.com/wp-content/uploads/2021/11/탄력적IP주소-10.png)
<결과화면>
![탄력적IP주소 11](https://www.saichoiblog.com/wp-content/uploads/2021/11/탄력적IP주소-11.png)
코드 수정하기
1.프로젝트 코드를 수정하고 깃허브에 푸시한다.
git push -f origin master
2.AWS 모바로 접속한다.
cd ~/.ssh
chmod 400 green-v1.pem
ssh -i “green-v1.pem” ubuntu@ec2-3-37-89-156.ap-northeast-2.compute.amazonaws.com
3.AWS에 프로젝트를 클론한다.
git clone https://github.com/saichoi/animalapp.git
4.터미널에서 프로젝트 폴더로 이동한다.
cd ~/animalapp
5.ubuntu에게 권리를 부여한다.
chmob 777 animalapp
6.백그라운드로 실행해서 터미널이 닫혀도 서버가 돌아가게 만든다.
nohub java -jar animalapp-0.0.1-SNAPSHOT.jar &