diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 92a32d6e2ff47da7572cc8c2af2f233ec9f59d60..043839c2b28ab31d62724c8496acd58325994256 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,30 +15,6 @@ cache:
     paths:
       - ${TF_ROOT_MAGENTO}/.terraform
 
-check-elastic:
-  stage: test
-  tags:
-    - docker
-  image:
-    name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest
-    entrypoint: [""]
-  variables:
-    TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/elastic
-    TF_VAR_ec_apikey: $EC_API_KEY
-  script: |-
-    cd $TF_ROOT_ELASTIC
-    gitlab-terraform init 
-    gitlab-terraform validate
-    gitlab-terraform fmt -check
-    gitlab-terraform plan
-    gitlab-terraform plan-json
-  artifacts:
-    name: plan
-    paths:
-      - ${TF_ROOT_ELASTIC}/plan.cache
-    reports:
-      terraform: ${TF_ROOT_ELASTIC}/plan.json
-
 check-magento:
   stage: test
   tags:
@@ -69,23 +45,6 @@ check-magento:
     reports:
       terraform: ${TF_ROOT_MAGENTO}/plan.json
 
-apply-elastic:
-  stage: deploy
-  needs:
-    - check-elastic
-  tags:
-    - docker
-  image:
-    name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest
-    entrypoint: [""]
-  variables:
-    TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/elastic
-    TF_VAR_ec_apikey: $EC_API_KEY
-  script: |-
-    cd $TF_ROOT_ELASTIC
-    gitlab-terraform init 
-    gitlab-terraform apply -auto-approve
-
 apply-magento:
   stage: deploy
   needs:
@@ -112,7 +71,6 @@ apply-magento:
 gcloud-psc:
   stage: deploy
   needs:
-    - apply-elastic
     - apply-magento
   tags:
     - docker
@@ -143,12 +101,47 @@ gcloud-psc:
     paths:
       - ${CI_PROJECT_DIR}/pscConnectionId.env
 
+check-elastic:
+  stage: test
+  tags:
+    - docker
+  needs:
+    - gcloud-psc
+  image:
+    name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest
+    entrypoint: [""]
+  variables:
+    TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/elastic
+    TF_VAR_ec_apikey: $EC_API_KEY
+  script: |-
+    export TF_VAR_psc_connection_id=$(cat ${CI_PROJECT_DIR}/pscConnectionId.env | grep GCP_PSC_CONNECTION_ID | cut -d = -f2)
+    cd $TF_ROOT_ELASTIC
+    gitlab-terraform init 
+    gitlab-terraform validate
+    gitlab-terraform fmt -check
+    gitlab-terraform plan
+    gitlab-terraform plan-json
+  artifacts:
+    name: plan
+    paths:
+      - ${TF_ROOT_ELASTIC}/plan.cache
+    reports:
+      terraform: ${TF_ROOT_ELASTIC}/plan.json
 
-elastic-traffic-filter:
+apply-elastic:
   stage: deploy
   needs:
-    - gcloud-psc
+    - check-elastic
   tags:
     - docker
+  image:
+    name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest
+    entrypoint: [""]
+  variables:
+    TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/elastic
+    TF_VAR_ec_apikey: $EC_API_KEY
   script: |-
-    cat ${CI_PROJECT_DIR}/pscConnectionId.env
+    export TF_VAR_psc_connection_id=$(cat ${CI_PROJECT_DIR}/pscConnectionId.env | grep GCP_PSC_CONNECTION_ID | cut -d = -f2)
+    cd $TF_ROOT_ELASTIC
+    gitlab-terraform init 
+    gitlab-terraform apply -auto-approve
diff --git a/manifests/elastic/main.tf b/manifests/elastic/main.tf
index 80c25abf2a60bcdbfa62113759563ce148ce11fb..0174d527bec9f81bc56e89540abe55f8c9cb6fdd 100644
--- a/manifests/elastic/main.tf
+++ b/manifests/elastic/main.tf
@@ -19,6 +19,16 @@ data "ec_stack" "stack" {
   region        = var.region
 }
 
+resource "ec_deployment_traffic_filter" "traffic-filter" {
+  name   = "traffic-filter"
+  region = var.region
+  type   = "gcp_private_service_connect_endpoint"
+
+  rule {
+    source = var.psc_connection_id
+  }
+}
+
 resource "ec_deployment" "elasticsearch_cluster" {
   name                   = var.cluster_name
   region                 = data.ec_stack.stack.region
@@ -43,4 +53,8 @@ resource "ec_deployment" "elasticsearch_cluster" {
       zone_count    = 1
     }
   }
+
+  traffic_filter = [
+    ec_deployment_traffic_filter.traffic-filter.id
+  ]
 }
diff --git a/manifests/elastic/variables.tf b/manifests/elastic/variables.tf
index 076bbdbc6b764731644630f6b296808d7bfaad56..6e6d6363e4e9d867599a674f8a24cff5a32e941c 100644
--- a/manifests/elastic/variables.tf
+++ b/manifests/elastic/variables.tf
@@ -7,8 +7,12 @@ variable "region" {
   default = "gcp-europe-west1"
 }
 
+variable "psc_connection_id" {
+  type = string
+}
+
 ### Cluster
 variable "cluster_name" {
   type    = string
   default = "elastic-for-gke-magento"
-}
\ No newline at end of file
+}