About MultiCloud Images
A MultiCloud Image (MCI) is a RightScale component that functions as a map or pointer to machine images in specific clouds. Each ServerTemplate must reference a single MultiCloud Image that defines which image should be used when a server is launched in a particular cloud.
The example diagram above only shows one MCI for the ServerTemplate. However, there could be multiple MCIs per ServerTemplate.
Visit the MultiCloud Images - Actions and Procedures page for step-by-step instructions on common tasks related to MultiCloud Images.
When you add a server to a deployment, the corresponding ServerTemplate's MultiCloud Images determine which clouds you can use. You will only be able to deploy a server in a cloud that your chosen ServerTemplate MCI supports. In the example above, the selected MCI for this ServerTemplate will only let you deploy a server in the Amazon
US-East regions or the RackSpace cloud. To deploy a server in the Amazon
EU region, you must use a ServerTemplate with an MCI that supports that region. Fortunately, if you are using published ServerTemplates from RightScale, each template is tested with multiple MCIs. Under the ServerTemplate's Images tab, you can see a list of supported MCIs.
You can either use the default MCI or select a different one from the list. In this way, a ServerTemplate and its scripts define the functionality of a server (e.g., PHP application server) while the MCI defines which clouds or AWS regions are supported. The screenshot above highlights how MCIs are used to extend a ServerTemplate's multi-cloud support. For example, you can use the same ServerTemplate to configure a 32-bit small server running CentOS 5.6 in Amazon US-East, or a 64-bit xlarge server running Ubuntu 10.04 in the AWS US-West region.
When you add a server to a deployment using a ServerTemplate, you must first specify which cloud to deploy to. For example, if a ServerTemplate is using MultiCloud Images that only have references to images in the Amazon US-East and AWS US-West regions, you cannot use that ServerTemplate to create a server in the
EU region. Based on the cloud selected (e.g., us-east), the server inherits the appropriate image for that region. If a ServerTemplate has only one MultiCloud Image and that MultiCloud Image only has a reference to one cloud or Amazon EC2 region, then you can only create a server for that cloud or region.
Once a server is added, it inherits the image specified for that region by the MultiCloud Image. Later, you can manually edit the server's configuration and select a different MCI or even choose a different AMI not referenced by one of the MCIs. The MultiCloud Image is only used to choose the appropriate image when a server is created from a ServerTemplate.
In a MultiCloud Image, you can only specify a single image for each cloud. For example, you cannot specify both a 32-bit and 64-bit image in the
us-east cloud so you can launch both small and large instance types with the same MCI. However, you could add multiple MCIs to a ServerTemplate that would support both 32-bit and 64-bit images in multiple clouds, as shown in the graphic above.
Also, while the OSs and versions of the images that you specify in a single MultiCloud Image for a cloud do not have to match, as a best practice, we recommend you use the same image OS and version in each MCI across all clouds when possible. It will be easier to manage a MultiCloud Image if it references the same image (e.g., RightImage_CentOS_5.6_x64_v5.7) across all clouds as shown in the diagram above. In addition, we recommend that you name your MultiCloud Image based on its underlying images (e.g. RightImage_Ubuntu_10.04_x64_v5.7).
MultiCloud Images are located in the MultiCloud Marketplace just like other RightScale components (ServerTemplates, RightScripts, and macros). Similar to RightScripts, when you import a ServerTemplate, its MultiCloud Images are imported to your account (unless they already exist in your account). You can also import a MultiCloud Image from the MultiCloud Marketplace by itself.
You can share MultiCloud Images via account groups as with other RightScale components. Similar to RightScripts, when you publish a ServerTemplate to the MultiCloud Marketplace, its MultiCloud Image is also exported to the MultiCloud Marketplace (unless it is already published).
If you share a MultiCloud Image, make sure its referenced images are accessible to your users. For example, if sharing a custom Amazon Machine Image (AMI), you must either make it publicly available or share it with the appropriate Amazon accounts so the image will be accessible to a user when a server is launched.
Similarly to other RightScale components such as ServerTemplates and RightScripts, MultiCloud Images support version control. As a best practice, you should always use a committed MultiCloud Image revision for production-ready ServerTemplates. You can also perform a Diff and Merge for MultiCloud Images, as with RightScripts and ServerTemplates.
Why should I use RightImages instead of building custom images?
An important concept to understand is why RightImages are recommended for launching servers in the cloud.
What is a machine image?
In order to launch a server in any public/private cloud, you must use an appropriate machine image that's compatible with the instance that type you're going to launch in that particular cloud. Machine images are cloud-specific and are cloud resources that must exist in that cloud's resource pool. For many clouds, images are either publicly available or reserved for private use only. Typically, an image will be a bundled version of an instance you're going to launch, which includes a base operating system, software installations and other networking tools and configurations.
Problems with machine images
- Server-specific - Custom images can be useful for launching identical instances that are never going to change. As a result, you'll have to create a custom image for each type of server you're going to launch. If you're not careful, bundling images can become a maintenance and versioning nightmare.
- Cloud-specific - An image can only be used in the cloud in which it exists. You cannot use a custom image that you built in one cloud (region) and use it to launch an instance in another cloud.
- User-specific - Obviously, if you're going to use your own custom images, then you're going to be the one creating and managing all of those images. Instead of putting all of your customizations into the image, it's recommended that you use the ServerTemplate model and create scripts that will install and configure your server accordingly after a base RightImage is installed. By using ServerTemplates and scripts to customize the server along with a lightweight RightImage, you will never have to worry about creating your own images and can focus your time and effort on improving your application.
- No Upgrade Path - If you build a custom image, you will only be able to use it in the cloud in which it was built. For AWS, EC2 images are also architecture-specific. Therefore, if you are using an 'm1.small' instance type and you later want to vertically scale to a larger instance type, you will need to create a new 64-bit image from scratch because you cannot use a 32-bit image to launch an 'm1.large' instance type. Similarly, if you want to change from one AWS region to another, you will also have to manually replicate it to the other region or rebuild the custom image again from scratch.
What is a RightImage?
Benefits of using RightImages
- Built-in RightScale Support - RightScale can manage servers launched with RightImages in a more optimal and secure manner. Only servers that are launched with RightImages or equivalent RightScale-enabled images support the following RightScale features: real-time monitoring, alerts, log data, audit entries, the execution of scripts, and many more.
- Easy Upgrade Path - If you want to take advantage of a newer RightImage that was recently released, you can simply import the new MultiCloud Image (MCI) from the MultiCloud Marketplace and update your server's configuration or ServerTemplate accordingly. Vertically scaling is also easy if you're using RightImages because all you have to do is select the appropriate version that supports the instance type. For example, if you're upgrading from an 'm1.small' to an 'm1.large' instance type in EC2, all you have to do is select the 64-bit version of the RightImage.
- Cloud Portability - Since every RightImage that is published by RightScale is replicated and made available across all RightScale supported clouds, you'll be able to easily change where a server will be launched.
- Production-ready Images - All RightImages are thoroughly tested by RightScale before being published and are suitable for launching servers in production environments.
- Consistency - Simplify your deployment setup by using the same RightImages for all servers to maintain server consistency at the image level.
Can I create a RightImage of my own?
RightScale produces RightImages for the most commonly used OS distributions. However, your application may have unique requirements that may not be supported by one of the available RightImages. In such cases, you can create your own RightScale-friendly image. Visit our RightLink 10, RightLink 6, and RightLink Legacy documentation for additional information. RightLink must be included in your custom images in order to take advantage of all the automation features within the RightScale platform. Also, you can only successfully use ServerTemplates published by RightScale if you're using an image that includes RightLink.