Movinary Case Study
About the Movinary and there used Amazon services for the case study

Located in Berlin, Germany, movinary offers a cloud-hosted, online platform that enables customers to create videos from their photos and embellish them with text. Using these videos, customers can tell unique, personal stories about special events like weddings, holidays, and birthdays. Each video can be downloaded immediately, so customers can place orders immediately after the video is created.
Founder and CEO Maximilian Modl says,

“While classical video tools are very complex, movinary is based on state-of-the-art usability guidelines. The creation process is completely intuitive.”
AWS Services Used
- Amazon SQS service
- Amazon ElastiCache
- Amazon EC2
- Amazon Machine Images
𝚠𝚑𝚊𝚝 𝚒𝚜 𝚝𝚑𝚎 𝙰𝚖𝚊𝚣𝚘𝚗 𝚂𝚀𝚂 𝚜𝚎𝚛𝚟𝚒𝚌𝚎?
Amazon Simple Queue Service is a distributed message queuing service introduced by Amazon.com in late 2004. It supports the programmatic sending of messages via web service applications as a way to communicate over the Internet.
Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications. SQS eliminates the complexity and overhead associated with managing and operating message-oriented middleware and empowers developers to focus on differentiating work. Using SQS, you can send, store, and receive messages between software components at any volume, without losing messages or requiring other services to be available. Get started with SQS in minutes using the AWS console, Command Line Interface or SDK of your choice, and three simple commands.
SQS is a queue from which your services pull data, and it only supports exactly-once delivery of messages. If no workers pull jobs from SQS, the messages stay in the queue. SNS is a publisher-subscriber system that pushes messages to subscribers. If there are no subscribers to an SNS topic, a given message is lost
Benefits of SQS Service

- Eliminate administrative overhead :
AWS manages all ongoing operations and underlying infrastructure needed to provide a highly available and scalable message queuing service. With SQS, there is no upfront cost, no need to acquire, install, and configure messaging software, and no time-consuming build-out and maintenance of supporting infrastructure
2. Reliably deliver messages:
Use Amazon SQS to transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be available. SQS lets you decouple application components so that they run and fail independently, increasing the overall fault tolerance of the system
3.Keep sensitive data secure:
You can use Amazon SQS to exchange sensitive data between applications using server-side encryption (SSE) to encrypt each message body. Amazon SQS SSE integration with AWS Key Management Service (KMS) allows you to centrally manage the keys that protect SQS messages along with keys that protect your other AWS resources.
4.Scale elastically and cost-effectively:
Amazon SQS leverages the AWS cloud to dynamically scale based on demand. SQS scales elastically with your application so you don’t have to worry about capacity planning and pre-provisioning
Amazon EC2 services

Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers.
Amazon EC2 offers the broadest and deepest compute platform with choice of processor, storage, networking, operating system, and purchase model. We offer the fastest processors in the cloud and we are the only cloud with 400 Gbps ethernet networking. We have the most powerful GPU instances for machine learning training and graphics workloads, as well as the lowest cost-per-inference instances in the cloud
Amazon ElastiCache

Amazon ElastiCache allows you to seamlessly set up, run, and scale popular open-source compatible in-memory data stores in the cloud. Build data-intensive apps or boost the performance of your existing databases by retrieving data from high throughput and low latency in-memory data stores. Amazon ElastiCache is a popular choice for real-time use cases like Caching, Session Stores, Gaming, Geospatial Services, Real-Time Analytics, and Queuing.
Amazon machine images

An Amazon Machine Image (AMI) provides the information required to launch an instance. You must specify an AMI when you launch an instance. You can launch multiple instances from a single AMI when you need multiple instances with the same configuration. You can use different AMIs to launch instances when you need instances with different configurations.
- One or more Amazon Elastic Block Store (Amazon EBS) snapshots, or, for instance-store-backed AMIs, a template for the root volume of the instance (for example, an operating system, an application server, and applications).
- Launch permissions that control which AWS accounts can use the AMI to launch instances.
- A block device mapping that specifies the volumes to attach to the instance when it’s launched.
Why Amazon Web Services
The movinary team chose to work with Amazon Web Services (AWS) from the outset. They needed:
- Fluency in common web technologies
2. Abundant CPU power
3. High availability
4. The flexibility to expand globally
More information about how the movinary team used the AWS services follows
- Amazon CloudWatch is used for scaling web instances and sending notifications via email if the service is not accessible.
- Amazon RDS is used for online shop information.
- The movinary cloud renderer engine (a service which creates an individual video from photos and templates, rendered in the cloud) runs on Windows machines and the renderer itself is written in Flash.
- Magento is used both for the movinary web site and as the e-commerce system (the shopping application) — which requires PHP and MySQL to run in the company’s infrastructure (Amazon EC2 and Amazon RDS).
- GWT is used to create a seamless experience on the video creation process.
- Varnish Cache is used to cache the site and deliver a responsive web service to customers.
- An Apache Tomcat server is used to accept and monitor requests to our cloud renderer.
- Adobe AIR and Avidemux are used to render customers’ videos on the back end
The Challenge
Initially, movinary faced business challenges similar to those of many online services. They wanted to set up a scalable business model with the potential to serve a worldwide audience. This model required easy server setup for their e-commerce site (a complex scaling Magento system) and high CPU power for the video rendering process.
Before adopting AWS, the movinary team researched comparisons of on-premises options and cloud hosting. “We wanted to make our service as fast and efficient as possible to compete with similar services,” Modl says. “It was clear that we would need the cloud.”
They also looked for a solution that would allow them to use the common web technologies (like JavaScript Ajax and Flash) that movinary is based on.
The Benefits
Using AWS enabled the movinary team to move into production quickly. “We started on local machines and were surprised by how effortlessly we could bring our service to the AWS Cloud technology,” Modl says. “In particular, the predefined Amazon Machine Images (AMIs) and the Elastic Load Balancer helped us to get from local to production within a month.”
The team also improved performance with Amazon EC2. “Our video personalization back end requires a lot of performance,” Modl says, “and we were pleased to find that the m1-medium instances perfectly matched our CPU performance and RAM needs. Being able to increase the amount of disk space for our instance with two clicks saves a lot of time.”
Regarding Amazon RDS, Modl says, “AWS manages backups and updates. It also scales the infrastructure semi-automatically. Our system generates much more read requests than write requests, which is supported by the scaling offered by Amazon RDS.”
Hosting their service on the cloud proved to be more cost-effective because it allowed movinary to dynamically change allocated instances. The structure enables a highly customizable solution on a scalable infrastructure.
The movinary team is currently evaluating Amazon RDS and Amazon ElastiCache, and may use Amazon Simple Queue Service (Amazon SQS) for handling their rendering queue.
For other developers considering using AWS, movinary recommends starting with auto scaling based on CPU usage. “After collecting additional metrics, one can improve the scaling by selecting other measurement and scaling techniques,” says Modl. The team needed a little rework for setting up Amazon EC2 instances. There are many preconfigured images available.
The team also discovered that, for setting up Amazon EC2 instances, there are many preconfigured images available, which, for them, only needed a little rework.
According to Modl, the decision to use AWS was right from the start. “There are no comparisons to what AWS is able to offer.”
Current movinary Web Server Architecture

Planned movinary Web Server Architecture
