- spring
- Django
- join
- 문자열
- AWS
- mysql
- 스프링
- Docker
- java
- ORM
- select
- 데이터베이스
- hibernate
- springboot
- string
- DI
- @transactional
- 프로그래머스
- jpa
- spring mvc
- 스프링부트
- 자바
- nginx
- spring security 6
- static
- sql
- spring boot
- 1차원 배열
- PYTHON
- SSL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |