docker-ice, 一个Dockerized版本的Ice,Netflix使用工具的AWS

分享于 

7分钟阅读

GitHub

  繁體 雙語
A Dockerized version of Ice, Netflix's AWS Usage tool.
  • 源代码名称:docker-ice
  • 源代码网址:http://www.github.com/jonbrouse/docker-ice
  • docker-ice源代码文档
  • docker-ice源代码下载
  • Git URL:
    git://www.github.com/jonbrouse/docker-ice.git
    Git Clone代码到本地:
    git clone http://www.github.com/jonbrouse/docker-ice
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/jonbrouse/docker-ice
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    冰宝宝

    这个项目利用 Docker 创建了运行netflix使用工具 Ice的图像。 来自netflix知识库的 Ice简介:

    冰为我们从使用和成本角度提供了巨大而复杂的云景观的鸟瞰视角。 云资源由组织内数十个服务团队动态部署,并且资源分配的任何 static 快照都有有限的价值。 能够将使用模式转化为全球范围,然后将它们分解为区域。可以用性区域或者服务团队。 Ice允许我们量化AWS的足迹,并对预定购买和资源重新分配做出明智的决定。

    Ice是一个Grails项目。 它由三个部分组成: 处理器。阅读器和用户界面。处理器将亚马逊详细的记帐文件处理成读者可以读的数据。 读取器读取由处理器生成的数据并将它们呈现给 UI。 UI查询阅读器并在浏览器中呈现交互图形和表。

    更多信息和屏幕截图可以在项目页面的 git上找到。

    这个仓库是什么?

    这个库试图简化Ice的安装和配置。 除了应用程序容器之外,这个存储库配置了一个 Nginx 代理,它还帮助修复访问冰的URI问题。 遵循这些指导之后,你应该能够连接到服务器地址或者端口 80上的FQDN,并访问Ice应用程序。 这里外,我提供了一个新的工作脚本,你可以leverge启动你的容器启动。

    正在启动

    先决条件

    <accountid>-aws-billing-detailed-line-items-<year>-<month>.csv.zip

    Docker 设置

    • 创建docker组合 file: cp docker-compose-template.yml docker-compose.yml

    • 打开 docker-compose.yml 并配置时区,以及添加访问s3记帐存储桶的AWS访问密钥ID和密钥: vi docker-compose.yml

      
       ice:
      
      
       build: ice
      
      
       command: |
      
      
       -Djava.net.preferIPv4Stack=true
      
      
       -Djava.net.preferIPv4Addresses
      
      
       -Duser.timezone=<Your Timezone ie America/New_York>
      
      
       -Dice.s3AccessKeyId=<s3AccessKeyId>
      
      
       -Dice.s3SecretKey=<s3SecretKeyId>
      
      
      
      
    • 创建将挂载到容器中的配置文件: cp ice/assets/sample.properties ice/assets/ice.properties

    • 通过更新以下命令打开 ice.properties 并配置基本设置: vi ice/assets/ice.properties

      
       # s3 bucket name where the billing files are
      
      
       ice.billing_s3bucketname=
      
      
      
       # location for the billing bucket
      
      
       ice.billing_s3bucketregion=
      
      
      
       # Your company name
      
      
       ice.companyName=
      
      
      
       # s3 bucket name where Ice can store output files
      
      
       ice.work_s3bucketname=
      
      
      
       # Your AWS account number. You can also replace"production" with your own identifier 
      
      
       ice.account.production=
      
      
      
      

    关于配置的更多信息可以在项目页面的 git上找到。

    Docker 组成

    • 当你完成以前的步骤时,发出 docker-compose up 这将启动forground中的容器,以便你能够看到是否有错误。
    • 一旦一切正常,你就可以访问 docker-compose up -d 问题以在后台运行容器。

    基本 Docker 容器

    Upstart

    我已经在这个库的init 目录中包含了一个Upstart任务。 这将允许你使用 start ice 启动容器,并通过运行 stop ice 阻止它们。 这也将在启动时启动容器。

    init/ice.conf 复制到主机目录的/etc/init/

    编辑作业 vi/etc/init/ice.conf 并更改docker撰写文件的路径

    
     pre-start exec/usr/local/bin/docker-compose -f/path/to/your/docker-compose.yml up -d
    
    
    
     post-stop exec/usr/local/bin/docker-compose -f/path/to/your/docker-compose.yml stop
    
    
    
    

    重新加载作业控制器 initctl reload-configuration

    注释

    Highstock.js

    highstock.js的版本在 4.2.1处被锁定,因为更新版本中发生了重大更改。

    OutOfMemory异常

    若要调整内存分配,请将以下行添加到 docker-compose.yml file:

    
    ...
    
    
    environment:
    
    
    - GRAILS_OPTS=-server -Xmx4G -Xms1G -Dfile.encoding=UTF-8
    
    
    ...
    
    
    
    

    Docker 运行命令

    要通过 docker run 命令只启动Ice容器,请执行以下操作:

    
    docker run -v `pwd`/ice/assets/ice.properties:/opt/ice/src/java/ice.properties 
    
    
     -e GRAILS_OPTS="-server -Xms2g -Xmx2g -server" 
    
    
     jonbrouse/ice 
    
    
     -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses -Duser.timezone=America/New_York -Dice.s3AccessKeyId=XXXXXXXXXXXXX -Dice.s3SecretKey=XXXXXXXXX run-app
    
    
    
    

    tool  DOC  版本  Docker  DOCK  aws  
    相关文章