배포란 다른 사용자들이 인터넷을 통해서 사용할 수 있게 만드는 것
우리가 만든 서비스를 다른 사용자가 사용하기 위해서는 인터넷 상에 배포가 되어 있어야 한다
우리가 만든 서비스를 테스트할때는 localhost를 사용하여 개발을 한다.
배포를 진행하여 IP(ex. 124.16.2.1) or 도메인 (ex. www.naver.com)과 같이 고유 주소를 부여 받아 다른 컴퓨터에서 해당 주소로 접속이 가능하게 하자
EC2 의 정의는 Elastic Compute Cloud이다
컴퓨터를 빌려 원격으로 접속해 사용하는 서비스, 즉 하나의 컴퓨터를 의미한다
내가 만든 서비스에 다른 사용자들이 접근하기위해 도메인 주소나 IP를 통해 접속을 진행한다
하지만 내 PC가 항상 ON 상태가 아니면 접근이 불가능하게 되므로, AWS EC2라는 컴퓨터를 빌려서 사용하는 것이다.
✅ 현업에서도 백엔드 서버를 배포하기 위해서 EC2에 서버를 많이 사용한다.
리전이란 인프라를 지리적으로 나누어 배포한 각각의 데이터 센터이다
EC2가 컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스인데, 이때 컴퓨터들이 전 세계적으로 다양하게 분포되어 있다.
컴퓨터의 위치를 리전(Region)이라고 한다
리전의 선택 기준은 애플리케이션의 주된 사용자들의 위치와 가까운 곳을 선택하는 것이 유리하다
주의 !!
✅ 각 리전마다 EC2가 따로 생성 되어 관리됨에 유의하자
EC2의 이름을 설정하여 해당 컴퓨터가 어떤 역할을 하는지 알 수 있다
윈도우, 맥, 우분투 등등.. 이 존재한다
윈도우와 맥은 사용자가 손쉽게 사용하기 위한 기능들이 추가되어 용량을 많이 차지하고 성능을 많이 잡아먹는다.
따라서 서버를 배포하는 컴퓨터의 OS는 가벼운 Ubuntu 를 많이 사용한다
인스턴스: AWS EC2에서 빌리는 컴퓨터 1대
인스턴스 유형: 컴퓨터 사양
키페어: EC2 컴퓨터에 접근할 때 사용하는 비밀번호
키페어 이름은 어떤 EC2에 접근하기 위한 것인지 알아볼 수 있게 지정하자
보안그룹이란 AWS 클라우드에서의 네트워크 보안을 의미한다
아까 위에서 생성했던 EC2 인스턴스(컴퓨터)를 집이라 생각하면,
보안그룹은 울타리, 대문으로 생각할 수 있다
✅ 이때 두 가지 트래픽이 존재한다
인바운드 트래픽에는 2가지 포트 (22번, 80번)를 고려하여 인바운드 보안 그룹 규칙을 지정했다
22번 포트 - 우리가 EC2에 원격 접속할 때 사용하는 포트
80번 포트 - 백엔드 서버를 띄울 예정인 포트
이때 어떤 IP 에서든 접근할 수 있게 하기 위해서 소스 유형은 위치 무관으로 지정했다
13.250.15.132:3000
IP: 13.250.15.132
Port: 3000
IP는 특정 컴퓨터의 주소이고 Port는 한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소이다
✅ 잘 알려진 포트(well-known port)란 ?
EC2 안에 하드디스크같은 저장공간을 EBS(Ealstic Block Storage) 라고 한다
EBS와 같은 저장 공간을 포괄적으로 스토리지, 볼륨 이라고 부른다
퍼블릭 IPv4 주소: EC2가 생성되며 부여받은 IP 주소
인스턴스 상태: EC2 인스턴스가 실행 중이라는 뜻은 컴퓨터가 켜져있다는 뜻
✅ EC2 인스턴스를 한 번 종료하면 도중에 취소할 수 없으니 조심해야 한다
실제 서버를 운영할 때 자주보게 되는 창
✅ EC2에 접속하기
EC2 인스턴스를 생성했을때 발급받은 IP는 임시적인 IP이다
인스턴스를 재부팅하면 IP가 바뀌어있어서 불편한점을 보완하기 위해 고정 IP를 할당받아야 하는데,
이것이 탄력적 IP이다
jdk 설치 -> application.yml 파일 설정 -> 서버 실행 -> 동작 확인
EC2에 git config --global credential.helper store
를 통해 깃 정보를 등록해놓으면, 사용자 개인 토큰이 노출될 수 있다는 문제가 발생한다