This guide covers deploying Accurate.Video using Amazon Elastic Container Service (Amazon ECS) and AWS Fargate. Pre-created AWS CloudFormation templates are provided with sensible default values to quickly get you started using Accurate.Video by simply following the steps below in order.
Note: This guide is not intended for deploying Accurate.Video through the Amazon Marketplace. Please refer to the guide below for Marketplace deployments.
The diagram below shows how the Accurate.Video system looks like after deployment.
Note that this shows an example integration setup with AWS Elemental MediaConvert and Amazon Rekognition. These services are optional and other services can be integrated as well.
Before you get started with this guide, there are a couple of prerequisites that must be met.
There is one manual step that needs to be performed before you can get started with this guide. Amazon Elastic Container Registry (ECR) is used to host the required product containers, and your AWS Account Id needs to be whitelisted to be able to download containers.
Refer to the link below on how to find your AWS Account ID.
Make sure you have access to an account on Amazon Web Sevices which has sufficient access to create all of the required resources, this usually means administrator access.
You'll need a license key of Accurate.Video to get started. Please reach out to us at firstname.lastname@example.org if you don't.
If you already have a VPC with Public and Private subnets in multiple availability zones, you can skip this step.
It's required to have at least two public and private subnets in different availability zones, for high availability. Please note that the default VPC does not support this scenario.
The diagram below shows an overview of the VPC created through our template with 2 AZs (ignore the values of the private IP subnets shown here).
Create a new VPC with our template by clicking on the link below.
You'll see the quick create stack screen below, where you only need to enter a name for the stack, the rest of the fields can be left in their default state unless you know the implications of changing them.
Once you have a VPC that fulfills the minimum requirements you can go ahead and launch a new application stack by using the quick-create stack in AWS CloudFormation from our template.
Launch the application stack by clicking on the link below.
You'll see the quick create stack screen again, where at least two private and two public subnets, the hosted zone id, and a domain name needs to be entered. The other fields you can keep at their default values unless you know the implications of changing them.
Once the application stack has completed, you can find the relevant links to the application itself in the outputs tab of the stack in the AWS CloudFormation console.
Note the values of the secrets here, you'll need them when logging in to the application and accessing the admin UI. Note down the following two:
Click on the secret and then click Retrieve secret value to get the user and password.
In Amazon Simple Storage Service (S3), a bucket is created during deployment of the stack, to store and make it possible to upload application settings.
The S3 bucket name can be found in the output tab of the AWS CloudFormation stack. Navigate to the S3 console, and find the bucket.
You'll find that the bucket is empty, settings need to be uploaded.
Download the zip-file below, which contains a starting template for settings.
Unzip this zip-file somewhere, and edit the adapter/settings.js file. Find the section for the license key, and enter yours, then save the file again.
The license key is the only required setting, but there are many application settings available. Refer to the guide below for more details.
Upload the entire adapter folder by clicking Add folder in the S3 UI.
Make sure both files in the folder are uploaded. The settings will now be automatically deployed as described below. You'll need to wait a couple of minutes for this to take effect.
Once a file is uploaded to this S3 bucket, a notification event is sent to an Amazon Simple Notification Service (SNS) topic, which will trigger an AWS Lambda function that initiates a new deployment with the latest settings. The deployment will launch new tasks in AWS Fargate, wait for them to be healthy, and then terminate the old tasks.
While waiting, you can move on to configuring users and roles.
A pre-configured Keycloak instance is deployed together with the application stack. It's part of the system and is responsible for managing users and roles.
Keycloak supports standard protocols such as OpenID Connect, OAuth 2.0, and SAML 2.0. You can easily connect a third-party federated login service, such as Okta, Active Directory, Amazon Cognito, Google, and many more. Refer to the Keycloak documentation below for more details.
To access the Keycloak admin UI, open the UserAdminURL from the stack outputs tab.
Click on the administration console, and log in using the credentials from KeycloakSecret* in the secrets manager.
Note: If you get the error below, just click on Go to the homepage.
In the Keycloak admin console, you can manage users, roles, and groups. You can either give users roles directly or assign them to groups to inherit roles.
Refer to the guide on roles and permissions below for more details.
You can now log in to Accurate.Video by opening the ApplicationURL in a new tab. Log in either with a user you create in Keycloak, or using the admin user defined in the secrets manager as AdminSecret. You should see an empty asset view as below since there are no assets or storage configured yet.
The next step is to connect some storages, refer to the guide below for detailed info on how to connect S3 buckets.
Content needs to be ingested before it can be manipulated. Refer to the guides below for more details.
Congratulations on deploying Accurate.Video using ECS successfully!
If you want to learn more about Accurate.Video and its functions refer to the detailed user guides below.
To learn how to upgrade Accurate.Video to a new version, refer to the guide below.