- @transactional
- 1차원 배열
- ORM
- sql
- Django
- DI
- spring boot
- java
- mysql
- Docker
- join
- nginx
- 문자열
- 데이터베이스
- hibernate
- static
- 스프링
- jpa
- string
- 프로그래머스
- SSL
- spring mvc
- 자바
- PYTHON
- spring security 6
- select
- springboot
- spring
- AWS
- 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
개발하는 자몽
[TIL] 백엔드 아키텍처, Nginx 본문
Backend Architecture
- AWS EC2 진입
- Nginx 진입
- Nginx는 실제로 하나지만, 기능 및 아키텍처 이해를 돕기 위해 순서를 나눴다 : 로드 밸런싱, 웹서버(view) 기능, 리버스 프록시/포트 포워딩 기능
- Nginx의 기능을 나누지 않고 하나로 썼을 때는 말 그대로 하나로 보면 된다.
- AWS S3는 사진/동영상 업로드 용으로 사용
큰 틀 ▷ IDE ↔ Gitlab CI/CD ↔ Gradle(build) ↔ Docker(deploy) ↔ Nginx(Web Server) ↔ SpringBoot(WAS) ↔ JPA ↔ MySQL(DB, AWS RDS)
DB ▷ RDS를 사용한다면 EC2 밖, 사용하지 않고 EC2 내부에 설치할 경우 똑같이 배경색을 칠하는 것으로 생각한다.
알림, 사진/동영상 업로드 ▷ AWS S3 ↔ Front(React, ...) + Nginx(웹 서버 기능) ↔ Nginx(reverse proxy, port forwarding 기능)
▷ SpringBoot ↔ Redis(session, cache) ↔ DB
▶ Client ↔ Nginx ↔ firebase ↔ SpringBoot
▶ AWS S3 ↔ Client ↔ Nginx ↔ SpringBoot ↔ AWS S3
? Nginx의 load balancing 기능을 이용한다면 S3와 Front 사이가 아닐까?
? redis는 ec2 내부인지 외부인지 잘 모르겠다. 찾은 정보마다 다 다르다.
Reverse Proxy & Port Forwarding with Nginx
· Reverse Proxy
Request : Client → Nginx → Server
Response : Server → Nginx -- IP ? → Client
· Port Forwarding
Request : Client [port 22] → Nginx [port 22 : IP xxx.xxx.xxx.xxx] → Server 1 [IP xxx.xxx.xxx.xxx]
'개발 지식' 카테고리의 다른 글
[TIL / Design Pattern] 템플릿 메서드 패턴, 전략 패턴(템플릿 콜백 패턴) (0) | 2023.03.24 |
---|---|
[TIL] 클라이언트 검증, 서버 검증 (0) | 2023.03.09 |
[OS] 동기와 비동기, 블로킹과 논블로킹 (0) | 2023.01.18 |
[SDM] 마이크로서비스 아키텍처(MSA)란? (0) | 2022.02.12 |
[Network] 간단히 정리한 RESTful API 설계와 URI (0) | 2022.01.21 |