--- 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_main = RDS("main") db_main - [RDS("replica1"), RDS("replica2")] dns >> web >> db_main ``` ![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.