Highly Available FTP Solution on Oracle Cloud Infrastructure (OCI)

Secure, scalable FTP solution with auto-scaling, load balancing, and comprehensive monitoring

Project Goal

The goal of this project was to design and implement a highly available, scalable FTP solution in Oracle Cloud Infrastructure (OCI). The solution aims to provide secure, isolated file storage using ProFTPD for FTP access, with file data stored on a shared NFS server. The setup includes automatic scaling to handle traffic fluctuations and monitoring of the entire infrastructure using Prometheus and Grafana.

Solution Architecture

The solution involves the following key components:

Core Components:
  • ProFTPD Setup: Two ProFTPD servers deployed on OCI instances providing FTP access to clients, allowing them to upload and download files. Each ProFTPD server is configured to authenticate users via virtual users, with directory-level permissions to restrict access to specific directories.
  • Network Load Balancer: A Network Load Balancer (NLB) distributes FTP traffic across the two ProFTPD servers, ensuring high availability and fault tolerance. Clients connect to the NLB IP, which routes traffic to available ProFTPD servers.
  • NFS Server: An NFS server set up on a separate instance provides shared storage for the FTP servers. Both ProFTPD instances connect to the NFS server, allowing them to read and write to the same directory for data consistency.
  • Auto Scaling: Auto Scaling policies automatically scale the ProFTPD instances based on load, ensuring the system can handle traffic spikes and maintain availability during peak demand.
  • Monitoring: A dedicated instance runs Prometheus for monitoring ProFTPD servers, NFS server, and system performance metrics. Grafana visualizes data collected by Prometheus, providing insights into system health and resource utilization.

Project Impact

Scalability

The auto-scaling policy ensures that the system automatically adjusts the number of ProFTPD instances based on FTP traffic, maintaining performance during periods of high demand.

Security and Isolation

Using virtual users in ProFTPD with directory-level permissions ensures users can only access their assigned directories, preventing unauthorized access to other users' files.

High Availability

The Network Load Balancer distributing traffic across multiple ProFTPD servers ensures the FTP service remains available even if one instance fails, eliminating single points of failure.

Operational Efficiency

With Prometheus and Grafana monitoring, infrastructure health and performance can be monitored in real-time, enabling quick identification of potential issues.

Technical Implementation

This project involved setting up a highly available and scalable FTP solution on OCI using:

  • ProFTPD Configuration: Virtual users with isolated directory access
  • NFS Storage: Centralized, shared file storage for consistency
  • Network Load Balancer: Traffic distribution for high availability
  • Auto-scaling Policies: Dynamic scaling based on load metrics
  • Monitoring Stack: Prometheus and Grafana for comprehensive monitoring
  • Security: Virtual user authentication and directory-level permissions

The system provides a robust, secure, and scalable FTP service with centralized storage, ideal for handling file uploads and downloads at scale while maintaining high availability and security standards.