Teevity | How-to :: Start NetflixOSS Ice on my AWS...

Support Center

How-to :: Start NetflixOSS Ice on my AWS account using a CloudFormation

Last Updated: Jan 13, 2014 10:03AM CET
If you have already activated Programmatic Billing on your AWS account (normal or consolidated billing accounts), you can keep reading and start Ice on your AWS account. If you haven't yet, that's the first thing you should do. Follow the instructions here to do so.
 

What's inside this page


This page explains how to start easily start a fork of Netflix/Ice called Teevity/Ice that can run :
 
  • as a standalone software package, on your AWS account, started with a CloudFormation
     
  • or, same as above + integrated within your Teevity dashboard - http://www.teevity.com

Everything is done through the use of AWS CloudFormation, the super smart service from AWS. And in either case, the code running is the same and can be found here on GitHub and doesn't send cost/usage data back to our backends.

Here is what you will see in a 10-15 minutes ! And in case you need us, support@teevity.com.

Is it free ?

Yes, this is free, and open-source. Free as in beer and free as in speach since the source code of our fork is on Github and we are staying with the Apache v2 license. 

We will also offer a commercial version, with added functionality and support in the near future :
  • A improved User interface to ensure a better user-experience for users and administrators of the system,
     
  • Optimizations that will make Ice a lot cheaper in terms of AWS resources consumed to run it,
     
  • Graphical markers in the charts to help correlate events/actions and their impacts on costs, with an integration with DevOps scripts, CloudManagement platforms and Continuous deployment systems,
     
  • Secondary graphs for a better root cause analysis of costs (which operations inside the "EC2" cost are causing the cost to be so high, or which account causes the "EC2" cost to be so high),
     
  • The ability to monitor your Google GCE and Microsoft Azure Cloud accounts !
     
  • ... (send your wishes to feedback@teevity.com)

Pre-requisite : Are you using AWS Consolidated Billing ?


If you have several AWS accounts and a Consolidate Billing account, you might want to read this section. If not, you can jump straigtht to the next section [1/ Starting Ice ... (same account)].

Most of the time, AWS customers who have a Consolidated Billing account don't run any resources on it and use it only as an administrative account. And AWS Programmatic Billing is associated with this account.

In this situation, you will want to run Ice on an account and let it access the Programmatic Billing files on the Consolidated Billing account. If you are in this case, jump to [2/ Starting Ice ... (different account)] section.

1/ Starting Ice with a CloudFormation (same account)


Follow this to start Ice on the same AWS account as the one your Programmatic Billing bucket is on
 
  1. Create a new CloudFormation Stack using the AWS console.
     
  2. Use the CloudFormation located at this URL [Copy link URL] in the "Provide a Template URL" field.
     
  3. Give the Stack a name like "Teevity Ice-as-a-Service".
     
  4. Fill-in the parameters expected by the CloudFormation:

      - EC2InstanceSize : an m1.small will do (but bigger instances are often required, Ice is RAM hungry)

      - BillingBucketName : S3 bucket name where the Programmatic Billing files are

      - CompanyName : Your company name, just to decorate the user-interface

      - AccessProtectionKey : A password protecting your Ice instance. We recommend that you use the API key of your Teevity account followed by ~TEE (eg : 421970bc-4e31-44b1-7c38-904769454495~TEE). If you don't have an account with us already, it's free, just create one and activate the API, nothing more.
     
  5. JOB DONE ! The Cloudformation output value gives you the URL used to access Ice. Ice can take a long time to fetch all your billing data. Give it time. If you have linked Ice with a Teevity account, you will receive an email as soon as Ice instances have finished booting *and* have finished fetching and processing the data.
 

2/ Starting Ice with a CloudFormation (different account)


Follow these steps to start Ice on an another AWS account than the one your Programmatic Billings bucket is on.

You can run Teevity's Ice-as-a-Service on separate account than the one your Programmatic Billing is on. You will have to go through a small pre-requisite :
  1. Create an IAM user on the Consolidated Billing account which has access to the Programmatic Billing bucket. You can create this IAM user by executing the following dedicated CloudFormation  on the account with Programmatic Billing. Give the Stack a name like "Teevity ice-as-a-Service Consolidated Account"
     
  2. Keep the AccessKey/SecretKey of that IAM user with you
    You will need to pass them as parameters to the Ice CloudFormation.

​You can now start Ice on the AWS account of your choice
 
  1. Create a new CloudFormation Stack using the AWS console.
     
  2. Use the CloudFormation located at this URL [Copy link URLin the "Provide a Template URL" field.
     
  3. Give the Stack a name like "Teevity Ice-as-a-Service".
     
  4. Fill-in the parameters expected by the CloudFormation:

      - ProgrammaticBillingBucketAccessKey : The accessKey of the IAM user created previously

      - ProgrammaticBillingBucketSecretKey : The secretKey of the IAM user created previously

      - EC2InstanceSize : an m1.small will do (but bigger instances are often required, Ice is RAM hungry)

      - BillingBucketName : S3 bucket name where the Programmatic Billing files are

      - CompanyName : Your company name, just to decorate the user-interface

      - ​AccessProtectionKey : A password protecting your Ice instance. We recommend that you use the API key of your Teevity account followed by ~TEE (eg : 421970bc-4e31-44b1-7c38-904769454495~TEE). If you don't have an account with us already, it's free, just create one and activate the API, nothing more.
     
  5. JOB DONE ! The Cloudformation output value gives you the URL used to access Ice. Ice can take a long time to fetch all your billing data. Give it time. If you have linked Ice with a Teevity account, you will receive an email as soon as Ice as finished fetching and processing the data.
 

Updating your configuration (Tags, instance size, ...)


It is quite common for first-time users to need to update some of the parameters used by Ice and passed in through the CloudFormation. The tags used for cost allocation billing is the most common case (you may want to add more tags, or you may have forgotten the "user:" prefix in front of your tag names). You may also want to change the size of the instances your are using.

Thanks to the use of CloudFormation, updating your Ice deployment is super easy :

 
  • Use the CloudFormation Stack Update button
     
  • Put the same URL that you used to start your CloudFormation (see above for the URLs)
     
  • Update the values of your parameters (for instance the tags values)
     
  • Click update
     
Just wait for Ice to redeploy with the updated configuration (you will received an email as soon as it's fully ready if you have used a Teevity API key followed by ~TEE as your AccessProtectionKey). 

IMPORTANT - The IP address of the Ice Reader will have changed after the update so ensure you take the new output value from the CloudFormation as your new URL for Ice.

 

Stopping temporarily your Ice deployment



If you want to stop your Ice deployment temporarily, for reducing the cost of running Ice for instance, you can do so very easily.
 
  • When you want to pause your Ice deployment, perform a simple CloudFormation update with the following CloudFormation URL [copy link URL].
     
  • When you want to re-start it again later, perform another CloudFormation stack update with the URL you intially used to start the CloudFormation (see above).

IMPORTANT - Do not shut down the EC2 instances yourself because that would confuse the CloudFormation service and you woudn't be able to restart the system again later.

 

Restricting access to your Teevity/Ice deployment

You dont' have to restrict access to the Teevity/Ice instances via SecurityGroups since the system is protected from unsollicited access via the AccessProtectionKey. But you can do so if you want.

We recommend using your Teevity API key (followed by ~TEE) as your AccessProtectionKey to ensure that your instance of Teevity/Ice can integrate nicely with the rest of the Teevity environment.
  • For instance, the instances will be sending you an email to let you know when your instance of Teevity/Ice is fully-ready to be used or has finished reconfiguring, which can take a long time (10-20 min) if your billing files are large.
     
  • And they will later be able to connect with Teevity/JanitorMonkey and other services to further give you full control of your cloud spending and an always cost optimized system.

And again, the instances of Teevity/Ice you are starting will never send cost/usage data to our backend systemsThis data remains local to your AWS account (the Teevity/Ice code is open-source so it's easy to check).
 

Contact Us

  • Contact us at support@teevity.com or feel free to reach out to us @ +33.661.354.331