Cloud
Cloud : 인터넷을 통해 필요한만큼 빌려쓰는 컴퓨터자원( 서버, 저장공간 , 네트워크, DB ...)
It 인프라를 서비스로 제공
AWS, Azure, GCP와 같은 회사가 거대한 데이터센터를 운영하고 , 사용자는 필요한만큼 임대하여 사용.
클라우드 서비스는 사용자가 직접관리하는 범위에 따라 달라짐.
| 구분 | 제공 범위 | 사용자가 관리해야 할 범위 | 예시 |
|---|---|---|---|
| IaaS | 하드웨어, 가상화 | OS, DB, 앱, 보안 등 전부 | AWS EC2, Azure VM |
| PaaS | IaaS + OS + 런타임 + DB | 앱 코드 | AWS Elastic Beanstalk, Heroku |
| SaaS | 완성된 앱까지 전부 | 없음 (사용만 함) | Gmail, Zoom, Slack |
AWS
Amazon Web Service : 아마존 닷컴에서 운영하는 클라우딩 서비스
웹과 모바일의 애플리케이션과 같은 거의 모든 물리적인 컴퓨터 자원을 클라우드를 통하여 실행할 수 있는 인프라 제공.
EC2 인스턴스 : AWS EC2에서 대여한, 인터넷에 있는 "내 컴퓨터 한대"
AMi : 운영체제 템플릿 (우분투)
인스턴스 타입 : 컴퓨터 성능 크기 및 사양
EBS : 컴퓨터의 SSD
public IP/Elastic IP : 외부에서 접속할 때 쓰는 public ip 와 고정ip
AWS EC2 보안그룹(가상 방화벽)
인바운드 : 외부 -> EC2로 들어오는 트래픽 : 내 서버로 들어오는 요청을 어떤 포트/프로토콜/ip 허용 여부
아웃바운드 : EC2 -> 외부로 나가는 트래픽 : 내 서버에서 외부 API 호출 또는 DB : 내서버가 외부로 나가는 요청을 허용/차단 여부
ssh : 컴퓨터에 관리자로 접속하는 문 : 원격 터미널 접속방식(port 22)로 명령어로 리눅스 컴퓨터를 조종하는 방식
키 페어(.pem 파일) : 문을 열때 쓰는 열쇠 파일 : RSA 암호알고리즘을 사용한 비대칭키 방식으로 공개키/개인키로 로그인 사용자 인증
EC2에서 키 페어 생성/선택시 .epm(private key)받아서 보관하고 EC2 인스턴스안에는 public key가 들어간다. .pem(private key)와 SSH를 통해 접속한다.
ssh(22) : (관리용) 관리자 문, .epm private key를 통해 들어간다.
http(80) / https(443) : (서비스용) 사용자들이 사용하는 문
웹서버 -> WAS -> 백엔드 프레임워크
web server : 정적 리소스 반환, APi 호출시 WAS로 넘겨주는 Proxy(중간 전달자 역할)
Web Application Server : 사용자 요청에 맞춰서 HTML을 만들어 보내준다. 백엔드 프레임워크로 작성된 코드들을 실제 실행시켜주는 런타임 환경 : 비즈니스 로직 담당
Backend FrameWork : 개발자가 백엔드 서버를 편하게 구성하도록 해주는 도구 모음집
Nginx
aws ec2 회원가입 및 인스턴스 생성


인스턴스 인바운드 설정

private key(.pem) 파일 이름설정

인스턴스 연결


EC2 인스턴스 접속


NginX 설치 및 설정


http 요청시

https 요청시

AWS EC2 보안그룹 : 443 인바운드 열려있음.
ubuntu : UFW 꺼져있음.
Nginx에서 ssl/tls https 복호화 처리.
https : 인증서(Certificate) 기반 동작(전자서명)
인증서는 도메인에 대해 발급 (ip address 발급 x)
본인인증 Self-signed: 직접 만든거라 보안에 취약하므로 브라우저/os에서 신뢰하지않아 경고창
공인인증 CA-signed Certificate: 신뢰기관(CA)들의 공개키가 브라우저/os에 내장되어있어서, 검증된다면 경고없음.
공인인증 발급을 위해 새 도메인 구입 및 설정 → certbot 설치 -> nginx 파일 설정 -> http/https 허용
새 도메인 구입 및 설정


certbot 설치
sudo apt install certbot python3-certbot-nginx


ningx 파일설정 Domain 80번 포트 설정
sudo nano /etc/nginx/sites-available/default


Let’s Encrypt 인증서 발급 & HTTPS 자동 설정
sudo certbot --nginx -d toddcanwell.online -d www.toddcanwell.online



