EBS Volumes used by RDS instance - amazon-web-services

Currently I am going through the Storage for Amazon RDS documentation.
This document mentions that - Most of Amazon RDS uses Amazon Elastic Block Store (Amazon EBS) volumes for database and log storage;
It also mentions that - Depending on the amount of storage requested, Amazon RDS automatically stripes across multiple Amazon EBS volumes to enhance IOPS performance.
So my question is: How EBS volumes are allocated to RDS instance?
Whether these are the EBS volumes that are created automatically and attached to RDS instance during it's launch? (EBS volumes on which user don't have control??)
Or these are the EBS volumes which are attached to EC2 instance/instances within the same VPC in which I would like to launch my RDS instance?
Thx!

You have no visibility into the EBS volumes used by your RDS instances. RDS is a managed service. You won't be able to see the EC2 instances or the EBS volumes or the S3 buckets used by your RDS databases.

Related

AWS EBS(Elastic Block Store) vs EFS(Elastic File System) communication with EC2 instance

It might be a noob question but couldn't find anything solid on the web so here I go.
I know that both EBS (Elastic Block Store) and EFS (Elastic File System) communicate with EC2 over the network (data transmission). To make an EFS work with EC2, I read that traffic on the NFS port must be allowed by the inbound security group (attached to EC2 instance).
But, I don't think any such configuration is required for EBS. So, why we don't need any configuration for EBS and yet it works?
Amazon EBS volumes attach to Amazon EC2 instances as devices via a separate network connection to the host computer. It does not attach via a VPC, so Security Groups are not available.
Amazon EBS volumes are bandwidth restrictions on Amazon EBS volumes, which vary by Volume Type. See: Amazon EBS volume types - Amazon Elastic Compute Cloud
Older Amazon EC2 instance types could increase bandwidth to EBS volumes by using Amazon EBS Optimization that uses "an optimized configuration stack and provides additional, dedicated capacity for Amazon EBS I/O". Modern EC2 instances have this enabled by default.
In contrast, Amazon EFS is attached to instances via a VPC, so Security Group rules apply.

Is it possible to directly access an amazon workspace volume?

I think Workspaces uses EBS, but the volume itself is not listed under Volumes unlike EC2 instances. Are workspaces volumes managed by AWS itself?

Is it possible to have AWS EBS persistent volumes on an on-prem K8s cluster?

I wanted to use some AWS EBS volumes as a persistent storage for a deployment. I've configured the storage class and a PV, but I haven't been able to configure a Cloud provider.
The K8s documentation (as far as I understand) is for Kubernetes clusters running on a specific cloud provider, instead of an on-prem cluster using cloud resources. As the title says: Is it possible to have AWS EBS persistent volumes on an on-prem K8s cluster?
If so, can you a cloud provider to your existing cluster? (everything I've found online suggests that you add it when running kubeadm init).
Thank you!
You cannot use EBS storage in the same manner as you would when running on the cloud but you can use AWS Storage Gateway to store snapshots/backups of your volumes in cloud.
AWS Storage Gateway is a hybrid cloud storage service that connects
your existing on-premises environments with the AWS Cloud
The feature you are intrested in is called Volume Gateway
The Volume Gateway presents your applications block storage volumes
using the iSCSI protocol. Data written to these volumes can be
asynchronously backed up as point-in-time snapshots of your volumes,
and stored in the cloud as Amazon EBS snapshots.
Unfortunately you might not be able to automate creation of volumes in a way you could when running directly on AWS so some things you might have to do manually.
No you cannot because EBS can only be mounted inside AWS (usually in EC2 instances).

How does an EBS volume in an Availability zone get restricted only to a specific AWS account & its users?

In AWS, an EC2 instance is launched within a subnet created in an Availability Zone which is again, in a VPC. So, the VPC can be thought of like a container to which only the AWS account and its users have access to. But when creating EBS volumes, only the Availability Zone is asked for / provided and the same EBS volume can be attached to any EC2 instance irrespective of the VPC it belongs to (Of course, for the same AWS account only). My question is - How does AWS prevent other AWS accounts from seeing this EBS volume present in the AZ? Is that implementation abstracted by AWS?
An Amazon VPC is a virtual construct that is used to connect virtual computers according to traditional networking. Resources (eg EC2 instances, RDS databases) can be connected via a VPC, which determines how network traffic flows between them. It is not necessarily how the resources are physically created.
An Availability Zone is a physical data center (or a group of data centers). Resources are created in an AZ, which determines their physical location. For example, an Amazon EBS volume resides in a data center, so it is in only one AZ. It can be logically connected to any EC2 instance in the same account in the same AZ.
Amazon EBS volumes are connected via a backplane that is invisible to the resources. It just magically "attaches" to the instance. It does not use the same network as a VPC.
The Amazon EBS service will only provide EBS volumes to EC2 instances in the same AWS account.
According to AWS Shared Responsibility Model:
AWS responsibility “Security of the Cloud” - AWS is responsible for
protecting the infrastructure that runs all of the services offered in
the AWS Cloud. This infrastructure is composed of the hardware,
software, networking, and facilities that run AWS Cloud services.
AWS provides isolation of all resources between accounts, and this implementation is abstracted, and a part of AWS responsibility.
In addition, it is recommended to Encrypt EBS Volumes, it is free and doesn't impact volume performance.

Will AWS transfer data between availability zones if I request data from RDS?

I have a Multi-AZ ECS cluster with EC2 instances and an Aurora RDS cluster with cross-az read replicas. I use the cluster URL for selecting data in RDS.
Does the cluster automatically forward my request to the RDS in the same AZ, if it is possible? If not, how can I prevent unnecessary data transfer between availability zones? (I want to use RDS in different AZ, if and only if the RDS in the same AZ is out of service)
According to AWS documentation:
"Data transferred between Amazon RDS and Amazon EC2 Instances in the same Availability Zone is free."
"Amazon RDS DB Instances inside VPC: For data transferred between an Amazon EC2 instance and Amazon RDS DB Instance in different Availability Zones of the same Region, Amazon EC2 Regional Data Transfer charges apply on both sides of transfer."