I am looking at creating an Amazon Machine Image (AMI) to sell on Amazon AWS Market Place.
I have a general understanding of how to create and sell an AMI instance but I am unsure of the best way to provide maintain/support for a client EC2 instance.
I plan to create a AMI using Amazon Linux which runs our Java software application.
Question:
What is the best way to provide updates and support to a customer who has bought our AMI instance?
Related
Is there a way to backup users along with software created in AWS.
context:I am currently learning ansible and shutting down those instances created after some time..Everyday i have to recreate again users,,install anisble after relaunching those instances
The natural way to backup EC2 instances is through snapshots. You can also create custom AMI which will simplify launching new instances with all the per-installed software of yours, along with its users and all the settings.
I am building a Windows AMI from a base Windows AMI with my custom software on it.
If I distribute this image to customers, am I infringing some ToCs? How does it work given that Windows is proprietary?
You can share your AMI's, and you are not infringing on any ToC's:
Amazon EC2 enables you to share your AMIs with other AWS accounts. You
can allow all AWS accounts to launch the AMI (make the AMI public), or
only allow a few specific accounts to launch the AMI (see Sharing an
AMI with specific AWS accounts). You are not billed when your AMI is
launched by other AWS accounts; only the accounts launching the AMI
are billed.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-intro.html
When you share it with your customers, and they launch the AMI, they are billed by AWS and part of that bill is to pay the licensing cost as needed.
You will not violate any TOCs. AWS itself promote custom AMIs which are highly useful for business continuity plan.
For open-source software, they will work at run time, and for licensed software, only a copy of the software will be installed and the end-user will have to apply their license to make it work! Thus it shouldn't be an issue.
Since you're building a Windows AMI, do use Sysprep tool. It is highly useful in removing unique information from the Amazon Elastic Compute Cloud (Amazon EC2) Windows instance, including the instance security identifiers (SID), computer name, and drivers. Duplicate SIDs can cause issues with Windows Server Update Services (WSUS), log-in issues, Windows volume key activation, Microsoft Office, and third-party products.
I am using AWS server instance and i have deployed my application in AWS India origin cause of latency issue i wish to switch AWS china. So as i read about "Amazon Machine Image" but i am not sure about it would work or not.
Does cross origin copy of AWS AMI support in china?
I am little bit confuse about as below link is showing AWS EBS is there so my question is Do we use AWS-EBS service to create an AMI image?
https://www.amazonaws.cn/en/ebs/
You can create a AMI from existing instance and launch a new instance from that AMI in the new region. You need to copy the AMI to new region before starting the new instance.
For detailed steps see this blog
I am trying to sell my product on AWS Marketplace and got stuck on the registration form on the question 'How is your product fulfilled?' and it gives me the option of 'AMI' and 'SaaS'.
What is the difference between AMI and SaaS?
AMI means that you just have an OS image (stored under your account) that your users can "clone" by starting their own instances:
AMI is the acronym for Amazon Machine Image. An Amazon Machine Image (AMI) is an image of a server -- including an Operating System and often additional software -- which runs on AWS.
SaaS means that you start and control instances yourself and users use software running on those servers without having access to the internal server environment.
How do AMI and SaaS compare? Amazon answers that question explicitly:
Both AMI and SaaS (Software as a Service) product listings are from trusted vendors. AMI products run within a customer's AWS account. You retain more control over software configuration and over the servers that run the software, but you also have additional responsibilities regarding server configuration and maintenance.
I created a Amazon AWS EC2 instance under my account and made an website/ftp on it, now a new partner wants to move the instance under his company account so his company can pay the bills.
We can't change the instance IP because banks in the region are communicating with the server.
How can I move the instance to a different account without having to change anything on the configuration?
The short answer is: No, you cannot move an running instance from one account to another unless and ofcourse AWS Technical support has some magic available behind the curtains.
You can However, Create an AMI from this instance and share this AMI with other users/account. refer: http://aws.amazon.com/articles/530
To share or migrate EC2 instances from a source account to a target
account follow these steps:
Create a custom Amazon Machine Image (AMI)
from the instance you want to share or migrate. Be sure to include all
required EBS data volumes in the AMI.
Note: Data stored on instance store volumes isn't preserved in AMIs, and won't be on the instance store volumes of the instances
that you launch from the AMI.
Share the AMI with the target account
using either the EC2 console or the AWS Command Line Interface (CLI).
From the target account, find the AMI
using the EC2 console or the AWS CLI.
Launch a new instance from the shared AMI
on the target account.
Note: The private IP address of VPC instances will be different in the new account, unless you specifically set them during
launch.
Related information
Changing the Encryption State of Your Data
AWS CLI Command Reference (EC2)
Source: Transfer Amazon EC2 Instance
This is not possible.
AWS Support does not have access to copy Amazon EC2 resources or
manipulate any configuration options in AWS accounts. You can't
separate an AWS account from an Amazon.com account or transfer
resources between AWS accounts. It is possible to manually migrate
Amazon EC2 resources from one account to another by completing the
steps described here.
Source : https://aws.amazon.com/premiumsupport/knowledge-center/account-transfer-ec2-instance/
I'm working with several hundreds on EC2 instances in several AWS regions and accounts. You can move an EC2 instance to another AWS account, however, you can't move the Elastic IP and it will take up 16 steps with AWS CLI, if you want to migrate Tags and clone the Security Groups. I wrote a detailed post with the whole process at https://medium.com/#gmusumeci/how-to-move-an-ec2-instance-to-another-aws-account-e5a8f04cef21.
there are more than 10 steps involved in doing the cloud move. I would suggest you use Infrastructure as a Configuration (terraform and CloudFormation) or Infrastructure as a real code (pulumi and CDK)
however if you want to give a go at a nice tool I found called KopiCloud. Please feel welcome to try it and leave your comments below. Is good if you need to move instances on a quick lift and shift scenario.
You can re-think the design of having the banks in the region communicating to your servers via IP.
If the banks communicate using DNS names, you have much more flexibility to move your servers around.
You can also achieve improvements in high availability and resiliency by moving to DNS connections.
So a plan might be
Setup a DNS record for your existing server
Get the banks who connect to your server to connect via the DNS name
Setup your new server in the other account (other answers describe this)
Cut the banks over to your new server in the new account simply by updating the DNS record
I haven't tried load balancing across accounts, but that may be another option, which would give you HA as a bonus. By registering your current instance, and new instance in another account as targets with a load balancer and getting your clients to connect to the load balancer, you could cut over to the other account. The only part I haven't tried is registering targets in different accounts, but looks like this should be possible with an AWS Network Load Balancer