|
| 1 | +# Existing EKS Cluster AWS Mixed Observability Accelerator |
| 2 | + |
| 3 | +## Architecture |
| 4 | + |
| 5 | +The following figure illustrates the architecture of the pattern we will be deploying for Existing EKS Cluster AWS Mixed Observability pattern, using AWS native tools such as CloudWatch and X-Ray and Open Source tools such as Amazon Distro for OpenTelmetry (ADOT) and Prometheus Node Exporter. |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +This example makes use of CloudWatch, as a metric and log aggregation layer, while X-Ray is used as a trace-aggregation layer. In order to collect the metrics and traces, we use the Open Source ADOT collector. Fluent Bit is used to export the logs to CloudWatch Logs. |
| 10 | + |
| 11 | +In this architecture, AWS X-Ray provides a complete view of requests as they travel through your application and filters visual data across payloads, functions, traces, services, and APIs. X-Ray also allows you to perform analytics, to gain powerful insights about your distributed trace data. |
| 12 | + |
| 13 | +Utilizing CloudWatch and X-Ray as an aggregation layer allows for a fully-managed scalable telemetry backend. In this example we get those benefits while still having the flexibility and rapid development of the Open Source collection tools. |
| 14 | + |
| 15 | +## Objective |
| 16 | + |
| 17 | +This pattern aims to add Observability on top of an existing EKS cluster, with a mixture of AWS native and open source managed AWS services. |
| 18 | + |
| 19 | +## Prerequisites: |
| 20 | + |
| 21 | +Ensure that you have installed the following tools on your machine: |
| 22 | + |
| 23 | +1. [aws cli](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) |
| 24 | +2. [kubectl](https://Kubernetes.io/docs/tasks/tools/) |
| 25 | +3. [cdk](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) |
| 26 | +4. [npm](https://docs.npmjs.com/cli/v8/commands/npm-install) |
| 27 | + |
| 28 | +You will also need: |
| 29 | + |
| 30 | +1. either an existing EKS cluster, or you can setup a new one with [Single New EKS Cluster Observability Accelerator](./single-new-eks-cluster.md) |
| 31 | +2. an OpenID Connect (OIDC) provider, associated to the above EKS cluster (note: Single EKS Cluster Pattern takes care of that for you) |
| 32 | + |
| 33 | +## Deploying |
| 34 | + |
| 35 | +1. Edit `~/.cdk.json` by setting the name of your existing cluster: |
| 36 | + |
| 37 | +```json |
| 38 | + "context": { |
| 39 | + ... |
| 40 | + "existing.cluster.name": "...", |
| 41 | + ... |
| 42 | + } |
| 43 | +``` |
| 44 | + |
| 45 | +2. Edit `~/.cdk.json` by setting the kubectl role name; if you used Single New EKS Cluster Observability Accelerator to setup your cluster, the kubectl role name would be provided by the output of the deployment, on your command-line interface (CLI): |
| 46 | + |
| 47 | +```json |
| 48 | + "context": { |
| 49 | + ... |
| 50 | + "existing.kubectl.rolename":"...", |
| 51 | + ... |
| 52 | + } |
| 53 | +``` |
| 54 | + |
| 55 | +3. Run the following command from the root of this repository to deploy the pipeline stack: |
| 56 | + |
| 57 | +```bash |
| 58 | +make build |
| 59 | +make pattern existing-eks-mixed-observability deploy |
| 60 | +``` |
| 61 | + |
| 62 | +## Verify the resources |
| 63 | + |
| 64 | +Please see [Single New EKS Cluster AWS Mixed Observability Accelerator](./single-new-eks-mixed-observability.md). |
| 65 | + |
| 66 | +## Teardown |
| 67 | + |
| 68 | +You can teardown the whole CDK stack with the following command: |
| 69 | + |
| 70 | +```bash |
| 71 | +make pattern existing-eks-mixed-observability destroy |
| 72 | +``` |
| 73 | + |
| 74 | +If you setup your cluster with Single New EKS Cluster Observability Accelerator, you also need to run: |
| 75 | + |
| 76 | +```bash |
| 77 | +make pattern single-new-eks-cluster destroy |
| 78 | +``` |
0 commit comments