서비스하고 싶은 애플리케이션 개발이 완료되었다면 배포를 통해 최종 사용자에게 소프트웨어를 전달해줘야 한다. 다시말해, 우리가 만든 결과물을 실제로 다른 사람들이 사용할 수 있도록 해야하는 것이다. 배포를 하기 위해 필요한 준비물이라고 한다면 제3자가 접속할 수 있는 컴퓨터가 존재해야 하며 해당 컴퓨터가 365일 24시간 켜져있어야만 한다.
제3자가 접속할 수 있고 24시간 켜져있는 컴퓨터를 "서버컴퓨터"라고 부르며 최근에는 서버컴퓨터를 대여해주는 "호스팅" 업체들을 통해 배포를 진행한다. 호스팅에는 크게 "웹 호스팅"과 "서버 호스팅"이라는 2가지 케이스가 존재한다. 서버 호스팅은 호스팅 업체의 물리 서버를 단독으로 임대 및 구매하는 행위를 일컫는다. 호스팅 업체에서 물리적인 서버 컴퓨터 한 대를 대여해주는 행위라고 생각하면 된다. 반면, 웹 호스팅은 호스팅 업체의 서버 중 일부 공간만을 임대하는 개념이다. 호스팅 업체에서 서버를 대여해주지만 컴퓨터 한 대를 잘게 쪼개서 빌려주는 행위하고 생각하면 된다. 서버 및 인프라 구축이 필요 없어 저렴하다는 장점이 있지만 단독 서버에 비해 자원 사용량이 제한적이라는 단점 역시 존재한다.
본 포스팅에서는 웹 호스팅 업체 중 하나인 AWS (Amazon Web Service) 를 이용해 서버를 배포하는 과정에 대해 알아보고자 한다. AWS는 클라우드 컴퓨터 시스템으로 웹 호스팅을 하고 있다. 클라우드 개념에 대해 간략하게 짚고 넘어가자면, 무수히 많은 컴퓨터를 하나로 묶고 어디서든 연결할 수 있게 하였으며, 컴퓨터에 가상화를 두고 원하는만큼 컴퓨터의 자원을 쪼개서 주는 개념이다. AWS의 장점은 사용량만큼 비용을 지불한다는 점이다. 이것은 클라우드 컴퓨팅이라는 기술 발전에 따라 가능해졌고 이러한 클라우드 컴퓨팅으로 서비스를 하는 형식에도 여러가지가 존재한다.
- IaaS ( Infrastructure as a Service ) : 컴퓨터의 자원만 제공하는 형태.
- PaaS ( Platform as a Service ) : 헤로쿠 등 기존 환경에서 서비스를 올리는 형태.
- SaaS ( Software as a Service )
AWS에는 다음과 같은 여러가지 제품들이 존재한다.
- Amazon EC2
- Amazon Lambda
- Amazon S3
- Amazon RDS
이 중 EC2는 IaaS에 해당되며 Amazon EC2를 사용해 배포를 진행해 보도록 하겠다.
< 목차 >
- AWS 회원가입하기
- AWS EC2 인스턴스 생성
- 인스턴스 연결 및 원격 접속
1. AWS 회원가입하기
우선 AWS 홈페이지에서 루트 사용자 계정으로 가입을 진행해주도록 하자.
( 하단 AWS 링크 )
2. AWS EC2 인스턴스 생성
2 - 1. AWS 관리 콘솔에 들어가서 "가상 머신 시작"을 클릭해준다.
2 - 2. 인스턴스 이름 생성
2 - 3. 애플리케이션 및 OS 이미지
사용하고 싶은 운영체제를 선택해주면 된다. 본 포스팅에서는 우분투( ubuntu )를 사용하였다.
2 - 4. 인스턴스 유형 선택
컴퓨터의 자원을 설정해주는 부분이다. 여기서는 프리티어 사용 가능 유형으로 선택해주었다.
2 - 5. 키페어 ( 로그인 )
원격 접속 시 필요한 키값을 받기 위한 항목이다.
원하는 키 페어 이름을 작성한 후 "키 페어 유형"과 "피라이빗 키 파일 형식"은 기본값으로 하였다. 키 페어 생성 버튼을 클릭하면 키 페어 파일이 다운로드 된다. 참고로 키 페어 파일은 원격 접속 시 사용되는 매우 중요한 파일이므로 잘 저장해 놓아야 한다.
2 - 6. 보안 그룹 설정
네트워크 설정에서 편집을 클릭해 보안 그룹 설정을 해준다.
유형 : ssh , 프로토콜 : TCP , 포트 범위 : 22 를 기본으로 가지고 있는 것을 확인할 수 있다. 원격 접속을 하기 위한 디폴트 포트라고 생각하면 된다.
누구나 접속할 수 있도록 포트를 추가로 설정해준다.
HTTP는 기본적으로 80번 포트를 사용하고 HTTPS는 443번 포트를 사용한다.
2 - 7. 인스턴스 시작 버튼 클릭
아래와 같이 인스턴스가 생성되었다.
3. 인스턴스 연결 및 원격접속
생성된 인스턴스 중 연결하고자 하는 인스턴스를 클릭하고 연결 버튼을 눌러준다.
ssh 부분을 복사한 후에 VSCode 터미널에 입력하면 로컬에서 서버컴퓨터로 원격 접속이 가능해진다. 이때 VSCode에서 작업한 프로젝트의 루트 디렉토리에 인스턴스를 생성할 때 다운 받은 키 페어 파일이 반드시 있어야 한다. 참고로 .gitignore 파일 안에 반드시 키 페어 파일명을 작성해 놓도록 하자.
아래와 같은 나온다면 서버컴퓨터에 접속이 완료된 것이다.
리눅스나 맥북을 사용하고 있을 경우 다음과 같은 에러가 발생할 수 있다.
파일의 권한과 관련된 에러이다.
-rwxrwxrwx로 되어있는 것을 읽기 모드인 -r-- r-- r-- 로 바꿔줘야 한다.
r : 4 , w : 2 , x : 1 이기 때문에 r-- r-- r-- 는 400으로 나타낼 수 있다. 아래의 명령어를 사용해서 바꿔주도록 하자.
sudo chmod 400 ./ingoo-key.pem
여기까지가 AWS에서 EC2 인스턴스를 생성하고 서버 컴퓨터에 원격 접속하는 것까지의 과정이다.
'AWS' 카테고리의 다른 글
AWS EC2 배포 - (5) Route 53 / 도메인 연결하기 , HTTPS (0) | 2022.06.02 |
---|---|
AWS EC2 배포 - (4) PM2 & Nginx 설정하기 (0) | 2022.06.02 |
AWS EC2 배포 - (3) Nginx & 탄력적 IP (0) | 2022.06.01 |
AWS EC2 배포 - (2) 서버컴퓨터 환경설정 (0) | 2022.06.01 |