AWS EBS read bandwidth Under-provisioned Question - amazon-web-services

I am new to Aws, recently I checked my Compute Optimizer
found the following:
"Compute Optimizer found that this instance's EBS throughput is under-provisioned."
EBS read bandwidth (MiB/second)
EBS write bandwidth (MiB/second)
both Under-provisioned from AWS Compute Optimizer.
I am not so sure how to increase, AWS Compute Optimizer showed few different instance type to switch from, but there is no information about the EBS read and write bandwidth.
There is a tab for instance and Attached EBS volumes. So should I update the instance with the recommend one or update the EBS volumes, which one will increase the EBS read/write bandwidth?
any help would be much appreciated.

Related

AWS EC2 Local Storage Volumes/nvme volume

I am using "m5d.8xlarge" ec2 instance, which comes ready with 2*600G SSD Volumes, directly attached. They are appearing on the OS, however no mention on the console, as I can't retrieve any info about them.
And it is showing as well the serial of the volumes as AWS-*** not as normal EBS volumes vol***.
I read that these are ephemeral or something; I want to have any AWS official docs that thoroughly explain how this local storage works, as we are hosting prod workload on it, appreciate if someone can explain or provide docs.
"m5d.8xlarge" ec2 instances comes with 2 ephimeral storage which are instance store volume.
Instance store volumes (docs) are directly attached to underlying hardware to reduce latency and increase IOPS and data throughput.
However there is a caveat, if you ec2 instance is terminated,stops, hibernated or stopped or underlying hardware gets shutdown due to some glitch all the data stored on on these ephemeral storage will be lost.
Generally instance store volumes are used for buffer,cache.
In order to confirm you can follow this https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-instance-store-volumes/ :-
ssh into ec2 instance
install nvme-cli tool -> sudo yum instal nvme-cli
sudo nvme list - to list all instance store volumes
if you want data to persist you should go for EBS or EFS
EBS docs, EFS docs
In short If you want to access data with super low latency and you can afford to loose data go for instance store but if it is business critical data for example database workload go for EBS, YOu can still achieve very high IOPS and throughput using IO1,IO2 volume types or if you have a want to go even further use nitro ec2 instance type which gives maximum 64000 IOPS.
Play with EBS volume types to increase IOPS and throughput https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html

AWS EBS Optimised Instance on load test showing only Instance Throughput

Can someone help m e to understand with how the throughput works with EBS Optimised Instance. I am in process of benchmarking EBS disk for MSSQL server on top of EC2 instances. Today i did perform a IOPS test using CrystalDiskMark tool and i found that when with perfmon counters the maximum throughput its showing is the one assigned to the instance , as an example I am using X1e.4XLarge which is having a throughput of ~230 MiB/s and during test i am getting this number only , so just wanted to understand why i am not getting EBS throughput as what it supposed to provide , reason being per aws documentation with EBS optimized instances we get dedicated network between ec2 instances and ebs volumes and instance throughput is additional on top of EBS throughput..
Is that something wrong i am performing or seeing data stats with benchmarking. Highly appreciate help.

How to use single EBS volume with a feel of spot EC2 instance

I am preparing for AWS certification and I found following question in mock test.
The Question is as mentioned in below image :
And they have mentioned EBS volume in the question, I selected to choose "Provisioned IOPS SSD Volume" to implement scalable and high throughput.
But the correct answer was EFS with the following justification.
But, I think EBS volume can only be mapped with one EC2 instance at a time. Can we map one EBS volume with feet of multiple EC2 instance ?
No, you can't map an EBS volume to more than one instance at a time.
But EFS doesn't use EBS, and an EFS filesystem had no meaningful limit on the number of EC2 instances that can access it simultaneously.
The question isn't a very good one. In fact, it proposes an initial scenario that you would never use.
EBS volumes attached to members of an auto-scaling group would never be used to store CMS documents uploaded by users, because those volumes will ether be destroyed or left attached to nothing when the cluster scales in and some of the instances are terminated due to the decreased load.
The giveaway to the correct answer lies in the fact that the question asks for a scalable, high-throughput, POSIX-compliant filesystem and this is pretty much the definition of Amazon EFS. EFS will scale larger than the largest provisioned IOPS EBS volume.

Issue with EBS burst balance AWS

I've got an EBS volume (16GB) attached to a EC2 instance that has full access to an RDS instance. The thing is I've extracted the DB to the RDS instance, so I don't use the EC2 instance for storing the web application database anymore. I did this because I was having a lot of problems with the EBS credits (they were consuming very quickly). I thought that by having the DB on a separate instance (RDS) this will decrease to almost cero the EBS credit consumption because I'm not reading nor writing on the EBS but on the RDS. However, the EBS credits keep consuming (and decrease to 0) every time users access to the web application and I don't understand why. Perhaps is because I still don't fully understand how EBS credit usage works... Can anyone enlighten me with this? Thanks a lot in advance.
You can review volume types including info on their burst credits here. You should also review I/O Characteristics and Monitoring. From that page:
If your I/O latency is higher than you require, check
VolumeQueueLength to make sure your application is not trying to drive
more IOPS than you have provisioned. If your application requires a
greater number of IOPS than your volume can provide, you should
consider using a larger gp2 volume with a higher base performance
level or an io1 volume with more provisioned IOPS to achieve faster
latencies.
You should review that metric and the others it mentions if this is causing you performance problems. If your IOPs are constantly above your baseline and causing them to queue you will always consume credits as fast as they are given.

Switching EBS volume type for ElasticSearch cluster from Magnetic to SSD

I have an elasticsearch cluster running on AWS which was started with Magnetic EBS volume.
Now due to increased load on the disk, I want to switch to SSD volume.
If I directly use the feature to "Configure Cluster" form the UI and switch volume type from Magnetic to GP-SSD. What is the risk of losing the existing data?
There is no risk of loosing data.Basically for administrative operations like scaling nodes,AWS creates the snapshots of the cluster and launch with the new configuration and map it to our endpoint(The user dont know the internal process).Even though they say zero downtime for cluster scaling,there have been experiences for us like the cluster went to red state for small amount of time when we scaled(There is no data loss).So its best to do the administrative activities when the cluster has very less load and user activity.
Regarding scaling the storage there no risk of data loss.If you are much concerned about you data take a snapshot of the cluster manually.AWS automatically take care of all the backups.For answering your question authoritatively, please refer to the aws elasticsearch service faq