본문 바로가기
개발 일기/원티드 프리온보딩

[원티드 프리온보딩] 백엔드 인프라 설계 with AWS week 1-1 (전반적인 AWS 인프라 소개)

by 제이._ 2022. 12. 7.


Week 1-1. 교육 내용

전반적인 AWS에서 제공하는 서비스에 대한 간단한 소개를 교육 받았습니다.

기업에서도 AWS를 정말 많이 사용하는데, 어떤 포인트에서 어떤 서비스를 사용하는지 설명을 들었습니다.

 

Week 1-1. 느낀점 

현업에 나가기 위해서 정말 알아야할 것들이 많다는 것을 알았습니다.

실무적인 부분은 아무래도 신입 입장에서 부족하겠지만, 지식을 습득하고 실무를 진행한다면 적응과 배움이 더 빠르기 때문에 더욱 열심히 해야겠다고 생각했습니다.

 

AWS 서비스는 지금까지 단순 EC2, S3, ELB는 간단하기 알았습니다.

이번 교육을 들으면서 CloudFront와 S3를 결합해서 사용하는 것을 듣고 "반드시 정해진 용도로만 사용하는 것보다 유동적으로 바꿀 수 있으면 바꾸는게 좋겠구나" 라고 느꼈습니다.

 

큰 서비스를 운영하면 사소한 것 하나만 줄여도 서버 비용을 크게 절약할 수 있기 때문에, 항상 어떤 부분에서 어떻게 최적화를 할지 고민을 하면서 공부해야겠습니다!

 

 


AWS VPC

 

프라이빗 서브넷에는 인터넷 연결이 안 되어있는 DB 같은게 들어있어야하고,

퍼블릭 서브넷에는 직접적으로 라우터를 통해 인터넷을 볼 수 있기 때문에 연결이 필요한 것들이 들어가야한다.

 

따라서 인터넷에서 바로 프라이빗 서브넷으로 들어갈 수 있는 방법은 없고, 반드시 퍼블릭 서브넷을 거쳐서 가야한다.

 

질문1 - VPN, VPC 차이?

VPC

  • 단순 울타리 같은 개념
  • VPC내에 있는 모든 서브넷은 라우터에 의해 통신이 된다.

VPN

  • 울타리 안으로 들어가는 연결 장치라고 보면 된다.
  • 회사망을 들어갈 땐 VPN을 이용한다. 이는 회사 내부 VPC망에 가기 위한 수단이라고 보면 된다.

 

질문2 - 퍼블릭과 프라이빗을 나누는 기준

Ans : 보통 DB같은 경우는 프라이빗에둔다. 절대로 유저나 그 누구도 바로 접근할 수 없게 해야한다면 프라이빗에 두고, 어느정도 통신이 필요하면 퍼블릭 서브넷에 둔다.

 

질문3 - 다른 사람이 공격을 하려고 퍼블릭서브넷을 갔는데, 이를 통해서 프라이빗 서브넷을 들어갈 수 있으니 공격할 수 있지 않은가?

Ans : 퍼블릭에 접근할 수 있다면 프라이빗 서브넷에 접근할 수는 있다. 하지만 보안그룹을 통해 꼭 필요한 권한만 준다면, 보안 관리를 할 수 있다.

 

 

AWS API Gateway

  • 어떤 규모에서든 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보안 유지할 수 있도록 하는 완전관리형 서비스이다.
  • 서버의 대문 같은 역할
  • 할 수 있는 것들은 트래픽 관리, CORS지원, 권한 부여 및 엑세스 제어, 제한, 모니터링, API 버전관리, 인증 등등이 있다.

 

 

AWS ELB (Elastic Load Balancing)

  • 다수의 컴퓨팅 리소스 (EC2, Lambda 등)를 부하 분산 시켜주는 아주 중요한 서비스
  • 총 3가지 종류의 Balancer (Application Load Balancer, Gateway Load Balancer, Network Load Balancer)가 있으며, Application Load Balancer가 일반적인 상황에서 가장 많이 쓰인다.

 

 

 

* 자바는 JVM 위에서 돌아가기 때문에 Serverless 환경으로 잘 돌리지 않는다.

 

 

 

AWS S3 (Simple Storage Service)

  • 가장 오래된 AWS 서비스 중 하나로 엄청난 내구성과 가용성을 자랑하며 이미지, 동영상, 오디오 파일과 같은 정적 파일들을 용이하게 관리하도록 돕는 스토리지 서비스이다.
  • 단순 파일의 저장 공간을 넘어서서 데이터를 저장하는 스토리지 플랫폼이다.
  • Example
    • 데이터처리 : S3에 저장되는 Trigger를 이용해 람다를 실행할 수 있다.
      • ex. 인스타그램 사진 썸네일 같은 걸 Trigger로 만들어지는 구조를 통해 부하를 줄임
    • 로그 : AWS 안에서 이뤄지는 대부분의 로그는 S3에 저장된다.
    • 쿼리지원 : AWS Athena를 통해 S3에 저장된 파일을 쿼리할 수도 있다.
    • 호스팅 : Single Page Application(React)를 호스트 할 수도 있다.

 

 

AWS CloudFront

  • 전 세계에 있는 AWS 엣지 로케이션을 통하여 CDN 서비스를 제공한다.
  • 현재 48개국 90개가 넘는 도시에서 410개가 넘는 접속 지점 (엣지 로케이션 400개 이상, 리전별 중간 티어 캐시 13개)로 구성된 글로벌 네트워크를 지원
  • 오리지널 서버까지 가지 않아도 중간 캐시 서버에서 데이터를 받아오면서, 속도는 높아지고 가격을 낮추고 유지보수에 용이하다
  • 캐시 서버를 통해서 본사까지 가지 않고도 각 지점에서 데이터를 얻어올 수 있다.

 

S3는 비싸기 때문에, 현업에서는 CloudFront와 같이 쓰는 경우가 있다.

CloudFront에 캐시로 넣어두면 리소스를 조회할 때마다 S3까지 가지 않아도 CloudFront에서 데이터를 받아올 수 있다. (비용 절감, 속도 증가)

 

 

 

AWS Secret Manager / Parameter Store

  • 데이터베이스 보안 인증 정보 및 API키와 같은 보안 정보를 안전하게 암호화하고 중앙 집중식으로 감사할 수 있도록 도와주는 서비스
  • .env 파일을 서버 별로 따로 관리하기 보다는 한 곳에서 집중적으로 관리
  • DB 정보와 같은 민감한 정보는 암호화가 지원이 되는 Secret Manager에 저장
  • 간단한 정보 (ex. Endpoint)는 Parameter Store에 저장하여 사용한다.