Tutorial

Optimize AWS Cloud resources with IBM Turbonomic

Set up Turbonomic in AWS to realize application resource management use cases

By

Anand Awasthi,

Vijay Bhaskar

Application resource management is an approach for continuously assuring the performance of applications by ensuring that those applications have the resources they need, when they need them. Application resource management considers resource dependencies at every layer of the infrastructure for the applications.

IBM Turbonomic is an application resource management solution that provides full-stack visualization of your application and infrastructure stack, provides real-time insights into the health and performance of your applications, and provides AI-powered automation to assure application performance while minimizing costs.

In this tutorial, you learn how IBM Turbonomic can continuously optimize your AWS Cloud resources to meet your application demands, optimize your cloud costs while ensuring the application performance, and run Kubernetes at scale on AWS. To achieve these benefits, you can have the IBM Turbonomic platform running on AWS itself or outside of it.

Prerequisites

You must have a Turbonomic platform deployed. If you want to deploy Turbonomic on AWS EKS, you can follow the steps in the tutorial, “Deploy Turbonomic on AWS EKS.”

Steps

Step 1. Configuring Turbonomic to manage AWS Cloud resources

To configure Turbonomic to manage AWS resources, you must first add AWS Cloud and Billing targets. You need to add any AWS EKS and Red Hat OpenShift on AWS (ROSA) targets separately.

Adding AWS Cloud and Billing targets

For Turbonomic to manage an AWS account, you must provide the credentials via the access key or via the IAM role that you use to access that account. For information about getting an Access Key for an AWS account, see the Amazon Web Services documentation.

The AWS account for an AWS target must have permissions that enable Turbonomic to monitor entities in your environment for action execution. Consult the Turbonomic Docs for more details and the permissions required for AWS Cloud targets and AWS Billing targets. The next sections will show you how to add AWS cloud targets and AWS billing targets.

Adding an AWS Cloud target

To add an AWS Cloud Target, open the Turbonomic platform console, and go to Settings > Target Configurations > New Target > Public Cloud.

Then, choose AWS as the target type.

In the form that is displayed, enter the connection details. Enter a name for your AWS account for the custom target name. If you are using an access key and secret to connect to the AWS account, specify those in the fields. If you are using an IAM role, toggle the IAM role button and enter the IAM role ARN. If Turbonomic is deployed behind a firewall, enter the proxy details.

AWS Add AWS Target dialog

Click the ADD button. Verify that its status is “Validated.”

It will take few minutes before you start seeing AWS entities in the supply chain diagram of the account that you added in Turbonomic.

Turbonomic console, showing AWS entities

Adding AWS Billing Target

A Turbonomic AWS Billing target allows users to grant access to a bill that is used to discover billing family relationships.

Billing targets use cost and usage reports. In order for Turbonomic to display month-to-day spend, you must create a cost and usage report in AWS and store it in an S3 bucket. For more information, see:

AWS cost usage reports

To add an AWS Billing Target, open the Turbonomic platform console, and go to Settings > Target Configurations > New Target > Public Cloud.

Then, choose "AWS Billing" as the target type.

In the form that is displayed, enter the connection details. Enter a name for your AWS billing target for the custom target name. If you are using an access key and secret to connect to the AWS account, specify those in the fields. If you are using an IAM role, toggle the IAM role button and enter the IAM role ARN. Also, specify the cost and usage report, path, and region. If Turbonomic is deployed behind a firewall, enter the proxy details.

AWS Add billing target

Click the ADD button. Verify that its status is “Validated.”

Adding EKS and ROSA Targets

Turbonomic supports target clusters managed on Kubernetes v1.8 or higher. Turbonomic provides a custom resource, KubeTurbo, to manage Kubernetes and OpenShift clusters.

Detailed steps for adding a Kubernetes target can be found on the KubeTurbo Wiki.

To deploy KubeTurbo on an Amazon Elastic Kubernetes Service (EKS) cluster or on a Red Hat OpenShift Service on AWS (ROSA) cluster, you need the following information from your Turbonomic administrator:

  • Turbonomic version: Turbo_server_version (for example, 8.8.2)
  • turboServer: topology-processor url (for example, https://topology-processor-turbonomic.turbonomic-470582-4c94a19e22d6eb1784ba6c2956faea67-0000.us-south.containers.appdomain.cloud)
  • opsManagerUserName: Turbo_username
  • opsManagerPassword: Turbo_password

Follow the KubeTurbo documentation to deploy KubeTurbo on AWS EKS or Red Hat OpenShift on AWS (ROSA) clusters using KubeTurbo operators.

After you have successfully deployed KubeTurbo, the cluster will start showing up in Turbonomic after few minutes.

Turbonomic cluster

Step 2. Application resource management use cases

While Turbonomic continuously assures application performance, you can realize following use cases for managing AWS Cloud resources:

  • Identify and remove resource bottlenecks
  • Right-size environments to get real elasticity
  • Optimize AWS Cloud spend
  • Run Kubernetes at scale
  • Plan for capacity and migration

Identify performance risks and help remove resource bottlenecks

Turbonomic continuously ensures that the applications are always getting the required resources to perform and to avoid any potential resource bottlenecks by the virtue of full stack visibility. Typically, Turbonomic recommends the following actions on EC2 instances, volumes, and relational database service (RDS) instances to optimize performance and cost:

  • Scale up the Virtual Machine (EC2 instance) to use a different instance type or tier. (Read more about Cloud VM actions in the Turbonomic docs.)
  • Scale up attached volumes. (Read more about Cloud volume actions in the Turbonomic docs.)
  • Scale up relational database services (RDS) to scale compute and storage resources. (Read more about database server actions in the Turbonomic docs.)

Actions to address performance risks may increase or decrease the cost.

Turbonomic actions to address performance

Right size environments to get real elasticity

Turbonomic ensures the efficient use of resources and eliminates over-allocations without any impact on the application performance or with better application performance. While recommending actions on AWS entities, Turbonomic does multi-modal analysis; for example, it ensures application performance, considering the reserved instances (RIs), savings plans, and discounts, compliance policies. The efficient use of cloud resources directly leads to optimized power and energy consumption and lesser carbon footprint in the cloud and contributes towards an organization’s goals towards sustainable IT.

  • Scale down the Virtual Machine (EC2 instance) to use a different instance type or tier. (Read more about Cloud VM actions in the Turbonomic docs.)
  • Scale down attached volumes. (Read more about Cloud volume actions in the Turbonomic docs.
  • Scale down relational database services (RDS) to scale compute and storage resources. (Read more about database server actions in the Turbonomic docs.)

Optimize AWS Cloud spend

Turbonomic ensures the efficient use of resources and eliminates over-allocation without any impact on the application performance. Eliminating over-allocation directly leads to cost savings.

While recommending actions on AWS entities, Turbonomic takes into considerations the RIs, savings plans, and discounts. While it eliminates over-allocation to save cost, at the same time it ensures optimum RI coverage and utilization to optimize the savings. If you have a high percentage of on-demand VMs, you can reduce your monthly costs by increasing discount coverage. To increase coverage, you scale VMs to instance types that have existing capacity. If you need more capacity, then Turbonomic will recommend actions to purchase additional discounts.

  • Scale down the Virtual Machine (EC2 instance) to use a different instance type or tier. (Read more about Cloud VM actions in the Turbonomic docs.)
  • Buy more reservations or change instance types (discount-related actions) to increase RI (VM/EC2 instances) coverage and utilization. (Read more about Cloud VM actions in the Turbonomic docs.)
  • Scale down attached volumes. (Read more about Cloud volume actions in the Turbonomic docs.
  • Scale down relational database services (RDS) to scale compute and storage resources. (Read more about database server actions in the Turbonomic docs.)

Actions to assure efficient use of cloud resources result in savings. The following screen capture shows potential savings derived by:

  • Changing the instance type to an appropriate new instance type.
  • Increasing RI coverage and utilization.

Turbonomic actions to address efficient use

Actions in the following screen capture show the reserved instances (RIs) purchase recommendations along with the break even period to further increase savings.

Turbonomic actions to address efficient use

Run Kubernetes at scale

Turbonomic adds several entities to the supply chain: services, containers, container pods, container specs, workload controllers, namespaces, volumes, and virtual machines. Each entity represents key components of your containerized application running in EKS, ROSA, or a self-managed Kubernetes or Red Hat OpenShift cluster. Turbonomic recommends actions for the Kubernetes container platform supply chain as follows:

  • Application components

    • Suspend application components due to a node (virtual machine) suspension.
    • APM actions - Application components might also receive other actions as part of APM integration such as a “Resize Heap” action from an underlying Instana integration.
  • Containers

    • Resize container up or down - With Merged Actions enabled, individual container actions are recommend only and the resize is reflected as an action on the workload controller entity.
    • Suspend a container due to a node (virtual machine) suspension.
  • Container pods

    • Move container pods across nodes (virtual machines).
    • Suspend container Pods due to a node (virtual machine) suspension.
  • Workload controller

    • Resize container - With Merged Actions enabled, this is a single resize action representing all resize actions for containers associated to a specific workload controller.
  • Virtual machines (nodes)

    • Provision additional resources. The following resources may be provisioned: vMem, vCPU, vMem Requests, vCPU Requests, and number of consumers
    • Suspend virtual machines (nodes).
    • Infrastructure dependent actions, such as “change the volume tier” for virtual machines (nodes).

The below screen capture shows the actions recommended on an AWS EKS cluster.

Turbonomic actions to address efficient use

Plan for capacity – Looking for the future

Use the Plan Page to run simulations for what-if scenarios that explore possibilities such as:

  • Migrate to cloud
  • Optimize cloud
  • Buy VM reservations

Migrate to Cloud plan

A Migrate to Cloud plan simulates migration of on-prem VMs to the cloud, or migration of VMs from one cloud provider to another.

This plan focuses on optimizing performance and costs by choosing the most suitable cloud resources for your VMs and the volumes they use. To further optimize your costs, the plan can recommend moving workloads from on-demand to discounted pricing, and purchasing more discounts. The plan calculates costs according to the billing and price adjustments that you have negotiated with your cloud provider. Costs include compute, service (such as IP services), and license costs. The plan also calculates discount purchases for VMs that can benefit from discounted pricing.

Turbonomic simulations - Migrate to Cloud plan

Optimize Cloud

Run the Optimize Cloud plan to see how you can maximize savings while still assuring performance for your applications and workloads.

This plan identifies ways to optimize your costs by choosing the best templates (most adequate compute resources), regions, accounts, or resource groups to host your workloads. The plan also identifies workloads that can change over to discounted pricing, and it compares your current costs to the costs you would get after executing the plan recommendations.

Turbonomic simulations - Optimize Cloud plan

Buy VM reservations

Run the Buy VM Reservations plan to see discount purchase opportunities that can significantly reduce on-demand costs for your cloud VMs.

When calculating purchases, Turbonomic evaluates all purchasing options for your selected scope and usage data for the VMs in that scope. It then compares your current costs to the costs you would get after executing the plan recommendations.

Turbonomic simulations - Optimize Cloud plan

Summary and next steps

In this article, we briefly explained how Turbonomic can ensure continuous application performance in AWS and also helps to resolve resource bottlenecks, right-size environments, optimizes cloud spend, runs Kubernetes at scale, optimizes AWS resources, and effectively plans for migration.

Learn more about IBM Turbonomic capabilities in this article, "Strengthening Application Performance with Turbonomic." Dive into the details of the principles and operations of Turbonomic in this article, "Understanding Application Resource Management using Turbonomic."

Explore more about how you can take advantage of IBM Turbonomic, by requesting a demo or trying out Turbonomic for yourself in the Turbonomic sandbox.