aws-solutions / media-services-application-mapper

Media Services Application Mapper is a browser-based tool that allows operators to visualize the structure and logical connections among AWS Media Services and supporting services in the cloud. The tool can be used as a top-down resource monitoring tool when integrated with CloudWatch.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🚀 Solution Landing Page | 🚧 Feature request | 🐛 Bug Report

Note: If you want to use the solution without building from source, navigate to Solution Landing Page

Table of contents

Solution Overview

  • AWS Media Services Application Mapper (MSAM) is a browser-based tool that allows operators to visualize the structure and logical connections among AWS Media Services and supporting services in the cloud.
  • MSAM can be used as a top-down resource monitoring tool when integrated with CloudWatch.
  • MSAM offers two different visualization options: Diagrams and Tiles.
  • MSAM can be configured to automatically display AWS Media Services alerts from AWS Elemental MediaLive channels and multiplex and AWS Elemental MediaConnect.

Go here for more information on MSAM's capabilities and features.

Installation Guide

Go here for more information on installing MSAM into your AWS account.

Architecture Diagram

You'll find the various architectural views for MSAM here.

Customizing the Solution

Prerequisites for Customization

  • Install/update to Python 3.x
  • Install the AWS Command Line Interface (CLI)
  • Create a Python virtual environment using requirements.txt and activate it
  • Configure the bucket name of your target Amazon S3 distribution bucket
export DIST_OUTPUT_BUCKET=my-bucket-name # bucket where customized code will reside
export SOLUTION_NAME=my-solution-name
export VERSION=my-version # version number for the customized code

Note: You would have to create an S3 bucket with the prefix 'my-bucket-name-<aws_region>'. aws_region is where you are testing the customized solution. Also, the assets in bucket should be publicly accessible.

Build

To build the distributable and prepare the CloudFormation templates:

cd deployment
chmod +x ./build-s3-dist.sh
./build-s3-dist.sh $DIST_OUTPUT_BUCKET $SOLUTION_NAME $VERSION

CloudFormation templates will be written to deployment/global-s3-assets.

Lambda binaries will be written to deployment/regional-s3-assets.

Unit Test

Execute this solution's unit tests manually with the following commands:

cd deployment
chmod +x run-unit-tests.sh
./run-unit-tests.sh

If no virtual environment is currently activate, this script will create and activate a temporary Python virtual environment capable of running the unit tests.

Deploy

Deploy the distributable to an Amazon S3 bucket in your account.

  1. From the deployment directory run the deploy.sh script.

Script usage:

./deploy.sh [-b BucketBasename] [-s SolutionName] [-v VersionString] [-r RegionsForDeploy] [-p AWSProfile] [-a ACLSettings(public-read|none)] [-t DeployType(dev|release)] 

Example usage:

 ./deploy.sh -b mybucket -s aws-media-services-application-mapper -v v1.8.0 -r "us-west-2 us-east-1 us-east-2" -p default -a public-read -t dev


All CloudFormation templates and lambda binaries will end up in:

s3://my-bucket-aws-region/solution-name/version/

If deploying with type release, CloudFormation templates will also be written to:

s3://my-bucket-aws-region/solution-name/latest/
  1. Get the link of the solution template uploaded to your Amazon S3 bucket.
s3://my-bucket-aws-region/solution-name/latest/aws-media-services-application-mapper-release.template

OR

s3://my-bucket-aws-region/solution-name/version/aws-media-services-application-mapper-timestamp.template
  1. Deploy the solution to your account by launching a new AWS CloudFormation stack using the link of the solution template in Amazon S3.

File structure

AWS Media Services Application Mapper consists of:

|- deployment
|   |- build-s3-dist.sh             [ Script for building distributables and preparing the CloudFormation templates ]
|   |- deploy.sh                    [ Script for deploying distributables and CloudFormation templates to user's S3 bucket ]
|   |- global-s3-assets             [ CloudFormation templates get written here during custom build ]
|   |- regional-s3-assets           [ Packaged code for Lambda get written here during custom build ]
|   |- run-unit-test.sh             [ Script for running unit tests ]
|- docs
|   |- ARCHITECTURE.md              [ 4+1 architectural views of MSAM ]
|   |- DEV_PROCESS.md               [ Describes the MSAM team's development process and environment ]
|   |- EXTENDING_MSAM.md            [ Instructions to extend MSAM with your own types ]
|   |- FEATURES.md                  [ Overview of solution features ]
|   |- INSTALL.md                   [ Installation guide for MSAM ]
|   |- MANAGED_INSTANCES.md         [ Using AWS Systems Manager and on-premise hardware ]
|   |- MEDIALIVE_WORKFLOW_WIZARD.md [ Monitoring worfklow created by MediaLive workflow wizard ]
|   |- RESOURCE_TAGS.md             [ Tagging resources for tile and diagram creation ]
|   |- REST_API.md                  [ Overview of the MSAM REST API and use ]
|   |- UNINSTALL.md                 [ Steps to remove MSAM from your AWS account ]
|   |- USAGE.md                     [ Getting started and usage tips for the browser tool ]
|   |- WORKSHOP.md                  [ Steps for a workshop presented at re:Invent 2019 ]
|   |- behavioral-views.drawio      [ diagrams.net source for behavioral view ]
|   |- deployment-view.drawio       [ diagrams.net source for deployment view ]
|   |- images                       [ Images used in documentation ]
|   |- logical-view.drawio          [ diagrams.net source for logical view ]
|   |- physical-view.drawio         [ diagrams.net source for physical view ]
|   |- use-cases.drawio             [ diagrams.net source for use case view ]
|- source
    |- events                       [ Source files for CloudWatch Event and Alarm handling ]
    |- html                         [ Source files for browser application ]
    |- msam                         [ Source files for the MSAM REST API and scheduled tasks ]
    |- tools                        [ Scripts used in the development of MSAM ]
    |- web-cloudformation           [ Source files for the web template and custom resources ]

License

See license here.

Collection of operational metrics

This solution collects anonymized operational metrics to help AWS improve the quality of features of the solution. For more information about this capability, please see the implementation guide.

Navigate

Navigate to Architecture | Workshop | Install | Usage | Uninstall | Rest API | Contributing

About

Media Services Application Mapper is a browser-based tool that allows operators to visualize the structure and logical connections among AWS Media Services and supporting services in the cloud. The tool can be used as a top-down resource monitoring tool when integrated with CloudWatch.

License:Apache License 2.0


Languages

Language:JavaScript 44.4%Language:Python 37.3%Language:TypeScript 8.9%Language:HTML 6.8%Language:Shell 2.6%