Amazon Web Service
AWS를 통한 배포 방법 및 과정과 관련 개념을 정리합니다
배포
개발에 있어서 '배포'란 최종 사용자에게 소프트웨어를 전달하는 과정을 뜻합니다
호스팅의 종류
웹 호스팅
: 웹 사이트를 운영하기 위해 필요한 서버와 인터넷 연결, 저장 공간, 데이터베이스 등을 대여해주는 서비스
(ex) cafe24)
서버 호스팅
: 서버와 인터넷 연결을 제공하여 어플리케이션, 웹 사이트, 데이터베이스 등을 운영할 수 있도록 하는 서비스
(서버 컴퓨터 한대를 대여해주는 행위입니다)
웹 호스팅과 서버 호스팅의 차이는 제공하는 서비스의 범위입니다
서버 호스팅이 대규모의 사이트나 어플리케이션 운영을 위해 제공되는 서비스라면,
웹 호스팅은 서버호스팅보다 사용범위가 좁고 제한적이지만 소규모 프로젝트에는 더 적합합니다
그래서 우리가 이번에 사용할 방법은 웹호스팅, 그리고 호스팅 업체로는 AWS를 선정했습니다
또한 AWS의 여러 서비스 형태중 IaaS 방식인 EC2를 사용하기로 합니다
클라우드
클라우드 컴퓨팅은 IT 리소스를 인터넷을 통해 온디맨드로 제공하고
사용한 만큼만 비용을 지불하는 것을 말합니다
IaaS(Infrastructure as a Service): 컴퓨팅 자원, 네트워크, 저장장치 등의 IT 인프라 자원을 사용자가 원격으로 접속하여 사용할 수 있는 클라우드 컴퓨팅 서비스
PaaS (Platform as a Service): 웹 어플리케이션 개발 및 운영을 위한 개발 플랫폼, 데이터베이스, 네트워크 등의 기술 자원을 제공하는 클라우드 컴퓨팅 서비스
SaaS (Software as a Service): 원격으로 접속하여 사용할 수 있는 소프트웨어 어플리케이션을 제공하는 클라우드 컴퓨팅 서비스
SSH
SSH(Secure Shell)는 가상 서버의 리눅스 운영체제에 접속하기 위한 보안 프로토콜을 말합니다
AWS의 EC2 (Elastic Compute Cloud) 인스턴스에서 SSH를 사용하면
가상 서버(리눅스 환경)에서 파일을 전송하거나 명령을 실행할 수 있습니다
AWS 가입과정은 생략합니다
*EC2 대시보드 링크
https://ap-northeast-2.console.aws.amazon.com/ec2/home?region=ap-northeast-2#Home:
중요! 먼저 지역 체크부터 확실히 합시다
인스턴스 시작버튼을 누릅니다
사용할 이름 및 태그를 입력합니다
우분투 서버를 사용합니다
(사용 버전은 지금까지 써온 20.04 LTS를 따라 사용)
인스턴스 유형은 사용할 요금제에 맞게 설정
(t2.micro를 선택했습니다)
중요!!
키 페어는 원격 접속에 필요한 프라이빗 키입니다
사용자의 하드 디스크에 저장되는데 이걸 깃허브에 올렸다가는 도용되어 요금폭탄을 맞을 수 있으니 부디 잘 간수합시다...
윈도우에서도 쓸 수 있는 RSA 유형을 선택합니다
보안그룹 규칙을 두 개 추가합니다
80번 포트는 웹 서버용, 3306번 포트는 MySQL에서 사용하기 위함
*0.0.0.0/0
은 모든 IPv4 주소에 대한 엑세스 허용을 뜻합니다
(::/0
은 IPv6)
설정은 이것으로 끝. 이제 인스턴스를 실행합니다
(↓ 서버를 임시로 닫을 때는 인스턴스 종료가 아닌 인스턴스 중지를 선택해야 합니다)
보안탭에서 설정값을 체크할 수 있습니다
중요!
chmod 400...
으로 시작하는 코드를 복사해서 VScode의 터미널에 입력합니다
이제 프라이빗 키(.pem
) 파일의 경로와 파일 이름, 사용자 이름과 연결할 인스턴스의 주소를 입력해 연결할 수 있습니다
(ssh -i...
로 시작하는 코드를 복사해서 터미널에 입력하면 인스턴스 원격 접속 성공!)