aws_mapping.rst 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. AWS Dashboard
  2. -------------
  3. AWS has a particular dashboard as resources are found within different
  4. services. The following table lists the dashboard location of each resource,
  5. and the below screenshot shows how the switch between the various services.
  6. +------------------------+-----+
  7. | Instance | EC2 |
  8. +------------------------+-----+
  9. | MachineImage (Private) | EC2 |
  10. +------------------------+-----+
  11. | Volume | EC2 |
  12. +------------------------+-----+
  13. | Snapshot | EC2 |
  14. +------------------------+-----+
  15. | VMFirewall | EC2 |
  16. +------------------------+-----+
  17. | FloatingIP | EC2 |
  18. +------------------------+-----+
  19. | KeyPair | EC2 |
  20. +------------------------+-----+
  21. | VMFirewallRule | EC2 |
  22. +------------------------+-----+
  23. | Network | VPC |
  24. +------------------------+-----+
  25. | Subnet | VPC |
  26. +------------------------+-----+
  27. | Router | VPC |
  28. +------------------------+-----+
  29. | InternetGateway | VPC |
  30. +------------------------+-----+
  31. | Bucket | S2 |
  32. +------------------------+-----+
  33. | BucketObject | S2 |
  34. +------------------------+-----+
  35. .. figure:: captures/aws-services-dash.png
  36. :scale: 50 %
  37. :alt: EC2, VPC, and S3
  38. Resources in AWS are separated into three dashboards depending on the
  39. type of service handling the resources
  40. AWS - Labeled Resources
  41. -----------------------
  42. +------------------------+-------------------+----------------+----------------+----------+
  43. | Labeled Resource | AWS Resource Type | CB ID | CB Name | CB Label |
  44. +------------------------+-------------------+----------------+----------------+----------+
  45. | AWSInstance | Instance | Instance ID | Instance ID | tag:Name |
  46. +------------------------+-------------------+----------------+----------------+----------+
  47. | AWSMachineImage | AMI | AMI ID | AMI Name | tag:Name |
  48. +------------------------+-------------------+----------------+----------------+----------+
  49. | AWSNetwork | VPC | VPC ID | VPC ID | tag:Name |
  50. +------------------------+-------------------+----------------+----------------+----------+
  51. | AWSSubnet | Subnet | Subnet ID | Subnet ID | tag:Name |
  52. +------------------------+-------------------+----------------+----------------+----------+
  53. | AWSRouter | Route Table | Route Table ID | Route Table ID | tag:Name |
  54. +------------------------+-------------------+----------------+----------------+----------+
  55. | AWSVolume | Volume | Volume ID | Volume ID | tag:Name |
  56. +------------------------+-------------------+----------------+----------------+----------+
  57. | AWSSnapshot | Snapshot | Snapshot ID | Snapshot ID | tag:Name |
  58. +------------------------+-------------------+----------------+----------------+----------+
  59. | AWSVMFirewall | Security Group | Group ID | Group Name | tag:Name |
  60. +------------------------+-------------------+----------------+----------------+----------+
  61. The resources listed above are labeled, they thus have both the `name` and
  62. `label` properties in CloudBridge. These resources require a mandatory `label`
  63. parameter at creation. For all labeled resources, the `label` property in AWS
  64. maps to the tag with `key:Name`. However, unlike in Azure where all resources
  65. have names, only some AWS resources have an unchangeable name by which to
  66. identify them. Thus, for most AWS resources, the `name` property maps to the
  67. ID, in order to preserve the concept of names being a unique identifier,
  68. even if they are not easily readable in this context. For resources that do
  69. support naming in AWS, the `name` will be generated from the `label` given at
  70. creation, consisting of up to 55 characters from the label, followed by a UUID.
  71. The label property can subsequently be changed, but the name property will
  72. be set at creation and remain unchanged. Finally, labeled resources support
  73. a `label` parameter for the `find` method in their corresponding services.
  74. The below screenshots will help map these properties to AWS objects in the
  75. web portal.
  76. .. figure:: captures/aws-instance-dash.png
  77. :scale: 50 %
  78. :alt: name, ID, and label properties for AWS EC2 Instances
  79. The CloudBridge `name` and `ID` properties map to the unchangeable
  80. resource ID in AWS when the resource does not allow for an unchangeable
  81. name. The `label` property maps to the tag with key 'Name' for all
  82. resources in AWS. By default, this label will appear in the first
  83. column.
  84. .. figure:: captures/az-ami-dash.png
  85. :scale: 50 %
  86. :alt: name, ID, and label properties for AWS EC2 AMIs
  87. When an AWS resource allows for an unchangeable name, the CloudBridge
  88. `ID` property maps to the Resource ID, while the `Name` property maps to
  89. the Resource Name. The `label` property maps to the tag with key 'Name'
  90. for all resources in AWS. By default, this label will appear in the first
  91. column.
  92. AWS - Unlabeled Resources
  93. ---------------------------
  94. +-----------------------+--------------------+-------+---------+----------+
  95. | Unlabeled Resource | AWS Resource Type | CB ID | CB Name | CB Label |
  96. +-----------------------+--------------------+-------+---------+----------+
  97. | AWSKeyPair | Key Pair | Name | Name | - |
  98. +-----------------------+--------------------+-------+---------+----------+
  99. | AWSBucket | Bucket | Name | Name | - |
  100. +-----------------------+--------------------+-------+---------+----------+
  101. | AWSBucketObject | Bucket Object | Key | Key | - |
  102. +-----------------------+--------------------+-------+---------+----------+
  103. The resources listed above are unlabeled. They thus only have the `name`
  104. property in CloudBridge. These resources require a mandatory `name`
  105. parameter at creation, which will directly map to the unchangeable `name`
  106. property. Additionally, for these resources, the `ID` property also maps to
  107. the `name` in AWS, as these resources don't have an `ID` in the
  108. traditional sense and can be located by name. Finally, unlabeled resources
  109. support a `name` parameter for the `find` method in their corresponding
  110. services.
  111. .. figure:: captures/aws-bucket.png
  112. :scale: 50 %
  113. :alt: list of buckets on AWS dashboard
  114. Buckets can be found in the Amazon S3 portal. BucketObjects are contained
  115. within each Bucket.
  116. AWS - Special Unlabeled Resources
  117. -----------------------------------
  118. +--------------------+------------------------+-------+------------------------------------------------------------------------+----------+
  119. | Unlabeled Resource | AWS Resource Type | CB ID | CB Name | CB Label |
  120. +--------------------+------------------------+-------+------------------------------------------------------------------------+----------+
  121. | AWSFloatingIP | Elastic IP | ID | [public_ip] | - |
  122. +--------------------+------------------------+-------+------------------------------------------------------------------------+----------+
  123. | AWSInternetGateway | Internet Gateway | ID | tag:Name | - |
  124. +--------------------+------------------------+-------+------------------------------------------------------------------------+----------+
  125. | AWSVMFirewallRule | Network Security Rules | ID | Generated: [direction]-[protocol]-[from_port]-[to_port]-[cidr]-[fw_id] | - |
  126. +--------------------+------------------------+-------+------------------------------------------------------------------------+----------+
  127. While these resources are similarly unlabeled, they do not follow the same
  128. general rules as the ones listed above. Firstly, they differ by the fact
  129. that they take neither a `name` nor a `label` parameter at creation.
  130. Moreover, each of them has other special properties.
  131. The FloatingIP resource has a traditional resource ID, but instead of a
  132. traditional name, its `name` property maps to its Public IP.
  133. Moreover, the corresponding `find` method for Floating IPs can thus help
  134. find a resource by `Public IP Address`.
  135. In terms of the gateway, given that gateways are not their own objects in
  136. other providers, we do not treat them like labeled resources in AWS although
  137. they could support labels. Thus, the internet gateway create method does not
  138. take a name parameter, and the `name` property is set automatically to a
  139. default value. Note that since this value is stored in the tag with key Name,
  140. the AWS dashboard does allow for its modification, although that is not
  141. encouraged as the default name is expected for the
  142. `get_or_create_inet_gateway` method.
  143. Finally, Firewall Rules in AWS differ from traditional unlabeled resources
  144. by the fact that they do not take a `name` parameter at creation, and the
  145. `name` property is automatically generated from the rule's properties, as
  146. shown above. These rules can be found within each Firewall (i.e. Security
  147. Group) in the AWS EC2 portal, and will not have any name in the AWS dashboard