|
1 | 1 | ## Pic-up
|
2 | 2 | 누구나 사용할 수 있는, 가장 쉬운 사진/동영상 앨범 스토리지를 만들고 있습니다.
|
3 | 3 |
|
4 |
| -### 애플리케이션 구조 |
| 4 | +### Application |
5 | 5 |
|
6 |
| -<img width="600" alt="image" src="https://github.com/ecsimsw/pic-up/assets/46060746/c210c0bc-2bb8-4264-9984-281ace5fefbe"> |
| 6 | +<img width="550" alt="image" src="https://github.com/ecsimsw/pic-up/assets/46060746/c210c0bc-2bb8-4264-9984-281ace5fefbe"> |
7 | 7 |
|
8 |
| -### 기록 |
9 |
| - |
10 |
| -#### BE |
11 | 8 | - 서버 간 비동기 통신, 이벤트 발행 보장 : [#45](https://github.com/ecsimsw/pic-up/issues/45)
|
12 | 9 | - 비관적 락의 DB 커넥션 점유 문제 개선, 레디스 분산락 적용 : [#42](https://github.com/ecsimsw/pic-up/issues/42)
|
13 | 10 | - 파일 삭제 이벤트 원자성 보장, 더미 파일 제거 Cron job : [#31](https://github.com/ecsimsw/pic-up/issues/31)
|
14 | 11 | - 통합테스트 외부 환경 의존 제거, 테스트 멱등성과 @Transactional : [#30](https://github.com/ecsimsw/pic-up/issues/30)
|
15 | 12 | - CDN 개인 파일 URL 암호화, 허용 IP, 유효 기간 지정과 URL 캐싱 : [#40](https://github.com/ecsimsw/pic-up/issues/40)
|
| 13 | +- Dropzone, Raw binary data 전송 : [#29](https://github.com/ecsimsw/pic-up/issues/29) |
16 | 14 | - 파일 업로드 속도 개선, 클라이언트 S3 직접 업로드와 썸네일 생성 Lambda 제작 : [#24](https://github.com/ecsimsw/pic-up/issues/24)
|
17 |
| -#### Infra |
| 15 | + |
| 16 | +### Infrastructure |
| 17 | + |
| 18 | +<img width="550" alt="image" src="https://github.com/ecsimsw/pic-up/assets/46060746/cc14bf44-50fe-49da-830a-74c534a9020b"> |
| 19 | + |
18 | 20 | - 배포 시점에 Vault secret key 주입, Vault kubernetes injector : [#38](https://github.com/ecsimsw/pic-up/issues/38)
|
19 | 21 | - k8s Rolling update 무중단 배포, 내장 톰캣 Graceful shutdown 동작 원리 : [#37](https://github.com/ecsimsw/pic-up/issues/37)
|
20 | 22 | - 부하 테스트로 배포 리소스 크기 결정 : [#36](https://github.com/ecsimsw/pic-up/issues/36)
|
21 | 23 | - DB 쿼리 성능 개선, 인덱스 튜닝과 커서 기반 페이지네이션 전환 : [#35](https://github.com/ecsimsw/pic-up/issues/35)
|
22 | 24 | - 이미지 파일 업로드 부하테스트, 응답 시간과 메모리 변화 확인 : [#19](https://github.com/ecsimsw/pic-up/issues/19)
|
23 |
| -#### FE |
24 |
| -- Dropzone, Raw binary data 전송 : [#29](https://github.com/ecsimsw/pic-up/issues/29) |
25 |
| - |
26 |
| -### 미리보기 |
27 |
| - |
28 |
| - |
29 | 25 |
|
30 | 26 | ### Stacks
|
31 | 27 | - Framework : Java 17, Spring boot 2.7, Hibernate, JUnit5, Mokito
|
|
36 | 32 | - Cloud : S3, Cloudfront, Route53, Lambda, Terraform
|
37 | 33 | - Monitoring : Grafana, Prometheus, Loki, Promtail
|
38 | 34 |
|
39 |
| -### 인프라 구조 |
40 |
| - |
41 |
| -<img width="600" alt="image" src="https://github.com/ecsimsw/pic-up/assets/46060746/cc14bf44-50fe-49da-830a-74c534a9020b"> |
42 |
| - |
43 | 35 | ### 비용
|
44 | 36 | 1. Route53
|
45 | 37 | - Hosted zone : 1개 -> 0.5USD (개당 0.5USD)
|
|
53 | 45 | - CloudFront 로 데이터 전송 : 0USD (비용 청구 x)
|
54 | 46 | - S3에서 데이터 송신 : 0GB -> 0USD (GB 당 0.126USD)
|
55 | 47 | 4. 달 예상 비용 : 3.3USD
|
| 48 | + |
| 49 | +### 미리보기 |
| 50 | + |
| 51 | + |
0 commit comments