report: edits in aws methodology section 54/34354/1
authorMaciek Konstantynowicz <mkonstan@cisco.com>
Mon, 8 Nov 2021 21:17:53 +0000 (21:17 +0000)
committerPeter Mikus <pmikus@cisco.com>
Tue, 9 Nov 2021 10:32:00 +0000 (10:32 +0000)
Edits include:
- add description of used testbed topologies.
- cleaned up references.
- other editing nits.

Change-Id: I43069541f3da8e844529a00a127fb1a360197647
Signed-off-by: Maciek Konstantynowicz <mkonstan@cisco.com>
(cherry picked from commit 531215332c4b4374a5cd7e1317de506f59a7683a)

docs/report/introduction/methodology_aws/aws_ami.rst
docs/report/introduction/methodology_aws/aws_instances.rst
docs/report/introduction/methodology_aws/aws_terraform.rst
docs/report/introduction/methodology_aws/index.rst

index 0eebdf9..264da01 100644 (file)
@@ -1,35 +1,40 @@
-Amazon Machine Images
----------------------
-
-An :abbr:`AMI (Amazon Machine Image)` provides the information required to
-launch an instance. CSIT is using Amazon :abbr:`EBS (Elastic Block Store)` where
-the root device for an instance launched from the AMI is a volume created from
-an Amazon EBS snapshot.
-
-A the TG and SUT instances have slightly different software requirements,
-we are defining two AMIs for TG and SUT separately. AMI details examples:
-
-TG:
-- AMI Name: csit_c5n_ubuntu_focal_tg
-- Platform details: Linux/UNIX
-- Architecture: x86_64
-- Usage operation: RunInstances
-- Image Type: machine
-- Virtualization type: hvm
-- Description: CSIT TG image based on Ubuntu Focal
-- Root Device Name: /dev/sda1
-- Root Device Type: ebs
-
-SUT:
-- AMI Name: csit_c5n_ubuntu_focal_sut
-- Platform details: Linux/UNIX
-- Architecture: x86_64
-- Usage operation: RunInstances
-- Image Type: machine
-- Virtualization type: hvm
-- Description: CSIT SUT image based on Ubuntu Focal
-- Root Device Name: /dev/sda1
-- Root Device Type: ebs
+.. _csit_ami:
+
+CSIT Amazon Machine Images
+--------------------------
+
+An Amazon Machine Image (AMI) provides the information required to
+launch an instance. CSIT is using Amazon Elastic Block Store (EBS) where
+the root device for an instance launched from the AMI is a volume
+created from an Amazon EBS snapshot.
+
+A the TG and SUT instances have slightly different software
+requirements, we are defining two AMIs for TG and SUT separately. AMI
+details examples:
+
+- TG:
+
+  - AMI Name: csit_c5n_ubuntu_focal_tg
+  - Platform details: Linux/UNIX
+  - Architecture: x86_64
+  - Usage operation: RunInstances
+  - Image Type: machine
+  - Virtualization type: hvm
+  - Description: CSIT TG image based on Ubuntu Focal
+  - Root Device Name: /dev/sda1
+  - Root Device Type: ebs
+
+- SUT:
+
+  - AMI Name: csit_c5n_ubuntu_focal_sut
+  - Platform details: Linux/UNIX
+  - Architecture: x86_64
+  - Usage operation: RunInstances
+  - Image Type: machine
+  - Virtualization type: hvm
+  - Description: CSIT SUT image based on Ubuntu Focal
+  - Root Device Name: /dev/sda1
+  - Root Device Type: ebs
 
 Both TG and SUT AMIs are created manually before launching topology and are not
 part of automated scripts. To create CSIT AMIs:
@@ -42,4 +47,5 @@ part of automated scripts. To create CSIT AMIs:
 
 Building AMIs requires Hashicorp Packer with Amazon plugin installed.
 
-.. [aws_ami] `Amazon Machine Images <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html>`_
+For more information, see
+`Amazon Machine Images <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html>`_.
index 0df0321..18ae659 100644 (file)
@@ -1,22 +1,40 @@
-Instances
----------
+AWS Performance Testbeds
+------------------------
 
-CSIT is using C5n instances for high compute applications that can take
-advantage of improved network throughput and packet rate performance. C5n
-instances offers up to 100 Gbps network bandwidth and increased memory over
-comparable C5 instances [aws_it]_.
+CSIT implements two virtual machine topology types running in AWS EC2:
 
-Features:
+- **2-Node Topology**: Consists of one EC2 instance as a System Under
+  Test (SUT) and one EC2 instance acting as a Traffic Generator
+  (TG), with both instances connected into a ring topology. Used for
+  executing tests that require frame encapsulations supported by TG.
 
-- 3.0 GHz Intel Xeon Platinum processors with Intel Advanced Vector Extension
-  512 (AVX-512) instruction set.
-- Sustained all core Turbo frequency of up to 3.4GHz, and single core turbo
-  frequency of up to 3.5 GHz.
-- Requires HVM AMIs that include drivers for ENA and NVMe [aws_ena]_.
-- Network bandwidth increases to up to 100 Gbps, delivering increased
-  performance for network intensive applications.
-- Powered by the AWS Nitro System, a combination of dedicated hardware and
-  lightweight hypervisor.
+- **3-Node Topology**: Consists of two EC2 instances acting as a Systems
+  Under Test (SUTs) and one EC2 instance acting as a Traffic Generator
+  (TG), with all instances connected into a ring topology. Used for
+  executing tests that require frame encapsulations not supported by TG
+  e.g. certain overlay tunnel encapsulations and IPsec.
+
+AWS EC2 Instances
+-----------------
+
+CSIT is using AWS EC2 C5n instances as System Under Test and TG virtual
+machines. C5n instances got selected to take advantage of high network
+throughput and packet rate performance. C5n instances offer up to 100
+Gbps network bandwidth and increased memory over comparable C5
+instances. For more information, see
+`Instance types <https://aws.amazon.com/ec2/instance-types/>`_.
+
+C5n features:
+
+- 3.0 GHz Intel Xeon Platinum (Skylake) processors with Intel AVX-512
+  instructions.
+- Sustained all core Turbo frequency of up to 3.4GHz, and single core
+  turbo frequency of up to 3.5 GHz.
+- Requires HVM AMIs (Amazon Machine Images) that include drivers for ENA
+  and NVMe. See :ref:`csit_ami` for more information.
+- Network bandwidth to up to 100 Gbps.
+- Powered by the AWS Nitro System, a combination of dedicated hardware
+  and lightweight hypervisor.
 
 +-------------+------+--------------+------------------------+-----------------------------+----------------------+
 | Model       | vCPU | Memory (GiB) | Instance Storage (GiB) | Network Bandwidth (Gbps)*** | EBS Bandwidth (Mbps) |
@@ -36,21 +54,24 @@ Features:
 |c5n.metal    |   72 |       192    |        EBS-Only        |                         100 |               19,000 |
 +-------------+------+--------------+------------------------+-----------------------------+----------------------+
 
-CSIT is configured by default to use `c5n.4xlarge` in `eu-central-1` AWS region
-due to allocation stability issues with `c5n.9xlarge` in `eu-central-1` region.
+CSIT is configured by default to use `c5n.4xlarge` in `eu-central-1` AWS
+region due to allocation stability issues with `c5n.9xlarge` in
+`eu-central-1` region.
 
 
-AWS Elastic Network Adapter (ENA)
----------------------------------
+AWS EC2 Networking
+------------------
 
-Enhanced networking uses single root I/O virtualization (SR-IOV) to provide
-high-performance networking capabilities on supported instance types. SR-IOV is
-a method of device virtualization that provides higher I/O performance and lower
-CPU utilization when compared to traditional virtualized network interfaces
-[aws_ena]_.
+CSIT EC2 instances are equipped with AWS Elastic Network Adapter
+(ENA) supporting AWS enhanced networking. Enhanced networking uses
+single root I/O virtualization (SR-IOV) to provide high-performance
+networking capabilities. For more information, see
+`Elastic Network Adapter <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html>`_.
 
-Current advertised limits are captured in [aws_limits]_.
+For more information about the current advertised AWS ENA performance
+limits, see
+`Computed optimized instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/compute-optimized-instances.html>`_.
 
-.. [aws_it] `Instance types <https://aws.amazon.com/ec2/instance-types/>`_
-.. [aws_ena] `Elastic Network Adapter <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html>`_
-.. [aws_limits] `<https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/compute-optimized-instances.html>`_
\ No newline at end of file
+CSIT DUTs make use of AWS ENA DPDK driver supplied by AWS and specified
+in
+`amzn drivers dpdk <https://github.com/amzn/amzn-drivers/tree/master/userspace/dpdk>`_.
index 7c73e04..ebbef90 100644 (file)
@@ -1,11 +1,12 @@
-Terraform-aws-csit modules
---------------------------
+AWS Deployments
+---------------
 
-Terraform-aws-csit module is IaaC - infrastructure as a code. Module uses the
-Amazon Web Services (AWS) provider to interact with resources provided by AWS
-to orchestrate virtual environment for running CSIT tests.
-
-- `aws <https://registry.terraform.io/providers/hashicorp/aws/latest/>`_.
+CSIT performance testbed deployments in AWS rely on
+Infrastructure-as-a-C (IaaC) Terraform AWS providers. Terraform
+providers specified in CSIT interact with resources provided by AWS to
+orchestrate virtual environment for running CSIT performance tests. For
+more information, see
+`Terraform Registry aws <https://registry.terraform.io/providers/hashicorp/aws/latest/>`_.
 
 Compatibility
 ~~~~~~~~~~~~~
@@ -21,72 +22,72 @@ Compatibility
 Requirements
 ~~~~~~~~~~~~
 
-Required modules and provider
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+- Required Modules and Providers
 
-- `aws <https://registry.terraform.io/providers/hashicorp/aws/latest>`_.
-- `null <https://registry.terraform.io/providers/hashicorp/null/latest>`_.
-- `tls <https://registry.terraform.io/providers/hashicorp/tls>`_.
-- `vault <https://registry.terraform.io/providers/hashicorp/vault>`_.
+  - `Terraform Registry aws <https://registry.terraform.io/providers/hashicorp/aws/latest>`_.
+  - `Terraform Registry null <https://registry.terraform.io/providers/hashicorp/null/latest>`_.
+  - `Terraform Registry tls <https://registry.terraform.io/providers/hashicorp/tls>`_.
+  - `Terraform Registry vault <https://registry.terraform.io/providers/hashicorp/vault>`_.
 
-Required software
-^^^^^^^^^^^^^^^^^
+- Required software
 
-- `Vault <https://releases.hashicorp.com/vault/>`_ service available on
-  specified ip/port.
+  - `Vault <https://releases.hashicorp.com/vault/>`_ service available
+    on specified ip/port.
 
 Usage
 ~~~~~
 
 - OPTIONAL: Enable logging
-  Terraform does not have logging enabled by default, to enable logging
-  to stderr, set up TF_LOG variable with specified loglevel:
-  Available loglevels: TRACE, DEBUG, INFO, WARN, ERROR
 
-  ::
+  - Terraform does not have logging enabled by default, to enable logging
+    to stderr, set up TF_LOG variable with specified loglevel.
+  - Available loglevels: TRACE, DEBUG, INFO, WARN, ERROR:
 
-    export TF_LOG="LOGLEVEL"
+    ::
 
-  It is also possible to store logged output to a file by setting up
-  TF_LOG_PATH variable:
+      export TF_LOG="LOGLEVEL"
 
-  ::
+  - It is also possible to store logged output to a file by setting up
+    TF_LOG_PATH variable:
 
-    export TF_LOG_PATH="path/to/logfile"
+    ::
+
+      export TF_LOG_PATH="path/to/logfile"
 
 - Run Terraform in a given root module folder depending on chosen testbed
-  topology. Terraform will deploy and configure instances and other resources,
-  all of these resources can be later identified on AWS via Environment tag.
-  By default, Environment tag "CSIT-AWS" is used.
-  Example:
+  topology.
 
-  ::
+  - Terraform will deploy and configure instances and other resources,
+    all of these resources can be later identified on AWS via
+    Environment tag.
+  - By default, Environment tag "CSIT-AWS" is used. Example:
 
-    cd fdio.infra.terraform/2n_aws_c5n/
-    terraform init
-    terraform plan
-    terraform apply
+    ::
 
-  This will deploy environment with default values, you can check the defaults
-  in ./2n_aws_c5n/main.tf and ./2n_aws_c5n/variables.tf files
+      cd fdio.infra.terraform/2n_aws_c5n/
+      terraform init
+      terraform plan
+      terraform apply
 
-  If you would like to change some of these values, you can:
+  - This will deploy environment with default values, you can check the
+    defaults in `./2n_aws_c5n/main.tf` and `./2n_aws_c5n/variables.tf` 
+    files.
+  - If you would like to change some of these values, you can:
 
-  1. Set up TF_VAR_* environment variables prior to running 'terraform apply':
+    - Set up TF_VAR_* environment variables prior to running 'terraform apply':
 
-     ::
+      ::
 
-       export TF_VAR_testbed_name="testbed1"
+        export TF_VAR_testbed_name="testbed1"
 
-  2. Use '-var=varname=value' flag when running 'terraform apply':
+    - Use '-var=varname=value' flag when running 'terraform apply':
 
-     ::
+      ::
 
-       terraform apply -var=testbed_name=testbed1
+        terraform apply -var=testbed_name=testbed1
 
-  Note:
-  Only variables defined in variables.tf file of the root module can be
-  changed using these methods.
+    - Note: Only variables defined in `variables.tf` file of the root
+      module can be changed using these methods.
 
 - To clean up the AWS environment and remove all used resources, run:
 
@@ -94,12 +95,14 @@ Usage
 
     terraform destroy
 
-Example usage
-~~~~~~~~~~~~~
+Deployment Example
+~~~~~~~~~~~~~~~~~~
 
-These are the default values for the AWS modules. The following example is
-2n topology (3n topology variant is very similar). Few variables are defined in
-a `variable.tf` file.
+Following is an example of a 
+`Terraform deploy module <https://git.fd.io/csit/tree/fdio.infra.terraform/2n_aws_c5n/main.tf>`_
+for a CSIT 2-Node testbed topology with AWS variables set to default
+values. A number of variables is also defined in a
+`separate Terraform variable file <https://git.fd.io/csit/tree/fdio.infra.terraform/2n_aws_c5n/variables.tf>`_.
 
 ::
 
@@ -163,9 +166,10 @@ Secrets & Credentials
 Set credentials manually
 ^^^^^^^^^^^^^^^^^^^^^^^^
 
-To set the credentials manually you first need to tell the module to not fetch
-credentials from Vault. To do that, set `provider "aws"` `access_key` and
-`secret_key` to custom value or use credentials file as a source.
+To set the credentials manually you first need to tell the module to not
+fetch credentials from Vault. To do that, set `provider "aws"`
+`access_key` and `secret_key` to custom value or use credentials file
+as a source.
 
 ::
 
index 5da5253..3e247dc 100644 (file)
@@ -1,5 +1,5 @@
-Amazon Web Services
-===================
+Testing in AWS EC2
+==================
 
 .. toctree::