DevOps
  • Introduction
  • Setting
    • Terminal
      • Tmux
    • WSL+Ubuntu
    • [NeoVIM]
      • install & 활용방법
      • error 처리
      • LazyVIM
        • install & 활용방법
    • ssh
    • mysql
    • package관리
  • Fundamental(basic)
    • Network
      • https
  • [GitOps]
    • [SCM]
      • [Github]
        • center-managed
      • bitbucket
      • AWS-codeCommit
  • roadmap
    • devops
    • kubernetes
    • AWS
    • MLOPS
  • Cloud
    • [AWS]
      • aws sso script
      • tagging 자동화
      • 동일cidr에서 VPC 연결
      • 무중단서비스를 위한 고려사항
    • [GCP]
      • [GCP] GCP의 VPC
      • [GCP] GCP의 ALB
      • [GCP] OIDC와 OAUTH를 활용한 github action
      • [GCP] Composer 설명
      • [GCP] gmail-api
      • [GCP] DataLake
      • [GCP] Cloud 관리형 계정&role
      • [[GCP] private환경
        • DNS 설정으로 google api 및 colab-notebook 사용 하기
        • intelligence 설정으로 google api 및 colab-notebook 사용 하기
  • [kubernetes]
    • [cloud 기반]
      • csr
  • InfraAsCode
    • terraform
  • 코드로 그리는 다이어그램
    • CodeAsDiagram
      • example
    • Mermaid
    • PDFtoImage
  • AutoMation
  • [ETC]
    • Magic_Trackpad Window설치
Powered by GitBook
On this page
  • GCP의 ALB
  • AWS ALB와 차이점
  • 연결가능한 백앤드 서비스
  • 서비스
  • web loadbalancer 생성
  • cloud dns
  • 방화벽과 Cloud Armor
  • firewall
  • Cloud Armor
  1. Cloud
  2. [GCP]

[GCP] GCP의 ALB

Previous[GCP] GCP의 VPCNext[GCP] OIDC와 OAUTH를 활용한 github action

Last updated 8 months ago

GCP의 ALB

AWS ALB와 차이점

  • GCP는 고정 IP 할당이 가능하다. - GCP Win

    • ALB는 고정 IP가 없는대신 전용 endpoint가 있음

  • GCP는 프론트앤드 백엔드 라우팅 룰 / AWS 는 리스너 타겟그룹

    • GCP는 VM(EC2)로 ALB와 연결 할 시 무조건 instance group을 생성 해야 함

  • Proxy 구성 차이(AWS Win)

    • GCP는 http -> https redirect 구성을 만드려면 alb가 두개가 생성 되야함 심지어 새로 생성되는 alb이름도 못지어줌j

    • 그에 비해 aws는 상당히 높은 수준의 프록시 설정이 가능함 깊게는 http 헤더 대다수에 조건을 걸 수 있음

연결가능한 백앤드 서비스

  • ALB는 아래 그림의 서비스들과 연동이 가능하다


테스트 환경 구성 요소

  • 개요

    • http로 접근 시 https로 redirect

    • http://latimi.net으로 접근 시 vm의 8850 포트로 접근

  • 필요 resource

    • firewall

    • loadbalancer

    • instance group

    • cloud domains

    • cloud dns

    • A record 셋팅

  • certificate manager

    • 인증서 생성 시 도메인 소유자 신원 확인을 위해 CNAME 인증을 진행 하였으나 이 방식은 alb에서 인식 불가

      • 여유가 된다면 AWS 방식으로도 만들어 보겠음

  • 방화벽

    • 80 , 443 , 8850(unkown 포트이기 때문에 방화벽을 추가 별도 구성 해야 함)

      • alb 과정에서 http , https 를 체크하면 tag가 자동으로 적용 되면서 방화벽 셋팅이 진행

  • alb

    • backend

    • frontend

      • https용 frontend alb는 ssl 사용 여부 체크시 자동으로 생성 된다

    • routing rule(url map)

defaultService: projects/storied-imprint-xxx/global/backendServices/backend-kth-pri-bastion-80
name: path-matcher-1
pathRules:
- paths:
  - /
  - /*
  service: projects/storied-imprint-xxx/global/backendServices/backend-kth-pri-bastion-8850
  • proxy

서비스

  • instance group

    • type :

      • 이 부분이 상당히 중요 한 내용인데 이건 AWS의 AutoScaleGroup의 개념이 있어야 한다. 별도 설명 필요, 일단 초보자는 unmanaged instance 선택하면 됨

      • managed instance group

        • stateless

        • stateful

        • managed를 고르는 순간 부터 서버에서 변경 사항이 발생 되도 일정 시점 이후 원복이 됨

          • 변경 사항은 템플릿으로 관리 하기 때문

          • 마치 쿠버네티스의 코드 관리 방식처럼 동작함

      • unmanaged instance group

    • template

      • image

    • health check

    • port mapping

      • 80:80

      • 81:81

      • 8850

  • VM

    • NGINX

      • port 3000

      • port 8850

web loadbalancer 생성

  • name: dorian-p-alb-web-an3

  • type: Application loadbalancer

  • public

  • region : asia-northeast-3

  • frontend

    • port : 80,8850,81

    • ssl redirect check : 자동으로 https 처리용 lb가 생성

  • backend

    • CDN 미사용

    • 인증서 생성

    • Instance Group mapping

  • Routing 설정

cloud dns

  • zone : ${domain zone}

  • a record mapping

    • dorian:${alb IP}

방화벽과 Cloud Armor

  • 방화벽은 GCP 프로젝트 단위로 광범위 하게 적용 되며 cloud Armor는 global backend 서비스 앞단에 위치함

  • cloud Armor의 레이어는 OSI 7 Layer 기준으로 3~7 이기 때문에 WAF(웹방화벽)과 IPS의 역활을 수행 할 수 있음

  • external-global-alb 타입으로 생성 시 방화벽에 health-check를 위해 35.191.0.0/16을 넣어 줘야 하는데 이렇게 되면 특정 IP만 허용 하는 allow 정책이 불가능하게 됨

firewall

  • name: dorian-p-sec-in-web-alb-an3

  • soruce : 35.191.0.0/16 ${office ip}

  • target : 172.18.1.0

  • protocol : 80,81, 8850

  • 주의사항 : 35.191.0.0/16 (gcp global lb 대역)을 추가 해야 heath-check가 진행 됨

Cloud Armor

  • name : security-policy-for-backend-service-dorian-p-alb-backend-web

  • allow : ${office ip}

  • deny : 모든 IP 주소

alb에서 인증서를 생성하는 방식으로 채택 -> 기존 인증서 탭에 인증서 확인

직접 만드는 것은 아니지만 alb를 만들면 구성에 맞게 아래처럼 proxy , 전달 규칙 등이 생성 된다.

그렇기 때문에 특정 IP의 allow나 deny 정책을 갖고 싶다면 cloud Armor에서 controll 해야 함 아래 그림의 firewall 위치와 cloud armor 위치를 유심 하게 봐야함

alt text