github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/provider/ec2/instancetype.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package ec2 5 6 import ( 7 "gopkg.in/amz.v3/aws" 8 9 "github.com/juju/juju/environs/instances" 10 "github.com/juju/juju/juju/arch" 11 ) 12 13 // Type of virtualisation used. 14 var ( 15 paravirtual = "pv" 16 hvm = "hvm" 17 ) 18 19 // all instance types can run amd64 images, and some can also run i386 ones. 20 var ( 21 amd64 = []string{arch.AMD64} 22 both = []string{arch.AMD64, arch.I386} 23 ) 24 25 // allRegions is defined here to allow tests to override the content. 26 var allRegions = aws.Regions 27 28 // allInstanceTypes holds the relevant attributes of every known 29 // instance type. 30 // Note that while the EC2 root disk default is 8G, constraints on disk 31 // for amazon will simply cause the root disk to grow to match the constraint 32 var allInstanceTypes = []instances.InstanceType{ 33 { // General purpose, 1st generation. 34 Name: "m1.small", 35 Arches: both, 36 CpuCores: 1, 37 CpuPower: instances.CpuPower(100), 38 Mem: 1740, 39 VirtType: ¶virtual, 40 }, { 41 Name: "m1.medium", 42 Arches: both, 43 CpuCores: 1, 44 CpuPower: instances.CpuPower(200), 45 Mem: 3840, 46 VirtType: ¶virtual, 47 }, { 48 Name: "m1.large", 49 Arches: amd64, 50 CpuCores: 2, 51 CpuPower: instances.CpuPower(400), 52 Mem: 7680, 53 VirtType: ¶virtual, 54 }, { 55 Name: "m1.xlarge", 56 Arches: amd64, 57 CpuCores: 4, 58 CpuPower: instances.CpuPower(800), 59 Mem: 15360, 60 VirtType: ¶virtual, 61 }, 62 63 { // General purpose, 2nd generation. 64 Name: "m3.medium", 65 Arches: amd64, 66 CpuCores: 1, 67 CpuPower: instances.CpuPower(300), 68 Mem: 3840, 69 VirtType: ¶virtual, 70 }, { 71 Name: "m3.large", 72 Arches: amd64, 73 CpuCores: 2, 74 CpuPower: instances.CpuPower(650), 75 Mem: 7680, 76 VirtType: ¶virtual, 77 }, { 78 Name: "m3.xlarge", 79 Arches: amd64, 80 CpuCores: 4, 81 CpuPower: instances.CpuPower(1300), 82 Mem: 15360, 83 VirtType: ¶virtual, 84 }, { 85 Name: "m3.2xlarge", 86 Arches: amd64, 87 CpuCores: 8, 88 CpuPower: instances.CpuPower(2600), 89 Mem: 30720, 90 VirtType: ¶virtual, 91 }, 92 93 { // Compute-optimized, 1st generation. 94 Name: "c1.medium", 95 Arches: both, 96 CpuCores: 2, 97 CpuPower: instances.CpuPower(500), 98 Mem: 1740, 99 VirtType: ¶virtual, 100 }, { 101 Name: "c1.xlarge", 102 Arches: amd64, 103 CpuCores: 8, 104 CpuPower: instances.CpuPower(2000), 105 Mem: 7168, 106 VirtType: ¶virtual, 107 }, { 108 Name: "cc2.8xlarge", 109 Arches: amd64, 110 CpuCores: 16, 111 CpuPower: instances.CpuPower(8800), 112 Mem: 61952, 113 VirtType: &hvm, 114 }, 115 116 { // Compute-optimized, 2nd generation. 117 Name: "c3.large", 118 Arches: amd64, 119 CpuCores: 2, 120 CpuPower: instances.CpuPower(700), 121 Mem: 3840, 122 VirtType: ¶virtual, 123 }, { 124 Name: "c3.xlarge", 125 Arches: amd64, 126 CpuCores: 4, 127 CpuPower: instances.CpuPower(1400), 128 Mem: 7680, 129 VirtType: ¶virtual, 130 }, { 131 Name: "c3.2xlarge", 132 Arches: amd64, 133 CpuCores: 8, 134 CpuPower: instances.CpuPower(2800), 135 Mem: 15360, 136 VirtType: ¶virtual, 137 }, { 138 Name: "c3.4xlarge", 139 Arches: amd64, 140 CpuCores: 16, 141 CpuPower: instances.CpuPower(5500), 142 Mem: 30720, 143 VirtType: ¶virtual, 144 }, { 145 Name: "c3.8xlarge", 146 Arches: amd64, 147 CpuCores: 32, 148 CpuPower: instances.CpuPower(10800), 149 Mem: 61440, 150 VirtType: ¶virtual, 151 }, 152 153 { // GPU instances, 1st generation. 154 Name: "cg1.4xlarge", 155 Arches: amd64, 156 CpuCores: 8, 157 CpuPower: instances.CpuPower(3350), 158 Mem: 22528, 159 VirtType: &hvm, 160 }, 161 162 { // GPU instances, 2nd generation. 163 Name: "g2.2xlarge", 164 Arches: amd64, 165 CpuCores: 8, 166 CpuPower: instances.CpuPower(2600), 167 Mem: 15360, 168 VirtType: &hvm, 169 }, 170 171 { // Memory-optimized, 1st generation. 172 Name: "m2.xlarge", 173 Arches: amd64, 174 CpuCores: 2, 175 CpuPower: instances.CpuPower(650), 176 Mem: 17408, 177 VirtType: ¶virtual, 178 }, { 179 Name: "m2.2xlarge", 180 Arches: amd64, 181 CpuCores: 4, 182 CpuPower: instances.CpuPower(1300), 183 Mem: 34816, 184 VirtType: ¶virtual, 185 }, { 186 Name: "m2.4xlarge", 187 Arches: amd64, 188 CpuCores: 8, 189 CpuPower: instances.CpuPower(2600), 190 Mem: 69632, 191 VirtType: ¶virtual, 192 }, { 193 Name: "cr1.8xlarge", 194 Arches: amd64, 195 CpuCores: 16, 196 CpuPower: instances.CpuPower(8800), 197 Mem: 249856, 198 VirtType: &hvm, 199 }, 200 201 { // Memory-optimized, 2nd generation. 202 Name: "r3.large", 203 Arches: amd64, 204 CpuCores: 2, 205 CpuPower: instances.CpuPower(650), 206 Mem: 15616, 207 VirtType: &hvm, 208 }, { 209 Name: "r3.xlarge", 210 Arches: amd64, 211 CpuCores: 4, 212 CpuPower: instances.CpuPower(1300), 213 Mem: 31232, 214 VirtType: &hvm, 215 }, { 216 Name: "r3.2xlarge", 217 Arches: amd64, 218 CpuCores: 8, 219 CpuPower: instances.CpuPower(2600), 220 Mem: 62464, 221 VirtType: &hvm, 222 }, { 223 Name: "r3.4xlarge", 224 Arches: amd64, 225 CpuCores: 16, 226 CpuPower: instances.CpuPower(5200), 227 Mem: 124928, 228 VirtType: &hvm, 229 }, { 230 Name: "r3.8xlarge", 231 Arches: amd64, 232 CpuCores: 32, 233 CpuPower: instances.CpuPower(10400), 234 Mem: 249856, 235 VirtType: &hvm, 236 }, 237 238 { // Storage-optimized, 1st generation. 239 Name: "hi1.4xlarge", 240 Arches: amd64, 241 CpuCores: 16, 242 CpuPower: instances.CpuPower(3500), 243 Mem: 61952, 244 VirtType: ¶virtual, 245 }, 246 247 { // Storage-optimized, 2nd generation. 248 Name: "i2.xlarge", 249 Arches: amd64, 250 CpuCores: 4, 251 CpuPower: instances.CpuPower(1400), 252 Mem: 31232, 253 VirtType: &hvm, 254 }, { 255 Name: "i2.2xlarge", 256 Arches: amd64, 257 CpuCores: 8, 258 CpuPower: instances.CpuPower(2700), 259 Mem: 62464, 260 VirtType: &hvm, 261 }, { 262 Name: "i2.4xlarge", 263 Arches: amd64, 264 CpuCores: 16, 265 CpuPower: instances.CpuPower(5300), 266 Mem: 124928, 267 VirtType: &hvm, 268 }, { 269 Name: "i2.8xlarge", 270 Arches: amd64, 271 CpuCores: 32, 272 CpuPower: instances.CpuPower(10400), 273 Mem: 249856, 274 VirtType: &hvm, 275 }, { 276 Name: "hs1.8xlarge", 277 Arches: amd64, 278 CpuCores: 16, 279 CpuPower: instances.CpuPower(3500), 280 Mem: 119808, 281 VirtType: ¶virtual, 282 }, 283 284 { // Tiny-weeny. 285 Name: "t1.micro", 286 Arches: both, 287 CpuCores: 1, 288 // Burstable baseline is 20% 289 CpuPower: instances.CpuPower(20), 290 Mem: 613, 291 VirtType: ¶virtual, 292 }, 293 294 { // General Purpose, 3rd generation. 295 Name: "t2.micro", 296 Arches: amd64, 297 CpuCores: 1, 298 Mem: 1024, 299 // Burstable baseline is 10% (from http://aws.amazon.com/ec2/faqs/#burst) 300 CpuPower: instances.CpuPower(10), 301 VirtType: &hvm, 302 }, 303 { // General Purpose, 3rd generation. 304 Name: "t2.small", 305 Arches: amd64, 306 CpuCores: 1, 307 Mem: 2048, 308 // Burstable baseline is 20% (from http://aws.amazon.com/ec2/faqs/#burst) 309 CpuPower: instances.CpuPower(20), 310 VirtType: &hvm, 311 }, 312 { // General Purpose, 3rd generation. 313 Name: "t2.medium", 314 Arches: amd64, 315 CpuCores: 2, 316 Mem: 4096, 317 // Burstable baseline is 40% (from http://aws.amazon.com/ec2/faqs/#burst) 318 CpuPower: instances.CpuPower(40), 319 VirtType: &hvm, 320 }, 321 322 { // Compute-optimized, 3rd generation. 323 Name: "c4.large", 324 Arches: amd64, 325 CpuCores: 2, 326 Mem: 3840, 327 CpuPower: instances.CpuPower(800), 328 VirtType: &hvm, 329 }, { 330 Name: "c4.xlarge", 331 Arches: amd64, 332 CpuCores: 4, 333 Mem: 7680, 334 CpuPower: instances.CpuPower(1600), 335 VirtType: &hvm, 336 }, { 337 Name: "c4.2xlarge", 338 Arches: amd64, 339 CpuCores: 8, 340 Mem: 15360, 341 CpuPower: instances.CpuPower(3100), 342 VirtType: &hvm, 343 }, { 344 Name: "c4.4xlarge", 345 Arches: amd64, 346 CpuCores: 16, 347 Mem: 30720, 348 CpuPower: instances.CpuPower(6200), 349 VirtType: &hvm, 350 }, { 351 Name: "c4.8xlarge", 352 Arches: amd64, 353 // The source of this information at http://aws.amazon.com/ec2/instance-types/ 354 CpuCores: 36, 355 Mem: 61440, 356 CpuPower: instances.CpuPower(13200), 357 VirtType: &hvm, 358 }, 359 } 360 361 type instanceTypeCost map[string]uint64 362 type regionCosts map[string]instanceTypeCost 363 364 // allRegionCosts holds the cost in USDe-3/hour for each available instance 365 // type in each region. 366 var allRegionCosts = regionCosts{ 367 "ap-northeast-1": { // Tokyo. 368 "m1.small": 61, 369 "m1.medium": 122, 370 "m1.large": 243, 371 "m1.xlarge": 486, 372 373 "m3.medium": 101, 374 "m3.large": 203, 375 "m3.xlarge": 405, 376 "m3.2xlarge": 810, 377 378 "c1.medium": 158, 379 "c1.xlarge": 632, 380 381 "cc2.8xlarge": 2349, 382 383 "c3.large": 128, 384 "c3.xlarge": 255, 385 "c3.2xlarge": 511, 386 "c3.4xlarge": 1021, 387 "c3.8xlarge": 2043, 388 389 "g2.2xlarge": 898, 390 391 "m2.xlarge": 287, 392 "m2.2xlarge": 575, 393 "m2.4xlarge": 1150, 394 395 "cr1.8xlarge": 4105, 396 397 "r3.large": 210, 398 "r3.xlarge": 420, 399 "r3.2xlarge": 840, 400 "r3.4xlarge": 1680, 401 "r3.8xlarge": 3360, 402 403 "hi1.4xlarge": 3276, 404 405 "i2.xlarge": 1001, 406 "i2.2xlarge": 2001, 407 "i2.4xlarge": 4002, 408 "i2.8xlarge": 8004, 409 410 "hs1.8xlarge": 5400, 411 412 "t1.micro": 26, 413 414 "t2.micro": 20, 415 "t2.small": 40, 416 "t2.medium": 80, 417 418 "c4.large": 147, 419 "c4.xlarge": 294, 420 "c4.2xlarge": 588, 421 "c4.4xlarge": 1176, 422 "c4.8xlarge": 2352, 423 }, 424 "ap-southeast-1": { // Singapore. 425 "m1.small": 58, 426 "m1.medium": 117, 427 "m1.large": 233, 428 "m1.xlarge": 467, 429 430 "m3.medium": 98, 431 "m3.large": 196, 432 "m3.xlarge": 392, 433 "m3.2xlarge": 784, 434 435 "c1.medium": 164, 436 "c1.xlarge": 655, 437 438 "c3.large": 132, 439 "c3.xlarge": 265, 440 "c3.2xlarge": 529, 441 "c3.4xlarge": 1058, 442 "c3.8xlarge": 2117, 443 444 "m2.xlarge": 296, 445 "m2.2xlarge": 592, 446 "m2.4xlarge": 1183, 447 448 "r3.large": 210, 449 "r3.xlarge": 420, 450 "r3.2xlarge": 840, 451 "r3.4xlarge": 1680, 452 "r3.8xlarge": 3360, 453 454 "i2.xlarge": 1018, 455 "i2.2xlarge": 2035, 456 "i2.4xlarge": 4070, 457 "i2.8xlarge": 8140, 458 459 "hs1.8xlarge": 5570, 460 461 "t1.micro": 20, 462 463 "t2.micro": 20, 464 "t2.small": 40, 465 "t2.medium": 80, 466 467 "c4.large": 152, 468 "c4.xlarge": 304, 469 "c4.2xlarge": 608, 470 "c4.4xlarge": 1216, 471 "c4.8xlarge": 2432, 472 473 "g2.2xlarge": 1000, 474 }, 475 "ap-southeast-2": { // Sydney. 476 "m1.small": 58, 477 "m1.medium": 117, 478 "m1.large": 233, 479 "m1.xlarge": 467, 480 481 "m3.medium": 98, 482 "m3.large": 196, 483 "m3.xlarge": 392, 484 "m3.2xlarge": 784, 485 486 "c1.medium": 164, 487 "c1.xlarge": 655, 488 489 "c3.large": 132, 490 "c3.xlarge": 265, 491 "c3.2xlarge": 529, 492 "c3.4xlarge": 1058, 493 "c3.8xlarge": 2117, 494 495 "m2.xlarge": 296, 496 "m2.2xlarge": 592, 497 "m2.4xlarge": 1183, 498 499 "r3.large": 210, 500 "r3.xlarge": 420, 501 "r3.2xlarge": 840, 502 "r3.4xlarge": 1680, 503 "r3.8xlarge": 3360, 504 505 "i2.xlarge": 1018, 506 "i2.2xlarge": 2035, 507 "i2.4xlarge": 4070, 508 "i2.8xlarge": 8140, 509 510 "hs1.8xlarge": 5570, 511 512 "t1.micro": 20, 513 514 "t2.micro": 20, 515 "t2.small": 40, 516 "t2.medium": 80, 517 518 "c4.large": 152, 519 "c4.xlarge": 304, 520 "c4.2xlarge": 608, 521 "c4.4xlarge": 1216, 522 "c4.8xlarge": 2432, 523 524 "g2.2xlarge": 898, 525 }, 526 "eu-west-1": { // Ireland. 527 "m1.small": 47, 528 "m1.medium": 95, 529 "m1.large": 190, 530 "m1.xlarge": 379, 531 532 "m3.medium": 77, 533 "m3.large": 154, 534 "m3.xlarge": 308, 535 "m3.2xlarge": 616, 536 537 "c1.medium": 148, 538 "c1.xlarge": 592, 539 540 "cc2.8xlarge": 2250, 541 542 "c3.large": 120, 543 "c3.xlarge": 239, 544 "c3.2xlarge": 478, 545 "c3.4xlarge": 956, 546 "c3.8xlarge": 1912, 547 548 "cg1.4xlarge": 2360, 549 550 "g2.2xlarge": 702, 551 552 "m2.xlarge": 275, 553 "m2.2xlarge": 550, 554 "m2.4xlarge": 1100, 555 556 "cr1.8xlarge": 3750, 557 558 "r3.large": 195, 559 "r3.xlarge": 390, 560 "r3.2xlarge": 780, 561 "r3.4xlarge": 1560, 562 "r3.8xlarge": 3120, 563 564 "hi1.4xlarge": 3100, 565 566 "i2.xlarge": 938, 567 "i2.2xlarge": 1876, 568 "i2.4xlarge": 3751, 569 "i2.8xlarge": 7502, 570 571 "hs1.8xlarge": 4900, 572 573 "t1.micro": 20, 574 575 "t2.micro": 14, 576 "t2.small": 28, 577 "t2.medium": 56, 578 579 "c4.large": 132, 580 "c4.xlarge": 264, 581 "c4.2xlarge": 528, 582 "c4.4xlarge": 1056, 583 "c4.8xlarge": 2112, 584 }, 585 "sa-east-1": { // Sao Paulo. 586 "m1.small": 58, 587 "m1.medium": 117, 588 "m1.large": 233, 589 "m1.xlarge": 467, 590 591 "m3.medium": 95, 592 "m3.large": 190, 593 "m3.xlarge": 381, 594 "m3.2xlarge": 761, 595 596 "c1.medium": 179, 597 "c1.xlarge": 718, 598 599 "m2.xlarge": 323, 600 "m2.2xlarge": 645, 601 "m2.4xlarge": 1291, 602 603 "t1.micro": 27, 604 605 "t2.micro": 27, 606 "t2.small": 54, 607 "t2.medium": 108, 608 609 "c3.large": 163, 610 "c3.xlarge": 325, 611 "c3.2xlarge": 650, 612 "c3.4xlarge": 1300, 613 "c3.8xlarge": 2600, 614 }, 615 "us-east-1": { // Northern Virginia. 616 "m1.small": 44, 617 "m1.medium": 87, 618 "m1.large": 175, 619 "m1.xlarge": 350, 620 621 "m3.medium": 70, 622 "m3.large": 140, 623 "m3.xlarge": 280, 624 "m3.2xlarge": 560, 625 626 "c1.medium": 130, 627 "c1.xlarge": 520, 628 629 "cc2.8xlarge": 2000, 630 631 "c3.large": 105, 632 "c3.xlarge": 210, 633 "c3.2xlarge": 420, 634 "c3.4xlarge": 840, 635 "c3.8xlarge": 1680, 636 637 "cg1.4xlarge": 2100, 638 639 "g2.2xlarge": 650, 640 641 "m2.xlarge": 245, 642 "m2.2xlarge": 490, 643 "m2.4xlarge": 980, 644 645 "cr1.8xlarge": 3500, 646 647 "r3.large": 175, 648 "r3.xlarge": 350, 649 "r3.2xlarge": 700, 650 "r3.4xlarge": 1400, 651 "r3.8xlarge": 2800, 652 653 "hi1.4xlarge": 3100, 654 655 "i2.xlarge": 853, 656 "i2.2xlarge": 1705, 657 "i2.4xlarge": 3410, 658 "i2.8xlarge": 6820, 659 660 "hs1.8xlarge": 4600, 661 662 "t1.micro": 20, 663 664 "t2.micro": 13, 665 "t2.small": 26, 666 "t2.medium": 52, 667 668 "c4.large": 116, 669 "c4.xlarge": 232, 670 "c4.2xlarge": 464, 671 "c4.4xlarge": 928, 672 "c4.8xlarge": 1856, 673 }, 674 "us-west-1": { // Northern California. 675 "m1.small": 47, 676 "m1.medium": 95, 677 "m1.large": 190, 678 "m1.xlarge": 379, 679 680 "m3.medium": 77, 681 "m3.large": 154, 682 "m3.xlarge": 308, 683 "m3.2xlarge": 616, 684 685 "c1.medium": 148, 686 "c1.xlarge": 592, 687 688 "c3.large": 120, 689 "c3.xlarge": 239, 690 "c3.2xlarge": 478, 691 "c3.4xlarge": 956, 692 "c3.8xlarge": 1912, 693 694 "g2.2xlarge": 702, 695 696 "m2.xlarge": 275, 697 "m2.2xlarge": 550, 698 "m2.4xlarge": 1100, 699 700 "r3.large": 195, 701 "r3.xlarge": 390, 702 "r3.2xlarge": 780, 703 "r3.4xlarge": 1560, 704 "r3.8xlarge": 3120, 705 706 "i2.xlarge": 938, 707 "i2.2xlarge": 1876, 708 "i2.4xlarge": 3751, 709 "i2.8xlarge": 7502, 710 711 "t1.micro": 25, 712 713 "t2.micro": 17, 714 "t2.small": 34, 715 "t2.medium": 68, 716 717 "c4.large": 138, 718 "c4.xlarge": 276, 719 "c4.2xlarge": 552, 720 "c4.4xlarge": 1104, 721 "c4.8xlarge": 2208, 722 }, 723 "us-west-2": { // Oregon. 724 "m1.small": 44, 725 "m1.medium": 87, 726 "m1.large": 175, 727 "m1.xlarge": 350, 728 729 "m3.medium": 70, 730 "m3.large": 140, 731 "m3.xlarge": 280, 732 "m3.2xlarge": 560, 733 734 "c1.medium": 130, 735 "c1.xlarge": 520, 736 737 "cc2.8xlarge": 2000, 738 739 "c3.large": 105, 740 "c3.xlarge": 210, 741 "c3.2xlarge": 420, 742 "c3.4xlarge": 840, 743 "c3.8xlarge": 1680, 744 745 "g2.2xlarge": 650, 746 747 "m2.xlarge": 245, 748 "m2.2xlarge": 490, 749 "m2.4xlarge": 980, 750 "cr1.8xlarge": 3500, 751 752 "r3.large": 175, 753 "r3.xlarge": 350, 754 "r3.2xlarge": 700, 755 "r3.4xlarge": 1400, 756 "r3.8xlarge": 2800, 757 758 "hi1.4xlarge": 3100, 759 760 "i2.xlarge": 853, 761 "i2.2xlarge": 1705, 762 "i2.4xlarge": 3410, 763 "i2.8xlarge": 6820, 764 765 "hs1.8xlarge": 4600, 766 767 "t1.micro": 20, 768 769 "t2.micro": 13, 770 "t2.small": 26, 771 "t2.medium": 52, 772 773 "c4.large": 116, 774 "c4.xlarge": 232, 775 "c4.2xlarge": 464, 776 "c4.4xlarge": 928, 777 "c4.8xlarge": 1856, 778 }, 779 "eu-central-1": { // Frankfurt. 780 "t2.micro": 15, 781 "t2.small": 30, 782 "t2.medium": 60, 783 784 "m3.medium": 83, 785 "m3.large": 166, 786 "m3.xlarge": 332, 787 "m3.2xlarge": 665, 788 789 "c3.large": 129, 790 "c3.xlarge": 258, 791 "c3.2xlarge": 516, 792 "c3.4xlarge": 1032, 793 "c3.8xlarge": 2064, 794 795 "r3.large": 210, 796 "r3.xlarge": 421, 797 "r3.2xlarge": 842, 798 "r3.4xlarge": 1684, 799 "r3.8xlarge": 3369, 800 801 "i2.xlarge": 1013, 802 "i2.2xlarge": 2026, 803 "i2.4xlarge": 4051, 804 "i2.8xlarge": 8102, 805 }, 806 "us-gov-west-1": { // Isolated region - US GovCloud. 807 "t2.micro": 15, 808 "t2.small": 31, 809 "t2.medium": 62, 810 811 "m3.medium": 84, 812 "m3.large": 168, 813 "m3.xlarge": 336, 814 "m3.2xlarge": 672, 815 816 "c3.large": 126, 817 "c3.xlarge": 252, 818 "c3.2xlarge": 504, 819 "c3.4xlarge": 1008, 820 "c3.8xlarge": 2016, 821 822 "r3.large": 210, 823 "r3.xlarge": 420, 824 "r3.2xlarge": 840, 825 "r3.4xlarge": 1680, 826 "r3.8xlarge": 3360, 827 828 "i2.xlarge": 1023, 829 "i2.2xlarge": 2046, 830 "i2.4xlarge": 4092, 831 "i2.8xlarge": 8184, 832 833 "hs1.8xlarge": 5520, 834 }, 835 "cn-north-1": { // Isolated region - China, Beijing. 836 // Instance type information is from 837 // http://www.amazonaws.cn/en/ec2/details/ 838 // TODO (anastasiamac 2015-03-05): 839 // To compensate for lack of pricing, we 840 // are putting in arbitrary values that reflect the relative costs. 841 // This is justified by the fact that, in Juju, we use instance-by-region cost 842 // to identify least expensive machine with desired constraints. 843 "t1.micro": 1, 844 845 "m1.small": 2, 846 847 "m3.medium": 3, 848 "m3.large": 5, 849 "m3.xlarge": 7, 850 "m3.2xlarge": 9, 851 852 "c3.large": 4, 853 "c3.xlarge": 6, 854 "c3.2xlarge": 8, 855 "c3.4xlarge": 10, 856 "c3.8xlarge": 11, 857 }, 858 }