diff --git a/knowledge base/cloud computing/aws/ebs.md b/knowledge base/cloud computing/aws/ebs.md index a825cc8..11c19c0 100644 --- a/knowledge base/cloud computing/aws/ebs.md +++ b/knowledge base/cloud computing/aws/ebs.md @@ -49,6 +49,32 @@ Volume costs depend on its type, provisioned size, IOPS and throughput.
Volumes are billed per-second increments, with a 60-seconds minimum period.
Refer [Amazon EBS pricing] +EBS volumes attached to instances based on the Nitro system are exposed as NVMe devices. + +Usage monitoring is available via instance-level metrics on CloudWatch per operations (`EBSReadOps` and `EBSWriteOps`) +and bytes transferred (`EBSReadBytes` and `EBSWriteBytes`). + +[Instances built on the AWS Nitro system] (_EBS-Optimized_) are capable of bursting performance.
+`large`, `xlarge`, and `2xlarge` instances provide burst balance metrics to give information about the percentage of I/O +and bytes credits remaining in the respective burst buckets: + +- `EBSIOBalance%` monitors the instance's I/O burst bucket. +- `EBSByteBalance%` monitors the instance's byte burst bucket. + +Large block workloads usually do not drive enough IOPS to deplete `EBSIOBalance%`, depleting `EBSByteBalance%` +instead.
+Small block workloads usually drive higher IOPS than bytes/second, dropping `EBSIOBalance%` faster than +`EBSByteBalance%`. + +Instances can drive EBS burst performance as long as `EBSIOBalance%` and `EBSByteBalance%` are above 0%.
+When the I/O activity is below the baseline rate, the burst buckets refill. + +The refill rate for burst buckets is the difference between the baseline rate and the I/O activity.
+In addition, burst buckets are topped off every 24 hours, allowing instances to have burst performance available for at +least 30 minutes per day. + +Refer [Amazon EBS-optimized instance types] for details + ## Volume types Refer [Amazon EBS volume types]. @@ -242,6 +268,8 @@ aws ec2 describe-volumes --filters "Name=volume-type,Values=gp2" --query 'Volume - [Extend the file system after resizing an EBS volume] - [Pricing][amazon ebs pricing] - [Hands-on Guide: How to migrate from gp2 to gp3 volumes and lower AWS cost] +- [Amazon EBS-optimized instance types] +- [Instances built on the AWS Nitro System] ### Sources @@ -252,6 +280,7 @@ aws ec2 describe-volumes --filters "Name=volume-type,Values=gp2" --query 'Volume - [Modify an Amazon EBS volume using Elastic Volumes operations] - [How do I increase or decrease the size of my EBS volume?] - [How Amazon EBS encryption works] +- [Improving application performance and reducing costs with Amazon EBS-Optimized Instance burst capability] [amazon ebs pricing]: https://aws.amazon.com/ebs/pricing/ [amazon ebs volume types]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html +[amazon ebs-optimized instance types]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html [archive amazon ebs snapshots]: https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-archive.html [automate snapshot lifecycles]: https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-ami-policy.html [choose the best amazon ebs volume type for your self-managed database deployment]: https://aws.amazon.com/blogs/storage/how-to-choose-the-best-amazon-ebs-volume-type-for-your-self-managed-database-deployment/ @@ -275,6 +305,8 @@ aws ec2 describe-volumes --filters "Name=volume-type,Values=gp2" --query 'Volume [extend the file system after resizing an ebs volume]: https://docs.aws.amazon.com/ebs/latest/userguide/recognize-expanded-volume-linux.html [how amazon ebs encryption works]: https://docs.aws.amazon.com/ebs/latest/userguide/how-ebs-encryption-works.html [how do i increase or decrease the size of my ebs volume?]: https://repost.aws/knowledge-center/ebs-increase-decrease-volume-size +[improving application performance and reducing costs with amazon ebs-optimized instance burst capability]: https://aws.amazon.com/blogs/compute/improving-application-performance-and-reducing-costs-with-amazon-ebs-optimized-instance-burst-capability/ +[instances built on the aws nitro system]: https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html [modify an amazon ebs volume using elastic volumes operations]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modify-volume.html [what is block storage?]: https://aws.amazon.com/what-is/block-storage/ diff --git a/knowledge base/cloud computing/aws/ec2.md b/knowledge base/cloud computing/aws/ec2.md index dc5e83c..2472e0d 100644 --- a/knowledge base/cloud computing/aws/ec2.md +++ b/knowledge base/cloud computing/aws/ec2.md @@ -20,7 +20,7 @@ Use an instance profile to allow an EC2 instance to use an IAM role. `T` instances launch as `unlimited` by default. Launch them in `standard` mode to avoid paying for surplus credits. -The instance type [_can_ be changed][change the instance type]. The procedure depends on the root volume, but does +The instance type [_can_ be changed][change the instance type]. The procedure depends on the root volume, and **does** require downtime. Clone EC2 instances by: @@ -189,7 +189,7 @@ Also see [CompleteLifecycleAction]. ## Image customization -Refer [ImageBuilder]. +Refer [Image Builder]. ## Further readings diff --git a/knowledge base/cloud computing/aws/rds.md b/knowledge base/cloud computing/aws/rds.md index 39c5e37..42e3685 100644 --- a/knowledge base/cloud computing/aws/rds.md +++ b/knowledge base/cloud computing/aws/rds.md @@ -3,6 +3,7 @@ 1. [TL;DR](#tldr) 1. [Engine](#engine) 1. [PostgreSQL](#postgresql) +1. [Burstable instances](#burstable-instances) 1. [Storage](#storage) 1. [Parameter Groups](#parameter-groups) 1. [Option Groups](#option-groups) @@ -13,16 +14,20 @@ 1. [Restore](#restore) 1. [Encryption](#encryption) 1. [Operations](#operations) - 1. [PostgreSQL: reduce allocated storage by migrating using transportable databases](#postgresql-reduce-allocated-storage-by-migrating-using-transportable-databases) + 1. [PostgreSQL: reduce allocated storage by migrating using transportable databases](#postgresql-reduce-allocated-storage-by-migrating-using-transportable-databases) 1. [Troubleshooting](#troubleshooting) 1. [ERROR: extension must be loaded via shared\_preload\_libraries](#error-extension-must-be-loaded-via-shared_preload_libraries) 1. [ERROR: must be superuser to alter _X_ roles or change _X_ attribute](#error-must-be-superuser-to-alter-x-roles-or-change-x-attribute) 1. [Transport fails asking for the remote user must have superuser, but it already does](#transport-fails-asking-for-the-remote-user-must-have-superuser-but-it-already-does) + 1. [The instance is unbearably slow](#the-instance-is-unbearably-slow) 1. [Further readings](#further-readings) 1. [Sources](#sources) ## TL;DR +`T` instances are burstable for CPU, EBS, and network.
+They are **always** configured for `Unlimited` mode in RDS. +
CLI usage @@ -139,9 +144,20 @@ Maintenance windows are paused when their DB instances are stopped. Refer [Understanding PostgreSQL roles and permissions]. +## Burstable instances + +`T` instances are burstable. + +Refer [the relative section in the EC2 article](ec2#burstable-instances), with the difference that, instances burst for +CPU, EBS, **and** network.
+They are also **always** configured for `Unlimited` mode in RDS. + +Burstable performance instances for RDS provide baseline levels of CPU, EBS and network utilization, with the ability to +burst all those utilization above the baseline levels. + ## Storage -Refer [Amazon RDS DB instance storage]. +Refer [Amazon RDS DB instance storage] and [EBS]. When selecting General Purpose SSD or Provisioned IOPS SSD, RDS automatically stripes storage across multiple volumes to enhance performance depending on the engine selected and the amount of storage requested: @@ -725,7 +741,8 @@ Actions involving altering protected roles or changing protected attributes are ### Transport fails asking for the remote user must have superuser, but it already does -Error message example: +
+ Error message example > ```plaintext > Cannot execute SQL 'SELECT transport.import_from_server( @@ -739,9 +756,42 @@ Error message example: > );' None: remote user must have superuser (or rds_superuser if on RDS) > ``` -_Speculative_ root cause: RDS did not finish to properly apply the settings. +
-Solution: reboot the source and target instance and retry. +
+ Speculative Root cause + +RDS did not finish to properly apply the settings. + +
+ +
+ Solution + +Reboot the source and target instance and retry. + +
+ +### The instance is unbearably slow + +
+ Root cause + +The instance might be out of burst credits. + +If the available burst credits are depleted or zero, then the CPU, storage, or network throughput includes heavy read +or write workloads and exceeds the instance type quotas. + +
+ +
+ Solution + +- Lower the throughput utilization, and/or +- Scale up to an instance type that has a higher baseline and maximum throughput.
+ Refer [Amazon EBS-optimized instance types] to choose which one. + +
## Further readings @@ -780,6 +830,7 @@ Solution: reboot the source and target instance and retry. [backup]: #backup +[ebs]: ebs.md [s3]: s3.md @@ -805,6 +856,7 @@ Solution: reboot the source and target instance and retry. [working with db instance read replicas]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html [working with parameter groups]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html [working with parameters on your rds for postgresql db instance]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Parameters.html +[amazon ebs-optimized instance types]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html [backing up login roles aka users and group roles]: https://www.postgresonline.com/article_pfriendly/81.html