인프라 스터디(1)

장준영·2024년 7월 7일

개요

이번 방학에 개편된 인프라를 백엔드 팀원들이 다시한번 숙지할수 있도록 스터디를 진행하게 되었다. 이번 인프라 스터디 리드를 위해 공부를 하기 위해 정리를 하게 되었다.

AWS 살펴보기

1. vpc

vpc와 vpn에 대해서 알아야 한다. vpn은 많이 알고 있을 것이라고 생각한다. 정보통신의 핵심 기술중 하나이기 때문이다. vpn은 네트워크A와 네트워크B가 실제로 같은 네트워크 상에 있지만 논리적으로 다른 네트워크인것 처럼 동작한다.
VPC가 없다면 Ec2인스턴스들이 서로 거미줄처럼 연결되고 인터넷과 연결된다. 이런 구조는 시스템의 복잡도를 엄청나게 끌어올릴 뿐만 아니라 하나의 인스턴스만 추가되도 모든 인스턴스를 수정해야하는 불편함이 생긴다.
vpc를 적용하면 vpc별로 네트워크를 구성할 수 있으며 각각의 vpc에 따라 다르게 네트워크 설정을 줄 수 있다. 또한 각각의 vpc는 완전히 독립된 네트워크처럼 작동하게 된다.

망분리 에 대한 개념은 정말 중요하다고 생각한다. 최근 기사에서 은행권들도 망분리를 하기 시작하며 이에 대한 중요성이 대두되고 있다.

또한 가용성의 측면에서 서버의 어뷰징에 대한 필요가 있기에 금융권에서도 MSA/클라우드에 대한 도입을 준비하고 있다고 모증권 본부장님께 질문에 대한 답변을 듣게 되었다.

VPC의 구성요소

  • 서브넷
  • 인터넷 게이트웨이
  • NACL/보안그룹
  • 라우트 테이블
  • NAT Instance / NAT Gateway
  • Bastion Host
  • VPC Endpoint

위와 같이 구성이 되어있다.

2. cidr

CIDR의 풀네임은 (class inter-Domain routing)으로 클래스 없는 도메인간 라우팅 기법이라는 뜻이다.

서브넷

  • VPC의 하위 단위로 VPC에 할당된 IP를 더 작은 단위로 분할한 개념
  • 하나의 서브넷은 하나의 가용영역(AZ)안에 위치
  • CIDR block range로 IP주소 지정

AWS 서브넷의 IP갯수

  • AWS의 사용가능 IP숫자는 5개를 제외하고 계산
  • 예: 10.0.0.0/24라면,
  • 10.0.0.0 네트워크 주소
  • 10.0.0.1 Router주소
  • 10.0.0.2 DNS 서버
  • 10.0.0.3 미래를 위해 남겨둠
  • 10.0.0.255 네트워크 브로드캐스트 주소
  • 즉 총 사용가능한 IP갯수는 2^8-5=251개 이다.

3. s3+ cloudFront

S3는 아마존 웹 서비스가 제공하는 클라우드 스토리지 서비스다. S3는 파일, 데이터 및 다양한 유형의 미디어 등을 저장하고 관리는데 사용되는 웹 기반 스토리지 시스템이다.

static.koreatech.in을 검색하였을때는 cdn서비스가 적용되어있는것을 확인할 수 있다.

4. route53

gslb에 대한 내용 추가하기
www.naver.com
www.naver.com을 검색하였을때는 glsb가 적용이 되어있다.
일단 서버가4대가 존재하고 그에 맞는 서버로 배정하는 느낌이다.
예전에 조회했을때는 Akamai를 썼던것으로 기억하는데 지금은 사용을 안하기에 궁금하여 whois에 검색해보니 네이버클라우드의 서버로 나왔고, 이에 네이버 클라우드에 문의하였으나 답변을 제공받을수 없었다.

개인적으로 궁금하긴 하였으나 보안문제니 어쩔수 없는거 같다.

koreatech.in을 검색하였을때는 a레코드로 단일서버로 구성이 되어있다.
우리 서버도 이전의 로드밸런서를 활용해 다중 서버를 두는게 꿈이었지만 ROI상 크게 필요가 없다고 판단하였고, 그대신 그 뒤에서 Overlay네트워크를 활용해 클러스터링을 하고 있다.

우리가 보통 dns라는 개념은 많이 다루어 본다. 하지만 DNS는 라우드로빈 방식으로 전달을 하지만 전세계 사용자들이 균등하게 분포하고 있는 것은 아니기 때문에 최적화된 전달을 위해 GSLB방식을 사용해야 한다.

5. nacl+ securityGroup

vpc에서 무료로 nacl기능을 제공하고 있으며 사용자가 직접 정책을 설정하여 유입되는 트래픽을 제어한다.

nacl의 특징은 다음과 같다.

  • 서브넷 단위로 적용
  • NACL이 설정된 서브넷 안의 모든 인스턴스에 적용
  • 1개의 VPC에 NACL최대 200개까지 생성 가능
  • NACL은 여러개의 서브넷에 적용가능
  • 서브넷은 하나의 NACL만 적용 가능
  • 규칙번호가 낮은 것부터 우선적용
  • Stateless성질

인스턴스에 대한 인바운드/아웃바운드 트래픽을 제어하는 방화벽 역할을 한다. NACL과 가장 큰 차이점을 본다면 NACL은 네트워크 방화벽이고, Security Croup은 인스턴스 방화벽이다.

Security Group의 특징은 다음과 같다.

  • 인스턴스 단위로 적용
  • 특정 그룹을 지정시에만 인스턴스에 적용
  • 1개의 VPC에 SG최대 2500개까지 생성 가능
  • 1개의 SG에 인바운드 60개, 아웃바운드60개 등록가능
  • Stateful 성질(요청 정보를 저장하여 응답하는 트래픽 제어를 하지 않음)

즉 요약을 하자면 같은 서브넷끼리 통신할때: Security Group 정책을 거치면서 통신
다른 서브넷끼리 통신할때: NACL의 정책을 먼저 거친후, Security Group의 정책을 거치면서 통신

한마디로 1차적 보안은 NACL이, 2차 보안은 SecurityGroup이 한다고 하면 된다.

6. elb

elb에 대한 글은 블로그 글로 대체를 하겠다.
좀더 정리해 보자면

AWS에서 지원하는 Elastic Load Balancer, 그에 속하는 L7로드 밸런서 Application Load Balaner, L4로드 밸런서 network Laod Balancer가 있다.

AWS Elastic Load Balancer(ELB)의 정의와 특징

Elastic Load Balancing은 Amazon EC2인스턴스, 컨테이너 및 IP주소와 같은 여러 대상에 대해 수신 애플리케이션 도는 네트워크 트래픽을 여러 가용 영역에 배포한다.

Elastic Load Balancer는 AWS의 로드 밸런서 서비스이다. 로드밸러서의 주요기능은 서버 부하분산, 즉 로드밸런싱으로 특정 서버에 부하가 몰리지 않도록 적절히 분산하는 것이다. EC2뿐만 아니라 ECS의 컨테이너, Lambda등을 상대로 부하분산을 실시한다. On-premise의 L4스위치처럼 부하분산뿐만 아니라 부하분산 대상에 대한 헬스체크, 고정세션, SSL Offload(SSL 암복호화), 헬스체크를 통한 다운 서버 제외 등이 가능하다. 이는 부하분산 기능을 하는 L4스위치의 기본 기능에 해당하며 ELB또한 당연히 보유한다.

7. cloudWatch + AutoScaling

cloudWatch + AutoScaling에 대한 글은 블로그 글로 대체를 하겠다.
최근 임원면접에서의 질문에서 만약 트래픽이 급격하게 증가하는 경우도 오토스케일링을 통해 가용성을 유지할수 있나 라는 질문이 있었는데, 급격하게 트래픽이 증가할 경우는 미리 서버를 세팅해 두어야 한다. 보통 이럴 경우는 클라이언트에게 미리 일정을 공유하고 세팅을 하기에 문제가 없다 다만 운영중의 어느정도의 예상외의 트래픽 증가를 감당하기 위해서 오토스케일링이 어느정도 동반되어야 한다고 생각한다.

출처:
https://medium.com/harrythegreat/aws-%EA%B0%80%EC%9E%A5%EC%89%BD%EA%B2%8C-vpc-%EA%B0%9C%EB%85%90%EC%9E%A1%EA%B8%B0-71eef95a7098

https://aws-hyoh.tistory.com/128

https://www.youtube.com/watch?v=WY2xoIClOFA

0개의 댓글