티스토리 뷰
파일 저장소 마이그레이션 후기
사연
사실 이 이야기는 내가 입사하기전 22년 초부터 나온 이야기 일듯하다.
본래 우리 회사의 CDN관리를 한 기업에서 전담하여 관리해 왔고 해당 기업은 주로 FTP 방식
으로 관리해온듯 하다.
그러나 뉴스회사가 그렇듯 방대한 이미지 데이터와 영상관리에 우리가 가용할 수 있는용량이 부족해지자 해당 기업은 2가지 선택지는 주었는데
하나는 비용 업그레이드이며 다른 하나는 Object Storage S3
로 변경하여 관리하는 것이였다.
사실 이 두가지는 모두 사용해본 경험으로서는 S3가 다양한 이점을 가져다 주고
이러한 이점 때문인지 회사 또한 선택지에 대한 고민은 없었다고 했다.
변경 목적
첫 번째
가장 우선 순위는 Object storage가 가진 저장소의 특성일 것이다.
데이터를 객체 단위
로 저장하기 때문에 기존 블록 단위 저장방식과 달리
데이터 자체를 포함한다는 점은 검색 및 관리 측면에서 큰 이점을 가져온다.
두 번째
개발 과정에서 느낀 이 둘의 차이점은 단순함 일듯 하다.
FTP는 TCP/IP 프로토콜을 바탕으로 세션을 다루어 데이터를 옯기는데
** 세션연결 -> 요청 및 결과 반환 -> 세션 해제** 의 과정으로 데이터가 저장되며
매 요청마다 연결과 해제를 반복해 주어야한다는 것이 단점이였다.
또한 ASCII 파일과 Binary 파일을 구분하기 때문에 저장 방식이 달라진다.
반대로 Object Storage는 API 방식을 사용하여
계정정보과 요청 사항을 함수로 전달하면 되기 때문에 전 과정보다 훨씬 단순해 진다.
또한 저장 방식에도 구분이 없어 더욱 편리해 졌다.
세 번째
FTP 보안에 대해 많은 것을 신경써야 했다.
FTP로 전송되는 데이터는 암호화가 되지 않아 MITM 공격에 당할 경우 그래도 노출될 수 있으며 계정정보에 사용될 패스워드의 경우 평문 암호화를 사용하기 때문에 쉽게 노출될 가능성이 있다.
이러한 보안이슈로 FTP에 SSL 혹은 SSH를 합하여 사용하는 암호화 프로토콜 방식
을 사용하거나 VPN을 사용하는 등 많은 것을 고려해야하는 번거로움이 따른다.
Object Storage
Object Storage는 대용량의 비정형 데이터를 저장하는 데 사용되는 데이터 스토리지 방식 중 하나입니다. 객체는 고유한 식별자와 데이터로 구성되며, 전체 객체 단위로 저장됩니다. 객체는 파일이나 블록 형식이 아니라 데이터 자체를 포함하고 있기 때문에 검색 및 관리가 용이하며, 대규모 데이터를 더 효율적으로 관리할 수 있습니다.
FTP(File Transfer Protocol)
TCP/IP 프로토콜을 기반으로 하는 파일 전송 프로토콜이며 응용계층에서 동작한다.
FTP는 클라이언트-서버 모델을 기반으로 동작하며, 클라이언트와 서버 간에 제어 및 데이터 연결을 설정후 파일 전송을 수행한다.
후기
회사 내부의 모서비스를 Object Storage
방식으로 변경하는데에는 2달 정도 소요된듯 하다.
코드 변경 및 테스트 -> CND 데이터 이전 -> 최종 적으로 서비스 적용
3단계에 이르는 과정이지만 CDN기업과 협업으로 작업이 이루어지기 때문에 일처리가 쉽지많은 않았다.
또한 메인 서비스와 계열사 까지 총 6가지 정도의 서버를 변경하고 서비스 도메인의 코드 수정까지 많은 번거로움까지 뒤따랐다.
덕분에 작업을 거치며 우리 회사의 서비스 과정과 CDN 처리 방식 그리고 서비스와 서버 연결 상태 등 전체적인 관계를 이해할 수 있었던 좋은 기회이며 PHP로 S3 API
를 구현하는 작업이 있어 실력 향상에 도움이 되었다.
- Total
- Today
- Yesterday
- CS
- spring-cloud
- 면접
- 디자인패턴
- JPA
- 매트랩
- Matlab
- springboot
- 자격증
- OOP
- 백준
- docker
- kakao
- java
- Solid
- nginx
- 스프링
- interview
- security
- Algorithm
- Spring
- 스프링부트
- 알고리즘
- 수학
- 릿코드
- 프로그래머스
- 자바
- C언어
- 그래프
- ajax
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |