24시간 작동하는 서버가 있어야 외부에서 본인이 만든 서비스에 접근할 수 있다.
- 집에 PC를 24시간 구동
- cafe24 등 호스팅 서비스 이용
- 클라우드 서비스(AWS, AZURE 등) 이용
클라우드 서비스?
-
인터넷(클라우드)를 통해 서버, 스토리지, 데이터베이스, 네트워크, 소프트웨어 등 컴퓨팅 서비스를 제공하는 것
-
IaaS, 아이아스, 이에스
가상머신, 스토리지, 네트워크, 운영체제 등의 IT인프라를 대여해주는 서비스
AWS의 EC2, S3 등
-
PaaS, 파스
IaaS에서 한 번 더 추상화한 서비스
많은 기능이 자동화돼있음
AWS의 Heroku 등
-
SaaS, 사스
소프트웨어 서비스
구글 드라이브, 드랍박스 등
AWS 사용한 이유
- 첫 가입 시 1년간 대부분 서비스가 무료
- 기본적으로 지원하는 기능(모니터링, 로그 관리 등)이 많아 개인/소규모일 때 개발에 좀 더 집중 가능
- 국내에서 많은 기업이 사용, 사용자가 많아 자료와 커뮤니티가 활성화돼있음
- AWS의 IaaS 사용할 것. PaaS는 대부분 작업이 간소화되지만, 프리티어로 무중단 배포가 불가능
- AWS 초보자는 직접 하나씩 다 다뤄보는 것이 도움됨
AWS
로그인
회원가입
- 무료로 가입

- 집 주소, 아이디, 카드 번호 등을 입력한 후 인증번호를 통과하여 무료 플랜으로 시작할 수 있다.

루트 사용자 로그인

EC2 인스턴스 생성하기
- EC2 (Elastic Compute Cloud)
AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버
보통 "AWS에서 리눅스 서버 혹은 윈도우 서버를 사용합니다" 라고 하면 이 EC2를 가리킴
EC2 인스턴스 접근
- 로그인 후 콘솔에서 리전(서비스가 구동될 지역)이 서울로 설정되어있지 않다면 서울로 변경

- 검색창에 EC2 검색

- EC2 대시보드에서 [인스턴스 시작] 버튼 클릭

EC2 인스턴스 생성하기
- AMI 선택
- EC2 인스턴스를 시작하는 데 필요한 정보를 이미지로 만들어둔 것, 가상 머신에 운영체제 등을 설치할 수 있게 구워 넣은 이미지
- Amazon Linux AMI 선택

- t2.micro 인스턴스 유형 선택

- t2는 요금 타입, micro는 사양. T시리즈는 범용 시리즈
- t2에서는 '크레딧(일종의 CPU를 사용할 수 있는 포인트 개념)'이 모두 사용되면 더 이상 EC2를 사용할 수 없음. 따라서 트래픽이 높은 서비스들은 T시리즈를 사용하지 않음
-
VPC, 서브넷 등의 세부 사항은 현재 1대의 서버만 사용하니 별다른 설정을 해주지 않고 넘어가자.
-
스토리지 설정 - 프리티어 최대 30GB로 설정

-
웹 콘솔에 표기될 Name 태그 등록
해당 인스턴스를 표현하는 여러 이름으로 사용될 수 있음
EC2의 이름을 붙인다고 생각

- 보안 그룹(방화벽) 설정
굉장히 중요한 부분!
-
서버로 80 포트 외에는 허용하지 않는다는 역할을 하는 방화벽이 AWS에서 보안 그룹으로 사용됨
기존 생성 보안 그룹이 없으므로 유의미한 이름으로 변경

-
유형 항목에서 SSH면서 포트 항목에서 22인 경우는 AWS EC2에 터미널로 접속할 때를 이야기 한다.
이 때 pem 키가 없으면 접속이 안 되니 전체 오픈(0.0.0.0/0,::/0)하는 경우를 종종 발견함.
이렇게 되면 이후 파일 공유 디렉토리나 깃허브 등에 실수로 pem 키가 노출되는 순간 서버에서 가상화폐가 채굴될 수 있음!
보안은 언제나 높을 수록 좋다. pem 키 관리와 지정된 IP에서만 SSH 접속이 가능하도록 구성하는 것이 안전하다.
-
그래서 본인 집의 IP를 기본적으로 추가하고 (내 IP를 선택하면 현재 접속한 장소의 IP가 자동 저장), 집 이외 장소에서 접속할 때는 해당 장소의 IP를 다시 SSH 규칙에 추가하는 것이 안전함

-
현재 프로젝트의 기본 포트인 8080와 HTTPS 443 포트추가하고 [검토 및 시작] 클릭

-> 보안 경고가 뜨지만, 8080을 열어놓는 것은 위험한 일이 아니니 바로 [시작하기] 가능
- pem 키 (비밀키)
- 인스턴스로 접근하기 위해서는 pem 키 필요
할당할 pem 키를 선택하자.
인스턴스는 지정된 pem키와 매칭되는 공개키를 가지고 있어, 해당 pem 키 외에는 접근을 허용하지 않음 마스터키 이므로 유출 금지
- 이후 EC2 서버로 접속할 때 필수 파일이니 잘 관리할 수 있는 디렉토리로 저장한다.


- 인스턴스 시작 -> 생성된 인스턴스의 인스턴스 ID, NAME 태그, IP, 도메인 확인



- EIP(Elastic IP, 탄력 IP) 할당
- 인스턴스도 하나의 서버이므로 IP가 존재한다.
같은 인스턴스를 중지하고 다시 시작할 때에도 새 IP가 할당된다.
매번 PC에서 접근할 때마다 IP 주소를 확인해야 하므로 인스턴스의 IP가 변경되지 않고 고정 IP를 가지게끔 고정 IP 할당할 것


새 주소 할당 시작하면

- 탄력적 IP와 EC2 주소를 연결
방금 생성한 탄력적 IP를 확인하고 페이지 위에 있는 [작업] -> [탄력적 IP 주소 연결]


다시 인스턴스 정보 들어가서 탄력적 IP 생성됐는지 확인

주의! 방금 생성한 탄력적 IP는 생성하고 EC2 서버에 연결하지 않으면 비용 발생
따라서 생성한 탄력적 IP는 무조건 EC2에 바로 연결해야 하고, 더는 사용할 인스턴스가 없을 때에도 탄력적 IP를 삭제해야 한다.