AWS solution for big CCTV System - amazon-web-services

I´m researching AWS for a specific situation I need to solve. I have a customer that we provide a big CCTV solution. About 800 cameras. We are now trying to migrate part of this infraestructure to a cloud solution in AWS.
It is a big step replacing all in site storage they have to a cloud based solution.
I´ve been researching on the best solutions to take care of this and found that probably the best is to develop a solution that works with Amazon Storage Gateway.
The question is: does anyone know which is the most efficient way to deal with heavy video storage on AWS?. What is the recommended way to go?.
NOTE: Hope this question is not going to closed as too broad or opinion based. I know it is in the cutting edge of it.

IF you're looking for a very durable storage, the S3 is a very very good good option. It has 11 9's durability and then you can setup life cycle rules on it too.
Many companies including acloud guru host all their videos on S3. It has the ability to even be connected to 3rd party apps both inside AWS and outside.
Not to forget S3 has read after write consistency too. Also not only is it good for just storing but you can setup S3 efficiently for streaming videos too.

Related

DynamoDB has very little support docs on the web

I am trying to use DynamoDB for the backend DB of my application, but am having a hard time finding useful information associated to it.
What is the best source of examples and tutorial information for syntax structures etc?
AWS docs are really confusing. Or am I the only person sitting with these problems?
Oh and is the newly launched AWS DocumentDB (Basically MongaDB) going to make DynamoDB pointless to learn, or is there still merit in learning DynamoDB?
The pricing model between DocumentDB and DynamoDB are completely different - there is definitely a place for both - imo, dynamodb is not going away any time soon.
As far as tutorials - there are tons of AWS reinvent videos on youtube, and this site allows you to search/find them easily: https://reinventvideos.com/. Good place to start.

Which is easier to learn - Google Cloud or AWS, with the main use case being Redshif/BigQuery + small data pipelines.

Looking at building a small-data warehouse, so don't need much scaling - just flexibility & ease of building ETL pipelines and minimal maintenance.
Currently we are looking at a relatively simple architecture with Google App Engine handling the ETL into BigQuery, but I'm wondering if RedShift + EC2 would be easier to learn? We haven't worked with either cloud as a team.
This is not a good question for StackOverflow as it can only be answered with opinions.
However, I will try to help as I know the four major clouds very well (AWS, Alibaba, Azure, Google) with 12 years experience with AWS, 10 with Azure, 8 with Google (off/on again), 1 year Alibaba.
Which cloud is earier to learn?
How much experience in IT do you have? If you have a lot, which technologies (Linux / Open Source or Microsoft enterprise)?
Each of the clouds are excellent. Each one has very good services. Nobody is so far ahead of anyone else to really make a difference in respect to technology.
AWS is considered the market leader and tends to move faster at this time than everyone else. This also means that you will spend time every single day reading AWS blogs, product announcements, feature updates, etc. to stay current.
For your use case, any of the cloud vendors will serve you well. It is only when you have large infrastructures or very specific technical needs, that maybe one cloud is better. It really comes down to which one you prefer (or like), which one has services that you are more familiar with, which one has the support policies that you need, etc.
Another item. There is a huge race between these vendors to be the best. For any given service - A might be better today (or easier to use or have better tools) but tomorrow B is now ahead. Wait two quarters and C is now ahead. I expect that this will continue for another two years or so until everyone matures with their technology, services and support.
The days of only chosing one cloud vendor for everything is over. Today, I typically design three way hybrid environments (two cloud vendors and on-site data centers).

Group Chat Solutions With AWS

EDIT: The original question asked for a real-time solution. I am not sure this is necessary. It should be about as fast as sending a standard SMS text message.
I want to integrate group chat in my android / ios app. There is a similar question found here, but the answers are old and I would like to see if there are any new / better solutions.
I am currently using multiple AWS services in my app, and would like to keep my chat solution in the same ecosystem. However, if there is a solution outside of AWS that is much easier to implement with good results, I am open to the suggestion.
Based on my research I have come across a couple of possibilties:
This AWS blog lightly covers using ElastiCache for this purpose
This LinkedIn slideshow demonstrates the possibility of using AWS IoT
Requirements for my chat:
Would like to be able to support up to 500 people per chat group
Usable from the web via online portal that has the same general functionality as the mobile app
Needs to be scalable to handle thousands of groups
Needs to handle emojies (cross platform)
Needs to allow for file transfers. Images and GIFs at the very least.
Send push notifications to users who have elected to recieve them when they are not currently active in the group
Are either of my possiblities a good fit for my requirements? Which would be the easiest to implement? Are there other, easier solutions inside of AWS? Outside of AWS?
Take a look at https://github.com/tinode/chat
It's not a 100% what you want but close. There is a third-party DynamoDB adapter for it: https://github.com/riandyrn/chat
I am posting this answer to close the question. I ended up switching from AWS to Google Firebase in order to use the Real Time Database.
There is a chat example here that might help anyone that stumbles onto this question.

Picture Manipulation with AWS

I've been a mobile developer for a few years, and Im looking to expand to cloud integration with my apps. Im looking into AWS solutions to fill this need. I don't know a ton about servers or cloud capabilities, so I'm trying to get pointed in the right direction, and maybe be introduced to some good resources.
My goal is to be able to upload some images to AWS and manipulate these images in the cloud. I'm sure that I'll need S3 to store my images, but is an EC2 instance the correct thing to use to perform the manipulation? This is where my lack of knowledge of servers is holding me back.
I think that the best answer I could get would be a comment on whether my needs from AWS are what I listed above, and a point in the right direction towards articles to tutorials of how to get things up and running.
Thanks much for the help!
What I ended up doing was using AWS Lambda to accomplish what I needed. Running a node.js based lambda function with ffmpeg-like manipulation on the images/media that I was uploading worked out quite well.
Side note :: The processing that I was doing was fairly lightweight, so it worked well with lambda. If things scale up any further I might consider switching the processing to an EC2 instance.

Should I use CouchDB or SimpleDB?

I'm creating an application that will be hosted on amazon EC2 and a lot of the data that'll be saved is more document oriented (as well as saving tweets and such related to those documents).
Right now I'm at a crossroads... should I use simpleDB or couchDB? Whats the pros/cons of using either? Should I just try both for a month and decide then?
You may find the the article Amazon SimpleDB and CouchDB Compared to be useful.
I've also found that MongoDB gives excellent performance.
Keep in mind that if your code lives in EC2, SimpleDB will be presumably hosted in the same data center that your code is, which would give SimpleDB a lower latency than CouchDB for requests from an EC2 server. Also, Amazon doesn't charge you bandwidth costs between EC2 and SimpleDB.
I would expect SimpleDB to be both faster and cheaper for code running in EC2, for those reasons.
SimpleDB is hosted and maintained by Amazon for you, CouchDB is all up to you. That's the big difference.
I would absolutely do some benchmark of the two solutions with your own use-case, if that's possible, i.e. if you can build a reasonable subset of your application to run on either databases (they have quite different APIs so this might not be easy).
If you develop in .Net environment there's an excellent lib for SimpleDB called Simple Savant which really eases the integration..
I've built some live solutions using SimpleDB and it works very well, especially with a caching layer in front of it (cf memcached et al). However I've recently started scoping out a new project and have decided to move to CouchDB for the primary reason of having control over the data.
As your commitment to SimpleDB grows, it gets harder and harder to migrate away to anything else (ah the joys of vendor lock in) and, frankly, that just isn't great for our business.
I remain a strong evangelist of cloud tech, and Amazon in particular, but I feel a lot better running couchdb on EC2 than I do with SimpleDB.
Roger