Amazon service for internet of things? - amazon-web-services

Does amazon AWS have decent service for internet-of-things type applications (e.g. NEST thermostat, Wifi controlled appliances)? We would like to connect up to 2 million devices through the cloud. I can see how you might be able to do this with Amazon SQS and the Elastic Beanstalk, however I was hoping that there might be a better way that is less custom. For example, is there a good rules engine for SQS messaging?
I know that the NEST thermostat has solved a similar problem.
Thanks,
Mike

Try Temboo. Temboo offers a platform containing methods for 100+ APIs, databases, and code utilities, the Library and the Temboo platform are accessible via the Temboo SDK in seven programming languages, the Temboo REST API, and the Arduino Yún.

Related

Deployment Architecture for cloud & on premise b2b application

I'm working on a SaaS application which at the moment is cloud only. It's a traditional Java web application which we deploy to AWS. We rely on AWS concepts like RDS, S3, ELB, Autoscaling and for infrastructure provisioning AMIs, Cloudformation, Ansible and CodeDeploy.
There is now more and more demand for on-premise deployments by potential clients.
Are there any common approaches to package b2b applications for on-premise deployments?
My first thought would be to containerize the app infrastructure (web server, database, etc) and assume a client would be able run images. What are you guys doing and how do you tackle HA and DR aspects which come with cloud infrastructure like AWS?
I'm tackling a similar problem at the moment and there really is no one-fits all answer. Designing software for cloud-nativity comes with a lot of architectural design decisions to use technologies on offer by the platform (as you have with S3, RDS, etc) which ultimately do not cross-over to majority of on-premise deployments.
Containerising your application estate is great for cross-cloud and some hybrid cloud portability but there is no guarantee that a client is using containerised work-loads on their on-premise data centre which makes the paradigm still a way off the target of supporting both seamlessly.
I find another issue is that the design principles behind cloud-hosted software are vastly different to those on-premise, with static resource requirements, often a lack of ability to scale etcetera (ironically some of the main reasons you would move a software solution to a cloud environment) so trying to design for both is a struggle and I'm guessing we will end up with a sub-optimal solution unless we decide to favour one and treat the other as a secondary concern.
I'm thinking maybe the best cross-breed solution is to concentrate on containerisation for cloud hosts taking into account the products and services on offer (and in the roadmap) - and then for making the same software available to clients who wish to use on-premise datacenters still.... perhaps they could be offered VM Images with the software solution packaged in... then make this available on a client portal for them with instructions on installation/configuration.
... I wish everyone would just use Kubernetes already! :)

How can one seamlessly transfer services hosted on AWS to Google Cloud Platform and vice versa?

Last month there was an outage in AWS and some sites had to be taken down because of that. I was wondering if a company is availing both AWS and Google Cloud Platform for hosting, how easy would it be for them to easily transfer their services from the Amazon platform to the Google platform or vice versa ( In case Google Cloud has some outage) . First of all is it possible or not? And also if it's what would be the cost for performing such an activity and how much time will it take to get the services running back again.
In this I also did some digging up and what I came across was each of the providers (Google and Amazon) have tools of their own to do so i.e. for transferring the stored data from other platforms to their platform -
https://cloud.google.com/storage/docs/migrating?hl=en
https://aws.amazon.com/importexport/
Are these the only options available or there is anything else as well. Hope some AWS/Google cloud expert would be able to answer my question.
You would need to run your application in both environments, keep the deployments in sync, keep the databases in sync, etc. That can get complicated and expensive...
Then to automatically fail over from one environment to another you could use a DNS service such as DynDNS Active Failover that monitors the health of your application and starts sending traffic to the other environment if your primary environment becomes unhealthy.
How you manage deployments, how you continually ship data across environments, how much all that will cost, all those questions are extremely specific to the technologies (programming languages, operating systems, database servers) you are currently using. There's no way to give details on how you would accomplish those tasks without having all the details of your system.
Further, if you are using proprietary technologies on a specific platform, such as Amazon Redshift or DynamoDB, you might not find a service on the other platform that provides the same functionality.
I've seen this subject come up a lot since the last AWS outage, but I think maintaining two environments on two different platforms is overkill for all but the most extremely critical applications. Instead, I would look into maintaining a copy of your application in a different AWS region, and use Route53 health checks to fail-over.

Amazon Web Services (AWS) - Web Development and IDE Workflow

I'm completely new to AWS and due to the many different types of services they offer I'm having trouble really figuring things out, so I'd love to get some input and fresh insight.
If I want to setup a development environment to play around with what would be the best course of action? (Please explain in detail, because like I said, I'm completely new to al of this)
How can I integrate my preferred IDE (Dreamweaver or Sublime Text 3) into my AWS workflow and web/application development process because it seems nearly impossible to be able to integrate these IDE's with any of the AWS services like EC2 or Elastic Beanstalk. Typically I would just connect my IDE via FTP to my hosting server but that doesn't seem possible with any of AWS' services. I know in many instances you can SSH into these work files and modify them via terminal (ex. using nano) but clearly that isn't a very user-friendly means of developing by any stretch of the imagination.
The underline gist of this post is that I'm trying to understand what the best website/web-application development process might be when using Amazon Web Services (ex. using s3/cloudfront as a CDN and using EC2 or Elastic Beanstalk for the application itself), as well as trying to understand how to correctly interact with various service environments so that I can still use my IDE of choice to add/modify/delete and push/pull files/directories from the various AWS services that I'm using.
Please explain any answers in detail and thanks in advance for any and all insights!
(As a side note I'd like to use PHP/MySQL, as well as MEAN, AngularJS, and other implementations of MongoDB/PostgreSQL)
Many Amazon services, including EC2, support SSH/SFTP. The SFTP is supported by both Dreamweaver and Sublime Text 3.
See my guide for connecting to Amazon EC2 with SFTP. It's for WinSCP client, but you can easily reuse it for configuring Dreamweaver or Sublime Text 3.

Are there any cloud libraries that takes EC2 inputs?

This might seem like a somewhat strange question, but are there any cloud libraries (jClouds, libclouds etc) that can take EC2 commands and port them to other clouds?
The idea is basically to enable a company with a native EC2 integration to move to a different cloud provider without having to rewrite the provisioning code.
Not exactly what you're looking for, but you can use a service such as Ravello, which supports multiple public clouds for deployment.
The user interacts with the Ravello API/UI, and Ravello handles the interaction with the various cloud APIs.

Best options for building a web app with SimpleDB as a data source?

I have seen PHP libraries for SimpleDB but nothing too interesting... are there any best practices or frameworks for this or should I just go at it? Thanks!
Aside from Amazon's basic PHP library for SimpleDB, there are two others that I know of.
Paws is a SimpleDB specific library, and
Tarzan which has support for many Amazon web services and seems to be well documented.
One thing to be aware of is that any individual SimpleDB request may not be as fast as a normal database call, but much of the time you can make your calls in parallel.
If you are able to run your web app on Amazon EC2 (either self hosted or if you can find a hosting company that uses EC2) you will see a much lower latency in SimpleDB requests than you'll get from a PHP host outside of Amazon's cloud. When running on EC2 I typically get round-trip latencies of 2-7ms to SimpleDB (not including the requst processing time).