서버를 배포하기 위해서는 컴퓨터가 필요하다. 내가 가진 컴퓨터에서 서버를 배포해 다른 사용자들이 인터넷을 통해 접근할 수 있게 만들 수도 있다. 하지만 내 컴퓨터로 서버를 배포하면 24시간 동안 컴퓨터를 켜놔야 한다. 그리고 인터넷을 통해 내 컴퓨터에 접근할 수 있게 만들다보니 보안적으로도 위험할 수도 있다.
이러한 불편함 때문에 내가 가지고 있는 컴퓨터를 사용하지 않고, AWS EC2라는 컴퓨터를 비렬서 사용하는 것이다. 이 외에도 AWS EC2는 여러 부가기능들(로깅, 오토스케일링, 로드밸런싱 등)을 많이 가지고 있다.
현업에서도 실제 서버를 배포할 때 AWS EC2를 아주 많이 사용한다. 백엔드 서버를 배포해야 할 때면 EC2에 서버를 배포해서 사용한다.
리전(Region)이란 인프라를 지리적으로 나누어 배포한 각각의 데이터 센터를 의미한다. EC2가 컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스로 알고 있다. 여기서 EC2를 통해 빌려서 쓸 수 있는 컴퓨터들이 전 세계적으로 다양하게 분포해있다. 이렇게 컴퓨터들이 위치한 위치를 보고 AWS에서는 리전(Region)이라고 한다.
사람들이 애플리케이션을 사용할 때는 네트워크를 통해 통신하게 된다. 이 때, 사용자의 위치와 애플리케이션을 실행시키고 있는 컴퓨터와 위치가 멀면 멀수록 속도가 느려진다. 따라서 애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전(Region)을 선택하는 것이 유리하다.
도메인을 발급하고 관리해주는 서비스이다. 도메인이 없던 시절에는 특정 컴퓨터와 통신하기 위해서 IP주소를 사용했다. 프론트 웹 페이지든 백엔드 서버든 일반적으로 IP를 기반으로 통신하지 않고 도메인을 기반으로 통신한다. 이유는 여러가지지만 그 이유 중 하나는 HTTPS 적용 때문이다. IP주소에는 HTTPS 적용을 할 수 가없다. 도메인 주소가 있어야만 HTTPS 적용을 할 수 있다. 이 때문에 특정 서비스를 운영할 때 도메인은 필수적으로 사용하게된다.
ec2 검색 후 클릭


우측에 있는 인스턴스 시작


이름과 OS 이미지 선택

AMI 와 인스턴스 유형 선택

키 페어 생성

생성버튼 누르면 다운로드 시작

네트워크 및 보안 설정

인바운드 보안 그룹 규칙 설정

스토리지 구성

이후 인스턴스 시작



인스턴스 클릭해서 잘 올라왔는지 확인

인스턴스 클릭해서 요약정보 확인

우측 상단 인스턴스 상태로 여러가지 상태 확인 가능

인스턴스 상태 좌측 연결 클릭

bash 실행 확인


인스턴스 중지 시


인스턴스 시작 시

새로운주소 할당

인스턴스 종료 시



아예 삭제가 되어서 시작버튼 비활성화

탄력적 IP 주소 할당

할당


이름 편집

작업에서 탄력적 IP 주소 연결


인스턴스 선택 후 연결

인스턴스로 가서 퍼블릭 IP 주소 확인

중지가 되어도 ipv4주소가 유지되는지 확인


다시 인스턴스 시작


실행중 상태 변화가 되어도 ip주소가 바뀌지 않는 모습
우측 상단 인스턴스 연결 클릭 후 연결

서버 켜진 모습

sudo su 로 관리자권한 주고 간단한 node js 설치를 통해 서버에 올려보기
apt-get update && /
apt-get install -y ca-certificates curl gnupg && /
mkdir -p /etc/apt/keyrings && /
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && /
NODEMAJOR=20 && /
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list && /
apt-get update && /
apt-get install nodejs -y
설치 다된 모습

node js 버전 확인

올릴 테스트 깃허브 주소 들어가서 테스트 대상 확인

git clone 명령어로 가져오기

ls 로 확인후 폴더 들어가기

경로 이동 후 패키지확인

npm i 로 설치 진행

nano .env 로 환경 파일 생성

입력 후 입력된거 확인

설치

앱 및 서버 구동

퍼블릭 ip 사용하여 들어가기

결과확인 😉
