2021. 2. 16. 22:28ㆍ프로젝트/Salle(살래) 중고거래 웹
중고거래 웹 프로젝트 Salle가 채팅 기능 구현을 끝으로 모든 기능이 완성됐습니다. 서버에 배포까지 해보려고 서버방식 레퍼런스를 구글링 해보니 AWS와 Spring boot를 조합해 적용하는 경우가 많았습니다. 그리고 AWS는 편리하고 일정 기간/용량에 한해 무료이며 글로벌 IT기업과(Netfilx, Twitch, Facebook...etc) 국내기업(KBS, SBS, 당근마켓, 마켓컬리...등)들의 사용도 늘어나는 추세이기 때문에 결정했습니다.
자바/스프링 백엔드 뿐만 아니라 서버도 배워보고 싶어 실용적인 오픈소스보다 이론적인 생활코딩 강좌를 통해 AWS 웹 서버 배포를 진행하기로 결정했습니다.
AWS EC2 인스턴스
1) 개념
소개
-
Amazon server에 있는 한 대의 컴퓨터를 임대하는 것과 같은 클라우드 서비스
목적
-
가상서버를 빌려 website를 개설할 수도 있고, 원하는 운영체제를 변경해 사용할수도 있음
2) 인스턴스 타입
AMI(운영체제)
-
UNIX 계열(Linux): Amazon Linux 2, Ubuntu
-
둘중에 뭘로 해야할까? Stackflow - Ubuntu는 이미 예전부터 업데이트 되어오던 리눅스 체제라 안정적이다. 하지만 Amazon은 update에 취약하다(== 설정들의 변경이 크면서 managing하기 어려워질 정도다). Product에 적용시키기 보다 testing에 적합하다. 라는 의견이 있었다.
사양 선택
-
Free trial. 스토리지는 몇 번 해보면서 프로젝트별 필요량에 대한 감이 생길 것
태그
-
관리자, 이름 등 인스턴스에 원하는 네이밍을 설정할 수 있음
보안 그룹
-
인스턴스에 접속을 허용하고 막는 설정
-
생활코딩 WEB > 인터넷 > IP, 도메인, 포트 강좌들어야 이해가 됨
-
생활코딩 인터넷 웹서버 강좌
1. 자가서버 운영
-
IP란
-
IP(Internet Protocol)는 인터넷 체계 안의 여러 플레이어(컴퓨터, 공유기, 스마트폰, 서버 등)들이 지켜야할 규칙/약속
-
IP 주소는 상대방에게 요청할 때 필요한 주소, 전화번호에 비유
-
도메인은 알아보기 쉬운 이름으로 전화번호를 연락처에 저장하는 것
-
도메인별 IP주소 알아보는 법
-
Cmd > Ping [도메인명(google.com)]
-
통신이 되려면 접속 컴퓨터도 IP가 필요함(발신자 번호에 비유)
-
Envelope에 비유 보내는 이 <-> 받는 이 요청하고 응답하면 둘의 관계가 뒤바뀐다.
-
컴퓨터는 IP주소로만 접속 가능하다.(연락처 이름이 아닌 전화번호로 통화가 연결되듯이) 이를 변환해주는 시스템이 DNS(Domain Name System)
-
도메인은 연 1~5만원 등록 비용을 내고 사용 가능함
2. 서버 연결하기
-
자기 IP에 접속하기
-
성공: 공인 IP 사용(LAN) 실패: 사설 IP 사용(공유기)
-
IPv4(0.0.0.0 ~ 255.255.255.255)는 총 40억개 IP주소가 생성이 가능한데 2011년에 이미 고갈 됨.
-
해결법 1
-
IPv6로 이관하자(수천구 개의 주소 생성가능; 억 > 조 > 경 > … > 양 > 구)
-
해결법 2
- 포트 포워딩: 공유기가 공인 IP를 사설 IP로 포워딩 해줘 공인 IP로 요청 응답을 해줄 수 있도록 해주는 기능
-
포트(port)는 항구, 정박이란 뜻으로 클라이언트가 특정서버 접속 시 정박하는 위치(?). IP주소 뒤 콜롬(:) 뒤에 붙임(123.34.2.2:80)
-
(다시 AWS 인스턴스 정리로 복귀)
-
Type: 인스턴스에 접속하는 방법
-
나중에 XShell로 연결시켜 줄 예정(puTTy로도 가능)
-
-
FTP, 원격(remote), Browser...etc 이 중에 제한된 방법만 가능케하도록 설정
-
SSH(Secure Shell)은 웹서버가 Linux 계열 일때 내 컴퓨터로 원격제어하기 위해 필요한 네트워크 프로토콜이다.
-
Source: 허용할 IP 설정. HTTP는 다른 클라이언트들이 유입되기 때문에 오픈용으로 설정
인스턴스 pwd 생성
-
RSA 방식의 공개키
-
파일로 다운로드 되며 재발급은 어려움
-
RSA: 인수분해 알고리즘으로 고안된 대표적인 공개키 방식임. A가 B에 정보를 전달할 경우, B는 A에게 공개키를 전달하고 개인키는 B만 가지고 있음. A는 정보와 함께 공개키로 암호화를 걸어 B에게 전달함. B는 개인키로 복호화해 정보를 받음
Window에서 리눅스 서버 원격제어 하기
-
SSH 설치하기: XShell(무료), puTTy도 무료(회사까지 범용)
-
IP 관리를 위해 필요한 3가지: IP 주소, ID, PWD
-
Linux 명령어 sudo란?
-
Superusesrdo라고 관리자 권한으로 실행에 비유
'프로젝트 > Salle(살래) 중고거래 웹' 카테고리의 다른 글
10. AWS EC2 + Spring boot (4) - tomcat에 spring boot .war파일 업로드 (0) | 2021.02.20 |
---|---|
10. AWS EC2 + Spring boot (2) - AMI, Scalability (0) | 2021.02.18 |
9. 판매자-구매자 채팅 기능(Chat Application) (3) 완결 - MVC 코드 읽기 (2) & WIL(What I Learned) 정리 (0) | 2021.02.14 |
9. 판매자-구매자 채팅 기능(Chat Application) (2) - DB 설계 & MVC 코드 읽기 (2) | 2021.02.09 |
9. 판매자-구매자 채팅 기능(Chat Application) 구현하기(+ 개발 투자 시간 기록 데이터) (1) (1) | 2021.02.04 |