Written by Leandro Mota, DevOps Engineer at TrackIt

Managing media assets efficiently is a critical challenge for organizations handling large volumes of content. Media Asset Management (MAM) solutions like Phraseanet help streamline storage, retrieval, and organization. While traditional deployments rely on Docker Compose or standalone virtual machines, adopting Kubernetes—specifically Amazon Elastic Kubernetes Service (EKS)—offers greater scalability and flexibility. The case study outlined below explores how Phraseanet was deployed on AWS EKS, the challenges encountered, and the benefits gained from this approach.

Why Deploy a MAM on Kubernetes?

A typical use case for deploying a MAM on Kubernetes involves organizations managing large and growing media libraries with unpredictable traffic patterns. For instance, a global media organization may need to store and process high-resolution images and videos while ensuring quick retrieval during peak usage. 

By leveraging Kubernetes, they can dynamically scale infrastructure resources based on demand, optimizing long-term costs by only using what is necessary. Additionally, Kubernetes allows for seamless workload mobility across cloud environments, reducing vendor lock-in and enabling a hybrid or multi-cloud strategy. This approach ensures high availability and resilience, critical for organizations that rely on uninterrupted media access and distribution.

What is Phraseanet?

Phraseanet is an open-source MAM designed for organizations that need a cost-effective yet powerful solution for managing digital assets. It provides tools for indexing, searching, and distributing media files, making it particularly useful for industries such as publishing, broadcasting, and corporate content management. Unlike proprietary MAM solutions, Phraseanet offers the flexibility to be customized and extended to meet specific business needs.

Understanding Phraseanet’s Infrastructure

Understanding how Phraseanet is deployed on Amazon EKS requires looking at the underlying infrastructure that powers the platform. Phraseanet’s architecture consists of several key services that work together to provide a comprehensive Media Asset Management solution.

At a high level, the infrastructure includes the following components:

  1. Phraseanet Gateway: Serves as the main access point, routing traffic and handling requests from the frontend.
  2. Database (MySQL): Stores metadata and related information for media assets. It supports search, retrieval, and scalability.
  3. Worker Service: Manages background tasks such as media file processing, transcoding, and workflow automation.
  4. Elasticsearch: Indexes and searches large media libraries quickly, improving metadata retrieval and content discovery.
  5. FPM (FastCGI Process Manager): Handles PHP processes for both the frontend and backend, ensuring smooth user interactions.
  6. RabbitMQ: Facilitates messaging between different services, allowing components like the worker service to communicate reliably.
  7. Redis: Provides caching and session management to reduce database load and enhance performance.
  8. Phraseanet Setup: Initializes the environment by configuring databases and essential settings for proper system operation.

These services are containerized and run within a Kubernetes cluster on Amazon EKS.
Kubernetes enables independent scaling and management of each component while ensuring seamless communication through its built-in networking. This architecture enhances flexibility and lays the groundwork for future improvements, such as expanding services or adjusting capacity based on demand.

Phraseanet Architecture Diagram

AD 4nXcubxuKJLTWvKgxglWrNFYQ hRmOyk Cjp IOHgMVEj1gIzAV8lZKsH cXoAI s3RUgDcxMBBkkQHKhJVlmEfyXOFDbV3VrHci V0

Cloud Solution Architecture
AD 4nXe9odWXPJ6zCxcTB33Y5PrhIa p8D97hqIcsqgWi

Why Use Kubernetes or Amazon EKS?

Kubernetes is an open-source container orchestration platform designed to simplify application management in the cloud. It enables automatic scaling, efficient containerized service management, and high availability. Amazon Elastic Kubernetes Service (EKS) was selected for this deployment because it provides a fully managed Kubernetes environment that integrates seamlessly with other AWS services, reducing the operational overhead of infrastructure management.

Deploying Phraseanet

Phraseanet is traditionally deployed with Docker Compose, which manages multi-container applications. For greater flexibility and control, this deployment was shifted to Kubernetes. 

  1. Provisioning AWS Resources: Terraform, an Infrastructure as Code (IaC) tool, was used to set up the cloud environment, including an EKS cluster, networking, and other necessary components.
  2. Setup Job Failure: An issue arose when the setup job attempted to access a non-existent database. The official Phraseanet Docker image does not include a pre-configured database, despite documentation suggesting otherwise.
  3. Using Helm for Deployment: Instead of manually converting Docker Compose files to Kubernetes manifests, Helm was used to streamline deployment and simplify maintenance.
  4. Scaling and Flexibility: Kubernetes enables easy scaling of Phraseanet based on demand, allowing the solution to support both small testing environments and large-scale production workloads.

Next Steps

While the current setup is suitable for development environments, several improvements are planned for production:

Conclusion

Deploying Phraseanet on Amazon EKS enables seamless scalability while showcasing Kubernetes’ capability to manage complex, resource-intensive applications. Tools like Terraform, Helm, and AWS EKS were used to automate much of the deployment and management process, simplifying scaling and maintenance. As the deployment evolves, there will be opportunities to refine performance, enhance reliability, and explore new optimizations tailored to future needs.asized the importance of reviewing Kubernetes patch notes and using AWS Upgrade Insights to identify potential issues before upgrading. Additionally, it provided steps for resolving deprecation-related errors and updating authentication configurations to ensure continued access control.

About TrackIt

TrackIt is an international AWS cloud consulting, systems integration, and software development firm headquartered in Marina del Rey, CA.

We have built our reputation on helping media companies architect and implement cost-effective, reliable, and scalable Media & Entertainment workflows in the cloud. These include streaming and on-demand video solutions, media asset management, and archiving, incorporating the latest AI technology to build bespoke media solutions tailored to customer requirements.

Cloud-native software development is at the foundation of what we do. We specialize in Application Modernization, Containerization, Infrastructure as Code and event-driven serverless architectures by leveraging the latest AWS services. Along with our Managed Services offerings which provide 24/7 cloud infrastructure maintenance and support, we are able to provide complete solutions for the media industry.