AWS C4 Instances
aws.amazon.com
aws.amazon.com
[1] http://www.xenserver.org/partners/developing-products-for-xe...
In some cases, your workload might not need all 18 of the cores (each of which
runs two hyperthreads, for a total of 36 vCPUs on c4.8xlarge). To tune your
application for better performance, you can manage the power consumption on a
per-core basis. This is known as C-state management, and gives you control over
the sleep level that a core may enter when idle. Let’s say that your code needs
just two cores. Your operating system can set the other 16 cores to a state that
draws little or no power, thereby creating some thermal headroom that will give
the remaining cores an opportunity to Turbo Boost. You also have control over
the desired performance (CPU clock frequency); this is known as P-state
management. You should consider changing C-state settings to decrease CPU
latency variability (cores in a sleep state consume less power, but deeper sleep
states require longer to become active when needed) and consider changing
P-state settings to adjust the variability in CPU frequency in order to best
meet the needs of your application.To elaborate: I start with (e.g.) a 2 cpu c4 instance. But my single thread performance isn't fast enough. So I'm going to spend a king's random to upgrade to a 36 cpu instance, just so I can disable 35 of those cpus? There are several other options I'd probably investigate first.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor...
c4.2xlarge https://gist.github.com/karlseguin/a659ef87b3a4a5d590e9
c4.8xlarge https://gist.github.com/karlseguin/0f38b9ad87ebd54375da
i7-4770 https://gist.github.com/karlseguin/5a6a45ace2048545b6c3
https://aws.amazon.com/blogs/aws/now-available-new-c4-instan...
Amazon seems to offer more network bandwidth though, so they might have an advantage for CPU-heavy and network-heavy loads. But from the testing I've done Amazon comes in almost dead last for cost/performance on most metrics. I suppose they could make sense if you make heavy use of all their services, and maybe their cost/performance improves with scale?
I have some stuff at Kimsufi (BHS data center). The performance and stability are really excellent but I'd have to wait for availability to add more, which sucks.
I'm not saying don't do it, I'm just saying be aware that you may be making it harder for your company to change providers down the road.
As far as I am aware, there is nothing out there that can rival the cost and functionality of S3. I'm not going to avoid using it simply because there is a lack of open alternative - it's that much better that I will use it now and redevelop to use different technology if and when I have to.
After all, most of these services all have pre-made client libraries. Rewriting code to use a different service isn't likely to be world-shattering.
(I haven't done this particular pricing calculation, but everything else in AWS seems awfully overpriced, so why not S3?)
Source: I've maintained a Riak cluster.
There are lots of AWS services I avoid (I won't use SQS, I won't use Dynamo except during prototyping, etc.), but S3 is so utterly portable across any cloud you go to (and latency is already not something you are worrying about if you're using S3) that it's laughable to suggest that you're going to roll your own with anywhere near the reliability at anywhere near the cost.
(To be honest, with that many nodes I have a hard time believing that you're not spending half a FTE just replacing dead drives.)
Not to mention the additional costs if you're actually interested in the same level of durability (target eleven 9s (99.999999999%), but last time I talked to an engineer they're still at 100% since leaving beta). Multiple DCs, transit between them...
I'm sure there's a scale at which it's worth it, but it's pretty far up there and for almost everyone S3 is a cheaper option.
You might not be in "almost everyone", but almost everyone else is.
Not to say it never happens, but 90% of people are better off just using S3.
There are definitely some PaaS-type offerings they have that aren't as scary (RDS/MySQL, for example, and ElastiCache/Memcached, etc.), but if you're trying to bounce systems between clouds, or deploy the exact same configuration everywhere you're running, the only real answer is to rely on compute resources (basically EC2) and build your own stuff. All the clouds have Linux servers.
The AWS services I use without hesitation are EC2, Route 53, S3, SNS (to mobile devices, not to my applications), and SES. RDS and ElastiCache can be okay for early, pre-scaling situations, and Dynamo is okay for proving out a problem before cranking out a Cassandra cluster (but I wouldn't want to scale on Dynamo, gets real pricey real fast).
I will also heavily recommend Redshift, because it's fantastic for a lot of different offline workflows and it's a lot nicer than maintaining your own. It works well without being tied to AWS for your actual infrastructure.
Their CPU has a passmark score of 16k[1] and they ask $1300 USD/mo for it.
Hetzner will rent you one with passmark 10k[2] for $60/mo...
[1] http://www.cpubenchmark.net/cpu.php?cpu=Intel+Xeon+E5-2680+v...
[2] http://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i7-4770+%...
3 years reserved c4.8xlarge costs $501/mo at EC2.
If you can commit for 3 years, why would you pay a 6x markup for "elasticity"? (11x if you commit for only 1 year...)
That is a crazy difference though if you can take advantage of it.
The docs say that it is a VF but I wonder since they are offering the full 10G of bandwidth.
We could relocate our Snabb Lab to AWS if we got PFs. https://github.com/SnabbCo/snabbswitch/wiki/Snabb-Lab
# ethtool -i eth0
driver: ixgbevfhttp://ark.intel.com/products/81706
I don't think anyone but Amazon has this specific model. I don't see it available for sale anywhere.
The extra features of EBS SSDs are pretty useful (ie. snapshotting)
But having attached disks was super fast.
Last time we spec-ed up an ElasticSearch cluster the SSD EBS didn't exist yet, so on-board SSDs was an obvious win.
I should revisit it again some time.
For Elasticsearch, we use R3 (memory-optimized) instances which still have SSD instance storage. And boy is it ever fast.
C3 SSDs were crazy faster than even the fastest EBS option listed, plus you could raid0 them...
Fortunately for me, I don't need that much disk space and C3's aren't going anywhere for a while.
These machines sound cool, but C3's will do me just fine.
EBS adds an unnecessary additional point of failure that I want to avoid at all costs.
Having run production systems in EC2 since 2010, I've survived numerous EBS outages as other services have crashed and burned by sticking to this philosophy.
[1]: I don't use EBS for my database servers either. I use a replicated DB that can lose multiple machines simultaneously without loss of data (and is backed up to S3 in case of a catastrophic event).
The equivalent on EBS on the other hand will cost you an extra $250/mo or so in addition to your server cost. And you will cap out at 4000 IOPS.
Individual machines' durability is almost irrelevant. Your service's durability is very relevant. This is the most critical consideration in almost all cases in the cloud. EBS makes service durability much harder.
I am about to reserve some R3 instances so maybe that will speed it up :-)