[GCP] GCP의 ALB
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 방식으로도 만들어 보겠음
alb에서 인증서를 생성하는 방식으로 채택 -> 기존 인증서 탭에 인증서 확인

방화벽
80 , 443 , 8850(unkown 포트이기 때문에 방화벽을 추가 별도 구성 해야 함)
alb 과정에서 http , https 를 체크하면 tag가 자동으로 적용 되면서 방화벽 셋팅이 진행
alb
backend
frontend
https용 frontend alb는 ssl 사용 여부 체크시 자동으로 생성 된다
routing rule(url map)
proxy
직접 만드는 것은 아니지만 alb를 만들면 구성에 맞게 아래처럼 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 정책이 불가능하게 됨
그렇기 때문에 특정 IP의 allow나 deny 정책을 갖고 싶다면 cloud Armor에서 controll 해야 함 아래 그림의 firewall 위치와 cloud armor 위치를 유심 하게 봐야함

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 주소
Last updated