{"id":16686,"date":"2024-12-20T09:45:37","date_gmt":"2024-12-20T17:45:37","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=16686"},"modified":"2025-06-13T17:14:21","modified_gmt":"2025-06-14T00:14:21","slug":"xdcr-couchbase-aws-eks","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/xdcr-couchbase-aws-eks\/","title":{"rendered":"Configura\u00e7\u00e3o do XDCR Cross-VPC entre clusters do Amazon EKS"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Nos sistemas distribu\u00eddos modernos, a capacidade de replicar dados entre ambientes separados \u00e9 crucial para garantir a alta disponibilidade, a recupera\u00e7\u00e3o de desastres e a otimiza\u00e7\u00e3o do desempenho. O recurso XDCR (Cross Data Center Replication) do Couchbase permite a replica\u00e7\u00e3o cont\u00ednua de dados entre clusters, possibilitando o compartilhamento robusto de dados em ambientes geogr\u00e1fica ou logicamente isolados.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Este guia o orientar\u00e1 na configura\u00e7\u00e3o do XDCR entre dois clusters do Couchbase hospedados em clusters separados do Amazon EKS (Elastic Kubernetes Service) em diferentes VPCs. Vamos nos aprofundar em cada etapa, desde a configura\u00e7\u00e3o da infraestrutura at\u00e9 a configura\u00e7\u00e3o do DNS para comunica\u00e7\u00e3o entre clusters e a implanta\u00e7\u00e3o do Couchbase para replica\u00e7\u00e3o em tempo real. Ao final deste passo a passo, voc\u00ea ter\u00e1 uma configura\u00e7\u00e3o pronta para produ\u00e7\u00e3o com as habilidades para replicar isso em seu ambiente.<\/span><\/p>\n<h2>Pr\u00e9-requisitos<\/h2>\n<p><span style=\"font-weight: 400;\">Para seguir este guia, verifique se voc\u00ea tem:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>CLI DO AWS<\/b><span style=\"font-weight: 400;\"> instalado e configurado<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Uma conta do AWS com permiss\u00f5es para criar VPCs, clusters EKS e grupos de seguran\u00e7a<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Familiaridade com o Kubernetes e ferramentas como kubectl e Helm<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Helm instalado para implementar o Couchbase<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Conhecimento b\u00e1sico de conceitos de rede, incluindo blocos CIDR, tabelas de roteamento e DNS<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr \/>\n<h3>Etapa 1: implantar clusters EKS em VPCs separadas<\/h3>\n<h4>O que estamos fazendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Criaremos dois clusters do Kubernetes, Cluster1 e Cluster2, em VPCs separados usando <code>eksctl<\/code>. Cada cluster operar\u00e1 de forma independente e ter\u00e1 seu pr\u00f3prio bloco CIDR para evitar conflitos de IP.<\/span><\/p>\n<h4>Por que isso \u00e9 importante?<\/h4>\n<p><span style=\"font-weight: 400;\">Essa separa\u00e7\u00e3o garante:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Isolamento para melhor seguran\u00e7a e gerenciamento<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Escalabilidade e flexibilidade para lidar com cargas de trabalho<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Regras claras de roteamento entre clusters<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h4>Comandos para criar clusters<\/h4>\n<h5>Implantar o cluster1<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">eksctl create cluster \\\r\n  --name cluster1 \\\r\n  --region us-east-1 \\\r\n  --zones us-east-1a,us-east-1b,us-east-1c \\\r\n  --node-type t2.medium \\\r\n  --nodes 2 \\\r\n  --nodes-min 1 \\\r\n  --nodes-max 3 \\\r\n  --version 1.27 \\\r\n  --vpc-cidr 10.0.0.0\/16<\/pre>\n<h5>Implantar o cluster2<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">eksctl create cluster \\\r\n  --name cluster2 \\\r\n  --region us-east-1 \\\r\n  --zones us-east-1a,us-east-1b,us-east-1c \\\r\n  --node-type t2.medium \\\r\n  --nodes 2 \\\r\n  --nodes-min 1 \\\r\n  --nodes-max 3 \\\r\n  --version 1.27 \\\r\n  --vpc-cidr 10.1.0.0\/16<\/pre>\n<h4>Resultado esperado<\/h4>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">O cluster1 reside na VPC 10.0.0.0\/16<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">O cluster2 reside na VPC 10.1.0.0\/16<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16689\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-1024x394.png\" alt=\"\" width=\"900\" height=\"346\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-1024x394.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-300x116.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-768x296.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-1536x592.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1-1320x508.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image1-1.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<hr \/>\n<h3>Etapa 2: emparelhar as VPCs para comunica\u00e7\u00e3o entre clusters<\/h3>\n<h4>O que estamos fazendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Estamos criando uma conex\u00e3o de peering de VPC entre as duas VPCs e configurando regras de roteamento e seguran\u00e7a para permitir a comunica\u00e7\u00e3o entre clusters.<\/span><\/p>\n<h4>Etapas<\/h4>\n<h5>2.1 Criar uma conex\u00e3o de emparelhamento<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">V\u00e1 para o Console da AWS &gt; <\/span><b>VPC &gt; Conex\u00f5es de peering<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Clique em <\/span><b>Criar conex\u00e3o de peering<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Selecione o <\/span><b>VPC do solicitante<\/b><span style=\"font-weight: 400;\"> (VPC do Cluster1) e <\/span><b>VPC do aceitador<\/b><span style=\"font-weight: 400;\"> (VPC do Cluster2)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Nomear a conex\u00e3o <em>eks-peer<\/em><\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Clique em <\/span><b>Criar conex\u00e3o de peering<\/b><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>2.2 Aceitar a solicita\u00e7\u00e3o de peering<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Selecione a conex\u00e3o de emparelhamento<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Clique em <\/span><b>A\u00e7\u00f5es &gt; Aceitar solicita\u00e7\u00e3o<\/b><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>2.3 Atualizar tabelas de rotas<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Para a VPC do Cluster1, adicione uma rota para 10.1.0.0\/16, direcionando a conex\u00e3o de emparelhamento<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Para a VPC do Cluster2, adicione uma rota para 10.0.0.0\/16, direcionando a conex\u00e3o de emparelhamento<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16690\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-1024x191.png\" alt=\"\" width=\"900\" height=\"168\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-1024x191.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-300x56.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-768x143.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-1536x286.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3-1320x246.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image3.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<h5>2.4 Modificar grupos de seguran\u00e7a<\/h5>\n<h4>Por que isso \u00e9 necess\u00e1rio?<\/h4>\n<p><span style=\"font-weight: 400;\">Os grupos de seguran\u00e7a funcionam como firewalls, e devemos permitir explicitamente o tr\u00e1fego entre os clusters.<\/span><\/p>\n<h4>Como modificar<\/h4>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Navegue at\u00e9 <\/span><b>EC2 &gt; Grupos de seguran\u00e7a<\/b><span style=\"font-weight: 400;\"> no console do AWS<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Identificar os grupos de seguran\u00e7a associados ao Cluster1 e ao Cluster2<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Para o grupo de seguran\u00e7a do Cluster1:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><span style=\"font-weight: 400;\">Clique em <\/span><b>Editar regras de entrada<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><span style=\"font-weight: 400;\">Adicionar uma regra:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"4\"><b>Tipo<\/b><span style=\"font-weight: 400;\">: Todo o tr\u00e1fego<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"4\"><b>Fonte<\/b><span style=\"font-weight: 400;\">: ID do grupo de seguran\u00e7a do Cluster2<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Repita o procedimento para o Cluster2, permitindo o tr\u00e1fego do grupo de seguran\u00e7a do Cluster1<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16691\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-1024x396.png\" alt=\"\" width=\"900\" height=\"348\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-1024x396.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-300x116.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-768x297.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-1536x595.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2-1320x511.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image2.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16692\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-1024x86.png\" alt=\"\" width=\"900\" height=\"76\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-1024x86.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-300x25.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-768x65.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-1536x129.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5-1320x111.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image5.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16693\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-1024x276.png\" alt=\"\" width=\"900\" height=\"243\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-1024x276.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-300x81.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-768x207.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-1536x414.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4-1320x356.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image4.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<hr \/>\n<h3>Etapa 3: testar a conectividade implantando o NGINX no cluster2<\/h3>\n<h4>O que estamos fazendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Estamos implantando um pod NGINX no Cluster2 para verificar se o Cluster1 pode se comunicar com ele.<\/span><\/p>\n<h4>Por que isso \u00e9 importante?<\/h4>\n<p><span style=\"font-weight: 400;\">Essa etapa garante que a rede entre os clusters esteja funcionando antes de implantar o Couchbase.<\/span><\/p>\n<h4>Etapas<\/h4>\n<h5>3.1 Criar um espa\u00e7o de nome no Cluster1 e no Cluster2<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">kubectl create ns dev #in cluster1\r\nkubectl create ns prod #in cluster2\r\n<\/pre>\n<h5>3.2 Implantar o NGINX no cluster1 e no cluster2<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Crie o nginx.yaml:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:yaml decode:true\">apiVersion: apps\/v1\r\nTipo: Deployment\r\nmetadados:\r\n  nome: nginx\r\nespecifica\u00e7\u00f5es:\r\n  replicas: 1\r\n  selector:\r\n    matchLabels:\r\n      app: nginx\r\n  template:\r\n    metadata:\r\n      labels:\r\n        app: nginx\r\n    especifica\u00e7\u00f5es:\r\n      containers:\r\n      - name: nginx\r\n        imagem: nginx\r\n        portas:\r\n        - containerPort: 80\r\n---\r\napiVersion: v1\r\ntipo: servi\u00e7o\r\nmetadados:\r\n  name: nginx\r\nspec:\r\n  clusterIP: Nenhum\r\n  portas:\r\n  - port: 80\r\n    targetPort: 80\r\n  seletor:\r\n    app: nginx<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>3.3 Aplicar o YAML<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">kubectl apply -f nginx.yaml -n prod<\/pre>\n<h5>3.4 Verificar a conectividade do cluster1<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Execute no pod no Cluster1:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl exec -it -n dev  -- \/bin\/bash<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>3.5 Teste a conectividade com o Cluster2<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">curl nginx.prod<\/pre>\n<h4>Resultado esperado<\/h4>\n<p><span style=\"font-weight: 400;\">O <em>enrolar<\/em> falhar\u00e1 sem o encaminhamento do DNS, destacando a necessidade de configura\u00e7\u00e3o adicional do DNS.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16694\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image7.png\" alt=\"\" width=\"596\" height=\"109\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image7.png 596w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image7-300x55.png 300w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/p>\n<hr \/>\n<h3>Etapa 4: Configura\u00e7\u00e3o do encaminhamento de DNS<\/h3>\n<h4>O que estamos fazendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Configuraremos o encaminhamento de DNS para que os servi\u00e7os no Cluster2 possam ser resolvidos pelo Cluster1. Isso \u00e9 fundamental para permitir que os aplicativos no Cluster1 interajam com os servi\u00e7os no Cluster2 usando seus nomes de DNS.<\/span><\/p>\n<h4>Por que isso \u00e9 importante?<\/h4>\n<p><span style=\"font-weight: 400;\">A descoberta de servi\u00e7os do Kubernetes depende do DNS e, por padr\u00e3o, as consultas de DNS para os servi\u00e7os de um cluster n\u00e3o podem ser resolvidas em outro cluster. O CoreDNS no Cluster1 deve encaminhar as consultas para o resolvedor de DNS do Cluster2.<\/span><\/p>\n<h4>Etapas<\/h4>\n<h5>4.1 Recuperar o ponto de extremidade do servi\u00e7o DNS do Cluster2<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Execute o seguinte comando no Cluster2 para obter o ponto de extremidade do servi\u00e7o DNS:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl get endpoints -n kube-system<\/pre>\n<\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Procure o <em>kube-dns<\/em> ou <em>coredns<\/em> e anote seu endere\u00e7o IP. Por exemplo:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">----------------------------------------\r\nNOME ENDPOINTS IDADE\r\nkube-dns 10.1.20.116:53 3h\r\n----------------------------------------<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16695\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image6.png\" alt=\"\" width=\"859\" height=\"147\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image6.png 859w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image6-300x51.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image6-768x131.png 768w\" sizes=\"auto, (max-width: 859px) 100vw, 859px\" \/><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>4.2 Editar o CoreDNS ConfigMap no Cluster1<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Abra o CoreDNS ConfigMap para edi\u00e7\u00e3o:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl edit cm coredns -n kube-system<\/pre>\n<p>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>4.3 A<span style=\"font-weight: 400;\">adicione o seguinte bloco \u00e0 se\u00e7\u00e3o Corefile<br \/>\n<\/span><\/h5>\n<pre class=\"nums:false lang:default decode:true\">prod.svc.cluster.local:53 {\r\n    forward . 10.1.20.116\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">Substitua 10.1.20.116 pelo IP real do ponto de extremidade do DNS do Cluster2.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Observa\u00e7\u00e3o: s\u00f3 precisamos usar um dos endpoints do CoreDNS para esse ConfigMap. <\/span><span style=\"font-weight: 400;\">O IP dos pods do CoreDNS raramente muda, mas pode mudar se o n\u00f3 ficar inativo. <\/span><span style=\"font-weight: 400;\">O servi\u00e7o kube-dns ClusterIP pode ser usado, mas exigir\u00e1 que o IP e a porta estejam abertos nos n\u00f3s do EKS.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image9.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-16696\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image9.png\" alt=\"\" width=\"600\" height=\"456\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image9.png 754w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image9-300x228.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<h5>4.4 Reiniciar o CoreDNS no Cluster1<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Aplique as altera\u00e7\u00f5es reiniciando o CoreDNS:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl rollout restart deployment coredns -n kube-system<\/pre>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16697\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image8.png\" alt=\"\" width=\"867\" height=\"98\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image8.png 867w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image8-300x34.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image8-768x87.png 768w\" sizes=\"auto, (max-width: 867px) 100vw, 867px\" \/><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>4.5 Verificar o encaminhamento de DNS<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Executar em qualquer pod no Cluster1:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl exec -it -n default  -- \/bin\/bash<\/pre>\n<\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Teste a resolu\u00e7\u00e3o de DNS para um servi\u00e7o NGINX no Cluster2:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">curl nginx.prod.svc.cluster.local<\/pre>\n<\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\">Voc\u00ea dever\u00e1 ver uma resposta do servi\u00e7o NGINX<br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16698\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12-1024x464.png\" alt=\"\" width=\"900\" height=\"408\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12-1024x464.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12-300x136.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12-768x348.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12-1320x598.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image12.png 1348w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Resultado esperado<\/h4>\n<p><span style=\"font-weight: 400;\">As consultas de DNS do Cluster1 para o Cluster2 devem ser resolvidas com \u00eaxito.<\/span><\/p>\n<hr \/>\n<h3>Etapa 5: Implanta\u00e7\u00e3o do Couchbase<\/h3>\n<h4>O que estamos fazendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Implantaremos clusters do Couchbase em ambos os ambientes Kubernetes usando o Helm. Cada cluster gerenciar\u00e1 seus pr\u00f3prios dados de forma independente antes de ser conectado por meio do XDCR.<\/span><\/p>\n<h4>Por que isso \u00e9 importante?<\/h4>\n<p><span style=\"font-weight: 400;\">Os clusters do Couchbase formam a base da configura\u00e7\u00e3o do XDCR, fornecendo uma plataforma de banco de dados NoSQL robusta e dimension\u00e1vel.<\/span><\/p>\n<h4>Etapas<\/h4>\n<h5>5.1 Adicionar o reposit\u00f3rio de gr\u00e1ficos do Couchbase Helm<\/h5>\n<pre class=\"nums:false lang:sh decode:true\">helm repo add couchbase https:\/\/couchbase-partners.github.io\/helm-charts\/\r\natualiza\u00e7\u00e3o do helm repo\r\n<\/pre>\n<h5>5.2 Implantar o Couchbase no Cluster1<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Mudar para o Cluster1:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl config use-context\r\n<\/pre>\n<\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Implantar o Couchbase:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">helm install couchbase couchbase\/couchbase-operator --namespace dev<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16699\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-1024x432.png\" alt=\"\" width=\"900\" height=\"380\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-1024x432.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-300x127.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-768x324.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-1536x648.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10-1320x557.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image10.png 1780w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<h5>5.3 Implantar o Couchbase no Cluster2<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Mudar para o Cluster2:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl config use-context\r\n<\/pre>\n<\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Implantar o Couchbase:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">helm install couchbase couchbase-operator --namespace prod<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>5.4 Verificar a implanta\u00e7\u00e3o<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Verifique os pods do Couchbase:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl get pods -n dev # Para o Cluster1\r\nkubectl get pods -n prod # Para o Cluster2<\/pre>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16701\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1-1024x185.png\" alt=\"\" width=\"900\" height=\"163\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1-1024x185.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1-300x54.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1-768x138.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image11-1.png 1104w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\">Verifique se todos os pods est\u00e3o em execu\u00e7\u00e3o.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><b>Observa\u00e7\u00e3o: <\/b><span style=\"font-weight: 400;\">Se voc\u00ea encontrar um erro de implanta\u00e7\u00e3o, edite o CRD do CouchbaseCluster para usar uma vers\u00e3o de imagem compat\u00edvel:<\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl edit couchbasecluster  -n\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">Mudan\u00e7a:<\/span><\/p>\n<pre class=\"nums:false lang:yaml decode:true\">imagem: couchbase\/server:7.2.0<\/pre>\n<p><span style=\"font-weight: 400;\">Para:<\/span><\/p>\n<pre class=\"nums:false lang:yaml decode:true\">imagem: couchbase\/server:7.2.4<\/pre>\n<h4>Resultado esperado<\/h4>\n<p><span style=\"font-weight: 400;\">Os clusters do Couchbase devem estar em execu\u00e7\u00e3o e acess\u00edveis por meio de suas respectivas UIs.<\/span><\/p>\n<hr \/>\n<h3>Etapa 6: Configura\u00e7\u00e3o do XDCR<\/h3>\n<h4>O que estamos fazendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Configuraremos o XDCR para ativar a replica\u00e7\u00e3o de dados entre os dois clusters do Couchbase.<\/span><\/p>\n<h4>Por que isso \u00e9 importante?<\/h4>\n<p><span style=\"font-weight: 400;\">O XDCR garante a consist\u00eancia dos dados entre clusters, oferecendo suporte a cen\u00e1rios de alta disponibilidade e recupera\u00e7\u00e3o de desastres.<\/span><\/p>\n<h4>Etapas<\/h4>\n<h5>6.1 Obter o nome do servi\u00e7o do Cluster2<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">No cluster2, execute o seguinte comando para recuperar o nome do servi\u00e7o de um dos pods para que possamos fazer o encaminhamento de porta para ele.<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl get services -n prod<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>6.2 Acessar a interface do usu\u00e1rio do Couchbase para o Cluster2<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Encaminhar a interface do usu\u00e1rio do Couchbase:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:yaml decode:true\">kubectl port-forward -n prod cluster2-0000 8091:8091\r\n<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Abra um navegador e navegue at\u00e9:<br \/>\n<em>https:\/\/localhost:8091<\/em><br \/>\n<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Fa\u00e7a login usando as credenciais configuradas durante a implementa\u00e7\u00e3o.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>6.3 Exibir documentos no Cluster2<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Na interface do usu\u00e1rio do Couchbase, v\u00e1 para <\/span><b>Baldes<\/b><\/li>\n<li aria-level=\"2\">Observe que n\u00e3o existem documentos no <b>padr\u00e3o<\/b> balde<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16703\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-1024x96.png\" alt=\"\" width=\"900\" height=\"84\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-1024x96.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-300x28.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-768x72.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-1536x144.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13-1320x124.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image13.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h5>6.4 Acessar a interface do usu\u00e1rio do Couchbase para o Cluster1<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Encaminhar a interface do usu\u00e1rio do Couchbase:<br \/>\n<\/span><\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl port-forward -n dev cluster1-0000 8091:8091<\/pre>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16704\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image14.png\" alt=\"\" width=\"881\" height=\"87\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image14.png 881w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image14-300x30.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image14-768x76.png 768w\" sizes=\"auto, (max-width: 881px) 100vw, 881px\" \/><\/a><\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\">Abra um navegador e navegue at\u00e9:<br \/>\n<em>https:\/\/localhost:8091<\/em><\/span><\/li>\n<li aria-level=\"2\"><span style=\"font-weight: 400;\">Fa\u00e7a login usando as credenciais configuradas durante a implementa\u00e7\u00e3o<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>6.5 Adicionar um cluster remoto<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Na interface do usu\u00e1rio do Couchbase, v\u00e1 para <\/span><b>XDCR &gt; Adicionar cluster remoto<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Configure o cluster remoto:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Nome do cluster<\/b><span style=\"font-weight: 400;\">: Cluster2<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>IP\/nome do host<\/b><span style=\"font-weight: 400;\">:<em>.prod.svc.cluster.local<\/em><\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Nome de usu\u00e1rio<\/b><span style=\"font-weight: 400;\">: Nome de usu\u00e1rio do administrador do Cluster2<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Senha<\/b><span style=\"font-weight: 400;\">: Senha de administrador do Cluster2<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Clique em <\/span><b>Salvar<\/b><span style=\"font-weight: 400;\"><br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image15.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16705\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image15.png\" alt=\"\" width=\"831\" height=\"723\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image15.png 831w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image15-300x261.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image15-768x668.png 768w\" sizes=\"auto, (max-width: 831px) 100vw, 831px\" \/><\/a><\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>6.6 Configurar a replica\u00e7\u00e3o<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Na interface do usu\u00e1rio do Couchbase para o Cluster1, v\u00e1 para <\/span><b>XDCR &gt; Adicionar replica\u00e7\u00e3o<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Configure a replica\u00e7\u00e3o:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Replicar a partir do Bucket<\/b><span style=\"font-weight: 400;\">: Bucket padr\u00e3o no Cluster1<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Replicar para o Bucket<\/b><span style=\"font-weight: 400;\">: Bucket padr\u00e3o no Cluster2<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><b>Cluster remoto<\/b><span style=\"font-weight: 400;\">: Selecione Cluster2<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Clique em <\/span><b>Salvar<\/b><span style=\"font-weight: 400;\"><br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16706\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-1024x142.png\" alt=\"\" width=\"900\" height=\"125\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-1024x142.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-300x42.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-768x106.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-1536x213.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16-1320x183.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image16.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><br \/>\n<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>6.7 Replica\u00e7\u00e3o de teste<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Adicione documentos de amostra ao bucket padr\u00e3o no Cluster1:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><span style=\"font-weight: 400;\">Na interface do usu\u00e1rio do Couchbase, navegue at\u00e9 <\/span><b>Compartimentos &gt; Documentos &gt; Adicionar documento<\/b><\/li>\n<li aria-level=\"3\">D\u00ea a <b>Documento<\/b> um \u00fanico <b>ID<\/b> e alguns dados em <b>JSON<\/b> formato<br \/>\n<a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16707\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17-768x1024.png\" alt=\"\" width=\"768\" height=\"1024\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17-768x1024.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17-225x300.png 225w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17-300x400.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image17.png 1135w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/li>\n<li aria-level=\"3\"><span style=\"font-weight: 400;\">Verifique se os documentos aparecem no bucket padr\u00e3o do Cluster2:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"3\"><span style=\"font-weight: 400;\">Encaminhe a porta para a interface do usu\u00e1rio do Cluster2 e fa\u00e7a login:<br \/>\n<\/span><\/p>\n<pre class=\"nums:false lang:sh decode:true\">kubectl port-forward -n prod cluster2-0000 8091:8091\r\n<\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li aria-level=\"3\"><span style=\"font-weight: 400;\">Navegue at\u00e9: <\/span><em>https:\/\/localhost:8091<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Resultado esperado<\/h4>\n<p><span style=\"font-weight: 400;\">Os dados adicionados ao Cluster1 devem ser replicados para o Cluster2 em tempo real.<\/span><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-16708\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-1024x265.png\" alt=\"\" width=\"900\" height=\"233\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-1024x265.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-300x78.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-768x199.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-1536x398.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18-1320x342.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/image18.png 1999w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/p>\n<hr \/>\n<h3>Etapa 7: Limpeza<\/h3>\n<h4>O que estamos fazendo?<\/h4>\n<p><span style=\"font-weight: 400;\">Limparemos nosso ambiente do AWS e excluiremos todos os recursos que implantamos.<\/span><\/p>\n<h4>Por que isso \u00e9 importante?<\/h4>\n<p><span style=\"font-weight: 400;\">Isso evitar\u00e1 que voc\u00ea incorra em cobran\u00e7as desnecess\u00e1rias.<\/span><\/p>\n<h4>Etapas<\/h4>\n<h5>7.1 Acesse o console da AWS<\/h5>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">V\u00e1 para o Console da AWS &gt; <\/span><b>VPC &gt; Conex\u00f5es de peering<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Selecione e exclua a conex\u00e3o de emparelhamento<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">V\u00e1 para o Console da AWS &gt; <\/span><b>CloudFormation &gt; Pilhas<\/b><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Selecione e exclua as duas pilhas de grupos de n\u00f3s<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">Quando as duas pilhas de grupos de n\u00f3s tiverem terminado de excluir, selecione e exclua as pilhas de clusters<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Resultado esperado<\/h4>\n<p><span style=\"font-weight: 400;\">Todos os recursos criados para esse tutorial s\u00e3o exclu\u00eddos da conta.<\/span><\/p>\n<hr \/>\n<h2>Conclus\u00e3o<\/h2>\n<p><span style=\"font-weight: 400;\">Por meio deste guia, estabelecemos com sucesso o XDCR entre clusters do Couchbase executados em clusters EKS separados em VPCs do AWS. Essa configura\u00e7\u00e3o destaca o poder de combinar a rede do AWS com o Kubernetes para obter solu\u00e7\u00f5es robustas e dimension\u00e1veis. Com a replica\u00e7\u00e3o entre clusters implementada, seus aplicativos ganham maior resili\u00eancia, lat\u00eancia reduzida para usu\u00e1rios distribu\u00eddos e um s\u00f3lido mecanismo de recupera\u00e7\u00e3o de desastres.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ao compreender e implementar as etapas descritas aqui, voc\u00ea estar\u00e1 preparado para enfrentar os desafios do mundo real que envolvem configura\u00e7\u00f5es de v\u00e1rios clusters, expandindo sua experi\u00eancia em redes de nuvem e gerenciamento de bancos de dados distribu\u00eddos.<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Saiba mais sobre <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/xdcr\/\">Replica\u00e7\u00e3o entre centros de dados do Couchbase (XDCR)<\/a><\/li>\n<li>Leia o <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/clusters-and-availability\/xdcr-overview.html\">Documenta\u00e7\u00e3o do XDCR<\/a><\/li>\n<li>Leia como <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/content\/c\/developing-apps-xdcr-wp\/?x=bf-s6J\">O XDCR \u00e9 essencial para dados distribu\u00eddos globalmente<\/a>recupera\u00e7\u00e3o de desastres e alta disponibilidade<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><br style=\"font-weight: 400;\" \/><br style=\"font-weight: 400;\" \/><\/p>","protected":false},"excerpt":{"rendered":"<p>In modern distributed systems, the ability to replicate data between separate environments is crucial for ensuring high availability, disaster recovery, and performance optimization. Couchbase&#8217;s XDCR (Cross Data Center Replication) feature allows seamless replication of data between clusters, enabling robust data [&hellip;]<\/p>","protected":false},"author":85538,"featured_media":16711,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,2225,1816,9415,9417,1813],"tags":[10124,2127,9583],"ppma_author":[10067,10068],"class_list":["post-16686","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-cloud","category-couchbase-server","category-xdcr","category-performance","category-security","tag-amazon-web-services-aws","tag-disaster-recovery","tag-vpc-peering"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Setting Up Cross-VPC XDCR Between Amazon EKS Clusters - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/xdcr-couchbase-aws-eks\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters\" \/>\n<meta property=\"og:description\" content=\"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/xdcr-couchbase-aws-eks\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-12-20T17:45:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:14:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1256\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Rob Hadaway, Sr. Solutions Architect, Ben Mottershead, Software Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rob Hadaway, Sr. Solutions Architect\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/\"},\"author\":{\"name\":\"Rob Hadaway, Sr. Solutions Architect\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/403c24233f97f622abfb8da59c4a7143\"},\"headline\":\"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters\",\"datePublished\":\"2024-12-20T17:45:37+00:00\",\"dateModified\":\"2025-06-14T00:14:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/\"},\"wordCount\":1391,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png\",\"keywords\":[\"Amazon Web Services (AWS)\",\"Disaster Recovery\",\"VPC Peering\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Capella\",\"Couchbase Server\",\"Cross Data Center Replication (XDCR)\",\"High Performance\",\"Security\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/\",\"name\":\"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png\",\"datePublished\":\"2024-12-20T17:45:37+00:00\",\"dateModified\":\"2025-06-14T00:14:21+00:00\",\"description\":\"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png\",\"width\":2400,\"height\":1256},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/403c24233f97f622abfb8da59c4a7143\",\"name\":\"Rob Hadaway, Sr. Solutions Architect\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/270993c0b5ac0ea0c8ba036f4284290b\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png\",\"caption\":\"Rob Hadaway, Sr. Solutions Architect\"},\"description\":\"Rob Hadaway is a Senior Solutions Architect at Couchbase, where he specializes in deploying and optimizing scalable database solutions in cloud and on-premises environments. With a strong technical foundation and a passion for problem-solving, Rob has led complex projects involving AWS EKS, Azure, and Kubernetes, ensuring seamless integration and deployment of Couchbase solutions for clients across various industries. Rob holds a Master of Science in Information Systems and an MBA from the University of Utah. His technical expertise spans a wide range of tools and technologies, including Python, SQL, Terraform, Docker, Kubernetes, and React.js. He is highly credentialed, holding multiple AWS certifications, as well as Kubernetes Administrator and Developer certifications\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/rob-hadaway\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters - The Couchbase Blog","description":"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/xdcr-couchbase-aws-eks\/","og_locale":"pt_BR","og_type":"article","og_title":"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters","og_description":"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/xdcr-couchbase-aws-eks\/","og_site_name":"The Couchbase Blog","article_published_time":"2024-12-20T17:45:37+00:00","article_modified_time":"2025-06-14T00:14:21+00:00","og_image":[{"width":2400,"height":1256,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png","type":"image\/png"}],"author":"Rob Hadaway, Sr. Solutions Architect, Ben Mottershead, Software Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rob Hadaway, Sr. Solutions Architect","Est. reading time":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/"},"author":{"name":"Rob Hadaway, Sr. Solutions Architect","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/403c24233f97f622abfb8da59c4a7143"},"headline":"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters","datePublished":"2024-12-20T17:45:37+00:00","dateModified":"2025-06-14T00:14:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/"},"wordCount":1391,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png","keywords":["Amazon Web Services (AWS)","Disaster Recovery","VPC Peering"],"articleSection":["Best Practices and Tutorials","Couchbase Capella","Couchbase Server","Cross Data Center Replication (XDCR)","High Performance","Security"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/","url":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/","name":"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png","datePublished":"2024-12-20T17:45:37+00:00","dateModified":"2025-06-14T00:14:21+00:00","description":"Set up Couchbase XDCR for seamless data replication between clusters in separate AWS EKS environments. Enhance resilience, disaster recovery, and performance.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/blog-eks-xdcr-head.png","width":2400,"height":1256},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/xdcr-couchbase-aws-eks\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Setting Up Cross-VPC XDCR Between Amazon EKS Clusters"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/403c24233f97f622abfb8da59c4a7143","name":"Rob Hadaway, arquiteto s\u00eanior de solu\u00e7\u00f5es","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/270993c0b5ac0ea0c8ba036f4284290b","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png","caption":"Rob Hadaway, Sr. Solutions Architect"},"description":"Rob Hadaway is a Senior Solutions Architect at Couchbase, where he specializes in deploying and optimizing scalable database solutions in cloud and on-premises environments. With a strong technical foundation and a passion for problem-solving, Rob has led complex projects involving AWS EKS, Azure, and Kubernetes, ensuring seamless integration and deployment of Couchbase solutions for clients across various industries. Rob holds a Master of Science in Information Systems and an MBA from the University of Utah. His technical expertise spans a wide range of tools and technologies, including Python, SQL, Terraform, Docker, Kubernetes, and React.js. He is highly credentialed, holding multiple AWS certifications, as well as Kubernetes Administrator and Developer certifications","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/rob-hadaway\/"}]}},"authors":[{"term_id":10067,"user_id":85538,"is_guest":0,"slug":"rob-hadaway","display_name":"Rob Hadaway, Sr. Solutions Architect","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/Screenshot-2024-12-20-at-10.48.05\u202fAM.png"},"first_name":"Rob","last_name":"Hadaway, Sr. Solutions Architect","user_url":"","author_category":"","description":"Rob Hadaway \u00e9 arquiteto de solu\u00e7\u00f5es s\u00eanior da Couchbase, onde se especializou na implanta\u00e7\u00e3o e otimiza\u00e7\u00e3o de solu\u00e7\u00f5es de banco de dados escal\u00e1veis em ambientes de nuvem e locais. Com uma s\u00f3lida base t\u00e9cnica e uma paix\u00e3o pela solu\u00e7\u00e3o de problemas, Rob liderou projetos complexos envolvendo AWS EKS, Azure e Kubernetes, garantindo a integra\u00e7\u00e3o e a implanta\u00e7\u00e3o perfeitas das solu\u00e7\u00f5es Couchbase para clientes de v\u00e1rios setores.\r\n\r\nRob tem mestrado em sistemas de informa\u00e7\u00e3o e MBA pela Universidade de Utah. Sua experi\u00eancia t\u00e9cnica abrange uma ampla gama de ferramentas e tecnologias, incluindo Python, SQL, Terraform, Docker, Kubernetes e React.js. Ele \u00e9 altamente credenciado, possuindo v\u00e1rias certifica\u00e7\u00f5es da AWS, bem como certifica\u00e7\u00f5es de administrador e desenvolvedor de Kubernetes"},{"term_id":10068,"user_id":85555,"is_guest":0,"slug":"benmottershead","display_name":"Ben Mottershead, Software Engineer","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/1719955373757.jpeg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/12\/1719955373757.jpeg"},"first_name":"Ben","last_name":"Mottershead, Software Engineer","user_url":"","author_category":"","description":"Ben \u00e9 um engenheiro de software que trabalha no escrit\u00f3rio da Couchbase em Manchester. Ele faz parte da equipe de operadores aut\u00f4nomos desde agosto, que o apresentou ao ecossistema de dados no Kubernetes. Ben vem desenvolvendo aplicativos para a nuvem desde que terminou a universidade em 2021 e trabalhou com v\u00e1rias linguagens e tecnologias, concentrando-se mais recentemente em Go, K8s e Couchbase Server."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/16686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/85538"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=16686"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/16686\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/16711"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=16686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=16686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=16686"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=16686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}