|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- ---
- id: cluster
- title: Clusters
- ---
-
- Cluster allows you group (or clustering) the nodes in an isolated group.
-
- ## Basic
-
- Cluster represents a local cluster context.
-
- You can create a cluster context with Cluster class. And you can also connect the nodes in a cluster to other nodes outside a cluster.
-
- ```python
- from diagrams import Cluster, Diagram
- from diagrams.aws.compute import ECS
- from diagrams.aws.database import RDS
- from diagrams.aws.network import Route53
-
- with Diagram("Simple Web Service with DB Cluster", show=False):
- dns = Route53("dns")
- web = ECS("service")
-
- with Cluster("DB Cluster"):
- db_primary = RDS("primary")
- db_primary - [RDS("replica1"),
- RDS("replica2")]
-
- dns >> web >> db_primary
- ```
-
- ![simple web service with db cluster diagram](/img/simple_web_service_with_db_cluster_diagram.png)
-
- ## Nested Clusters
-
- Nested clustering is also possible.
-
- ```python
- from diagrams import Cluster, Diagram
- from diagrams.aws.compute import ECS, EKS, Lambda
- from diagrams.aws.database import Redshift
- from diagrams.aws.integration import SQS
- from diagrams.aws.storage import S3
-
- with Diagram("Event Processing", show=False):
- source = EKS("k8s source")
-
- with Cluster("Event Flows"):
- with Cluster("Event Workers"):
- workers = [ECS("worker1"),
- ECS("worker2"),
- ECS("worker3")]
-
- queue = SQS("event queue")
-
- with Cluster("Processing"):
- handlers = [Lambda("proc1"),
- Lambda("proc2"),
- Lambda("proc3")]
-
- store = S3("events store")
- dw = Redshift("analytics")
-
- source >> workers >> queue >> handlers
- handlers >> store
- handlers >> dw
- ```
-
- ![event processing diagram](/img/event_processing_diagram.png)
-
- > There is no depth limit of nesting. Feel free to create nested clusters as deep as you want.
|