Amazon Web Services
The Amazon Web Services (AWS) solution is a subscription-based service available directly from the AWS marketplace. The marketplace enables quick deployment. Pay only for what you use, by the hour or month.
An existing AWS account is required. If you do not have an account, please create one now.
Getting Started
Choosing the EC2 Instance Type
In general, the M4 or M5 instance types work well with Imagizer.
The request per second (RPS) you will achieve will depend considerably on many factors including, but not limited to, image format, file size, resolution, and concurrent connections. Imagizer can handle anywhere from 5 RPS to 50 RPS per M5 core.
TIP
We recommend starting with the m5.xlarge instance. Run some benchmarks then scale up as needed.
Subscribe to Imagizer
Before using Imagizer from the AWS marketplace you must first subscribe and accept the terms of service.
- Navigate to the Imagizer AWS Marketplace.
- Click the Continue to Subscribe Button.
- Click the Accept Terms button.
- Wait a few seconds while AWS processes your request. Once finished, the Continue to Configuration button will become active.
Choosing a Single Instance or a CloudFormation Cluster
We always recommend launching a CloudFormation cluster rather than a single instance. The CloudFormation cluster has been built and tested extensively by Nventify to provide production ready, high availability and redundancy across multiple availability zones. Also, the CloudFormation cluster allows for easy deployment, management, and upgrades, all without downtime.
Feature | Cloud Formation Cluster | Single Instance |
---|---|---|
The Full Imagizer API | ✔ | ✔ |
Https Support | ✔ | |
CloudFront CDN | ✔ | |
High Availability | ✔ | |
Auto Scaling | ✔ | |
Simplified S3 Permissions Setup | ✔ | |
Simplified Domain Setup | ✔ | |
Simplified CloudWatch Setup | ✔ | |
No Downtime Upgrades | ✔ |
Launch Cluster with CloudFormation
This is the preferred method of deploying Imagizer on AWS. Our AWS CloudFormation template includes all the components required for a highly available and highly scalable cluster.
TIP
Make sure to Subscribe to Imagizer first, before continuing.
- From the subscription page, click the Continue to Configuration button.
- Choose the CloudFormation option from the Select a Fulfillment option dropdown.
- Choose the Region in which you wish to launch Imagizer.
- Click the Continue to Launch button.
- Select Launch CloudFormation from the Choose Action dropdown.
- Click the Launch button.
- Click the Next button.
- Provide a Stack name. A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and can't be longer than 128 characters.
- Choose the Instance Type you wish to use.
- Select the Number of Availability Zones you wish to use. We recommend choosing the largest amount available to your region.
- Select The Availability Zones you wish to use. Your select must match the Number of Availability Zones.
- Specify the Image Storage S3 Bucket name. If your images are stored elsewhere, skip this step.
- Alternatively, specify the Web Folder base URL of the location where your images are stored. If your images are stored on S3, skip this step.
- Optionally, enable CloudWatch Metrics and/or CloudWatch Logging.
- Optionally, enter an Advanced Imagizer JSON Config. See the Config Reference for a complete list of configurations available.
- Optionally, modify the Auto Scaling group parameters.
- Minimum Server Capacity defines the minimum number of instances the auto scaling Imagizer cluster should have at any time.
- Maximum Server Capacity defines the maximum number of instances the auto scaling Imagizer cluster should have at any time.
- AutoScaling Lower bound Load defines the lower CPU load threshold that causes the group to decrease in size.
- AutoScaling Upper bound Load defines the upper CPU load threshold that causes the group to increase in size.
- Optionally, set Enable CloudFront CDN to true to enable the CloudFront CDN.
- Optionally, create a custom domain name for the Imagizer cluster. Enter the Route 53 Hosted Zone Name and Custom Domain Name. You must already own and have the top level domain registered in AWS Route 53.
- Optionally, enable HTTPS support. You may create a new certificate by selecting New Certificate from the Enable HTTPS dropdown.
TIP
When creating a new certificate, a verification email will be sent to the email address that is registered to your domain. The stack will remain in the CREATE_IN_PROGRESS state until you act upon the instructions in the certificate validation email.
WARNING
Currently, when using CloudFront CDN, you can only create certificates in the US East (N. Virginia) region.
- Alternatively, HTTPS support may be enabled by using an existing AWS certificate. Select Existing Certificate from the Enable HTTPS dropdown. Then enter the certificate ARN into the Existing Certificate ARN field.
WARNING
Currently, when using CloudFront CDN, you may only use certificates from the US East (N. Virginia) region.
- Click the Next button.
- On the options page, click the Next button.
- On the review page, scroll to the bottom, check the I acknowledge that AWS CloudFormation might create IAM resources checkmark.
- Click the Create Stack button.
Congratulations! Your Imagizer CloudFormation cluster is being created. Once finished, you may retrieve your endpoint from the CloudFormation outputs.
You can test the cluster by navigating to the CloudFormation endpoint.
TIP
Visit the Usage guide for information on how to use Imagizer.
Launch Single Instance
WARNING
A single instance works well only for development or non critical services. See Launch Cluster with CloudFormation for a production ready deployment.
TIP
Make sure to Subscribe to Imagizer first, before continuing.
- From the subscription page, click the Continue to Configuration button.
- Choose the Amazon Machine Image option from the Select a Fulfillment option dropdown.
- Choose the Region in which you wish to launch Imagizer.
- Click the Continue to Launch button.
- Select Launch through EC2 from the Choose Action dropdown.
- Click the Launch button.
- Choose the Instance Type you wish to use.
- Click the Next button.
- Verify Auto-assign Public IP is enabled.
- Place your Imagizer Configuration into the User data field. A basic configuration includes the backend property.
Here is an example public S3 backend configuration. Replace
bucketname
with your S3 bucket name.
{
"backend": "http://bucketname.s3.amazonaws.com"
}
TIP
See the Configuration section for more information.
- Click the Review and Launch button.
- Click the launch button.
- From the popup keypair box, select Proceed without a keypair.
- Check the I acknowledge checkmark.
- Click the Launch Instances button.
- Wait a few minutes for the instance startup.
- Take note the public IP address or hostname of your instance.
Congratulations! Your Imagizer instance is now running. You can test the instance by navigating to the hostname or IP address in a browser.
TIP
Visit the Usage guide for information on how to use Imagizer.
Configuration
Imagizer accepts configuration in the JSON format. See the Config Reference for a list of all possible configurations.
You may pass the JSON configuration the AWS Imagizer through the Admin API or EC2 User Data.
Basic Configuration
Imagizer is configured out of the box to use the AWS S3 us-east-1
backend (http://s3.amazonaws.com). You may start using Imagizer right away, without a need for configuration, if this backend works for you.
If needed, you may modify this backend using the backend configuration property.
Example backend configuration.
{
"backend": "http://bucketname.s3.amazonaws.com"
}
Alternatively, if you are using a private S3 bucket, you may use the awsAuthorization configuration property.
Admin API
To use the Admin API, you must first open port 17006 from the Aws console.
WARNING
Take care to open the port only to trusted IP Addresses. The Admin API allows full access to your Imagizer configuration.
Please see the Admin API for more information.
EC2 User Data
You may configure your instance via the EC2 User Data.
Add the JSON formatted config directly into your EC2 User Data. The instance will automatically configure itself using the User Data configuration on startup.
New Instance
TIP
If this is your first time launching Imagizer on AWS, please see the Launch Single Instance.
Running instance
- Navigate to the EC2 Console Dashboard.
- Right click your instance. On the popup menu, select Instance State->Stop.
- Wait for the instance to stop. Once stopped, you may modify the User Data.
- Right click your instance. On the menu, select Instance Setting->View/Change User Data.
- Enter the JSON formatted Imagizer config into the User Data Field.
- Click the Save button.
- Right click your instance. On the popup menu, select Instance State->Start.
- Wait for the instance to start. Once started, your Imagizer instance will be configured and ready for use.