사람들은 안전한 파일 교환 메커니즘을 요청했습니다. 오늘 우리는 새로운 오픈 소스 파일 서버 모듈을 발표하게 되어 기쁩니다. Psono 생태계에서 가장 최신 구성요소로서 여러 문제를 해결합니다.
여기서 Psono가 등장합니다. Psono는 이러한 문제를 염두에 두고 설계되어 매우 유연합니다.
사용자 입장에서 어떻게 보이는지 궁금하시죠? 간단합니다.
충분히 간단하죠?
내부적으로 클라이언트는 몇 가지 더 복잡한 단계를 수행하지만 모든 과정이 사용자에게는 숨겨져 있습니다.
이 메커니즘을 통해 파일이 청크로 분할되므로 파일 크기 문제를 해결할 수 있습니다. 단일 파일에 대해서도 업로드를 여러 대의 서버에 분산할 수 있습니다. 모든 파일은 클라이언트에서 서버로 전송되기 전에 암호화됩니다.
위의 그림은 전형적인 설정을 보여줍니다. 릴레이 서버(단순한 리버스 프록시)는 일부 정적 파일(웹 클라이언트)을 제공합니다. 웹 클라이언트는 브라우저로 제공되며, 브라우저는 서버의 REST API 엔드포인트를 호출합니다. 서버는 모든 영구 데이터를 저장하기 위해 Postgres 데이터베이스를 사용합니다. Psono 웹 클라이언트와 Psono 서버는 상태가 없으며, 모든 데이터는 Postgres 데이터베이스에 저장됩니다.
이제 파일 서버를 첨부하려면 먼저 서버에서 샤드와 클러스터 구성을 생성한 다음 실제 파일 서버를 구성해야 합니다. 파일 서버가 부팅되면 자동으로 등록되고 10초 간격으로 가용성을 계속 알립니다. 파일 서버가 죽으면 서버는 이를 인식하고 죽은 서버로 클라이언트를 보내지 않습니다. 파일 서버가 다시 돌아오면 자동으로 다시 등록되고 클라이언트의 요청을 받기 시작합니다. 위의 그림에서는 모든 청크를 로컬 저장소에 저장하고 SSL 오프로드를 위한 릴레이 서버(작은 환경에서는 일반 서버와 동일할 수 있음)를 가지고 있습니다.
로컬 저장소 외에도 다양한 스토리지 백엔드를 사용할 수 있으며 이를 혼합하여 사용할 수 있습니다.
현재 지원되는 스토리지 백엔드는 로컬 저장소 외에도 Amazon S3, GCP 클라우드 스토리지 및 Azure Blob 스토리지가 있습니다.
여러 파일 서버를 사용하여 예를 들어 대역폭 제한으로 인한 성능 문제를 해결할 수 있습니다. 리모트에서 작업하는 경우 사무실의 인터넷 연결이 매우 얇은 경우가 있을 수 있습니다. 또 다른 사용 사례는 내부 파일을 더 잘 보호하려는 경우입니다.
성능 문제를 해결하고 더 나은 격리를 제공하는 설정은 다음과 같습니다.
이 설정은 "외부" 샤드의 모든 트래픽을 양방향으로 사이트 간에 공유하여, 외부인이 파일을 업로드한 후 직원들이 다운로드할 수 있고 그 반대도 가능합니다.
반면에 온프레미스 샤드는 원격 위치와 동기화되지 않아 더 잘 보호됩니다. "외부" 샤드의 파일은 변경될 때마다 한 번 동기화되므로, 100명의 직원이 이 샤드에서 파일을 접근할 때 원격 위치에서 100번 다운로드할 필요가 없습니다. 또는 파일을 업로드하면 100명에게 파일을 공유할 수 있으며, 100번 업로드할 필요가 없습니다.
대역폭 이점은 다음과 유사한 설정으로 원격 위치를 연결하는 데도 사용할 수 있습니다.
이 설정에서는 각 사이트에 파일 서버가 있으며 모든 파일이 사이트 간에 공유됩니다. 쓰기는 특정 샤드에만 이루어지며, 각 샤드의 단방향 동기화를 허용합니다. 이 설정은 뉴욕의 사람들이 지연 없이 파일에 접근할 수 있도록 합니다.
다음 큰 포인트는 로드 밸런싱입니다. 몇 명의 직원만 있는 경우 대역폭이 포화되지 않습니다. 그러나 1000명의 모든 직원이 파일 서버에 정기적으로 접근하면 단일 서버에 대역폭 제한이 발생할 수 있습니다. 운 좋게도 Psono는 이를 처리할 수 있습니다. 로드 밸런싱을 위해 Psono 파일 서버에서 제공하는 두 가지 옵션입니다.
이미 사용하고 싶은 로드 밸런서가 있다면 설정은 다음과 같을 수 있습니다.
이 설정에서는 로드밸런서가 SSL 오프로드를 수행합니다. 뒤에는 실제 요청을 처리하기 위해 두 개의 파일 서버가 있습니다. 두 서버 모두 동일한 샤드를 알리므로, 샤드를 동기화하거나 공유 스토리지가 필요합니다. GlusterFS나 간단한 rsync를 사용할 수 있습니다.
대안은 클라이언트가 모든 것을 로드밸런싱하도록 하여 일부 설정 및 비용을 절약하는 것입니다. 추가 로드밸런서 없이 설정은 다음과 같습니다.
이러한 설정은 쌓을 수 있으며, 각각의 클러스터가 동일한 샤드를 제공하고 아래 공유 저장소에 동기화됩니다. (또는 공유 저장소)
Psono의 새롭고 강력한 파일 서버 모듈의 기능에 대해 좋은 인상을 받으셨길 바랍니다.