갬미의 성장일기
Day 63 - Cloud network 본문
오늘 배운 내용
- AWS network
- git 복습
- CICD 준비
Cloud network
VPC는 나만의 격리된 공간이라고 생각하면 된다 (VPC 생성시 선택사항 - region. CIDR)
VM은 VPC안의 서브넷에 위치한다
서브넷 생성시 선택사항 - AZ(=idc 센터), vpc내 cidr
** 만약 나의 계정의 서울리전에 az가 a,b,c,d가 있고 각각 서울, 대전, 대구, 부산이라고 한다면
다른 사람 계정의 서울리전에서는 az a,b,c,d가 각각 대전,부산,서울,대구일 수 있다 (항상 같은 idc을 가르키는것이 아님)
vpc, subnet을 만들때
VPC의 서브넷을 만들때 마법사를 사용하면 public2개 private2개씩 생긴다.
또 2개 이상의 가용영역에 각 public, private가 최소 1개 이상 배치되도록 설정되어있다
--> 직접 설계할때도 ALB를 사용할 생각이라면 (대부분 사용함) 서브넷 생성시 이런식으로 배치하는것이 바람직하다
- 각각 다른 가용영역의 private or public이 쌍으로 필요하기때문에
서브넷 종류는 두가지가 있다
1. public - 인터넷 게이트웨이가 붙음
2. private - nat 게이트웨이가 붙음 (이게 없으면 outbound가 안됨)
인터넷 통신을 위해 라우팅테이블 세팅이 필요하다
라우팅 테이블은 vpc에서 관리하며, 따로 명시되지 않은 서브넷에 적용되는 default routing table이 존재한다
public subnet = rt에 0.0.0.0/0 - internet gateway 연결
private subnet = rt에 0.0.0.0/0 - nat gateway 연결
두 rt를 새로 만들어도 되고 default rt를 수정해서 사용해도 된다
nat gateway = 네트워크 주소 변환 서비스
private subnet의 인스턴스가 VPC 외부의 서비스에 연결할 수 있지만 외부 서비스에서 이러한 인스턴스와의 연결할수는 없음
메가존xGCP 블로그 글이다 GCP 공식 문서를 매끄럽게 해석해놓았다
이건 꼭 써봐야 돼 ~ GCP Cloud NAT - Google Cloud 프리미어 파트너 메가존
Google Cloud 프리미어 파트너 메가존 이건 꼭 써봐야 돼 ~ GCP Cloud NAT
gc.hosting.kr
nat gateway는 다른망으로 나갈때 다른 사설 ip를 가지고 나가도록 설정할 수도 있다
- 다른 network(ex on prem)와 연결해야하는데 ip가 겹칠때
AWS
접근제어 방식 : SG, NACL, IAM
IAM - 사용자에 대한 제어 : 해당사용자가 eks, ec2등을 만들수 있는지,, 권한
일반적으로 접근 제어 방식으로 방화벽(SG, nACL)을 가장 많이 사용함
두가지 방식이 있다
1. 인바운드 = 어떤 소스에서 들어오는것을 허용할 것인지 (aws - 허용되지 않은것에 대해서는 전부 차단 정책이 들어감)
2. 아웃바운드 = 어느 목적지로 나가는것을 허용할 것인지 (aws - 허용되지 않은것에 대해서는 전부 차단 정책이 들어감)
SG - VM 레벨에 적용하는 방화벽 규칙
inbound: all deny
outbound: all permit (vm에서 나가는거는 기본적으로 막지 않음)
rule을 정할때 (inbound)
1. 프로토콜 선택 - tcp, udp, icmp, .... well known port(http)가 아닌이상 소스 port를 지정해줘야 한다
SG - VM, DB, LB .. 만들수있다 --> 최대한 타이트하게 정하고 쓰는게 좋다 (all tcp icmp permit은 절대 안쓴다)
보통 3tier에서는
web LB - 443, 80
web - web LB만
was LB - web만
was - was LB만
DB - was만
--> 각 단마다 다른 sg 가 적용되어야 한다
AWS 방화벽에 stateful과 stateless가 있음
sg, nacl 차이점
- sg = vm 레벨의 방화벽, stateful 방확벽
- nacl = 서브넷 레벨의 방화벽, stateless 방화벽
SG는 stateful 방화벽이다!
stateful정책
만약 소스 1.1.1.1과 소스 2.2.2.2 VM이 통신하려할때 -> 1.1.1.1이 들어올 수 있도록 2.2.2.2에서 tcp 22번을 열어줘야 한다 (tcp 22 permit)
나가는 정책에 대해서는 들어온 session을 가지고 있기때문에 아웃바운드는 따로 permit 해주지 않아도 된다 = stateful
nACL은 stateless 정책을 가진다
- retuen path 까지 고려해서 설정해야한다
- sg와 다르게 특정 ip 대역을 차단할 수 있다 (sg는 허용 규칙만 정할 수있다)
-- 만약 어떤 소스를 가진 공격이 들어온다면 막을수있다
CICD 준비
1. 클러스터 환경에서 tomcat 3tier가 잘 구동되는지 확인하기
-- private클러스터를 만들었을때 인터넷이 되지 않는 이슈가 발생한다면
--> Cloud NAT를 설정해주어야 한다
오늘의 회고
- 오전에는 cicd실습을 위해 지금까지 했던 코드중 잘 돌아가는 버전을 git에 업로드하고 그김에 git도 살짝 복슴하였다
- 오후에는 aws 네트워크부분을 알려주셨는데 그동안 많이 헷갈렸던 sg, nacl을 정리할 수 있어서 좋았다
'Cloud > Cloud 공부일기' 카테고리의 다른 글
Day 65 - CICD (0) | 2022.04.13 |
---|---|
Day 64 - Cloud network IAM, CICD (0) | 2022.04.12 |
Day 62.5 - AWS 3tier 구성하기 (0) | 2022.04.11 |
Day 62 - GCP 2tier (LB, Autoscaling) (0) | 2022.04.08 |
Day 62 - GCP 3tier , AWS 2tier (0) | 2022.04.07 |