웹 구조 + (AWS Route53, CloudFront, ACM, SSL)

mizu·2025년 1월 5일

DevOps

목록 보기
3/8

📍 What is a Web Application?

  • 웹 브라우저에서 돌아가는 소프트웨어

📍 Web

  • 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간

📍 HTTP

  • Hypertext Transfer Protocol : 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜
  • HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜
  • HTTP는 OSI 네트워크 통신 모델의 애플리케이션 계층의 프로토콜
  • 기본 포트 : 80

📍 HTTPS

  • Hypertext Transfer Protocol Secure : HTTP의 확장 버전
  • HTTP는 암호화되지 않은 데이터를 전송. 그렇기 때문에 또 다른 보안 계층을 추가하기 위해 HTTPS로 확장.
  • HTTP 요청 및 응답을 SSL 및 TLS 기술에 결합
  • 검색 엔진은 HTTP의 신뢰성이 더 낮기 때문에 보통 HTTP 웹 사이트 콘텐츠의 순위를 HTTPS 웹 페이지보다 낮게 지정
  • 기본 포트 : 443

📍웹 구조


출처 : TIL - 웹의 구조

(1) Web Client에서 Domain 주소에 대한 요청을 DNS로 날림
(2) DNS에서 해당 도메인 주소에 대한 IP 주소 리턴
(3) 해당 IP 주소로 index.html 요청 보냄
(4) index.html 응답

DNS

  • 사람이 읽을 수 있는 도메인 이름을 머신이 읽을 수 있는 IP 주소로 변환하는 것

Web Server

  • 클라이언트의 요청에 따라 HTML, CSS, JS 이미지 파일과 같은 정적 파일을 응답하여 제공하는 소프트웨어
  • 단순히 저장된 웹 리소스들을 클라이언트로 전달, 클라이언트로부터 콘텐츠를 전달 받아 저장하거나 처리
  • 동적인 요청이 들어왔을 때, 해당 요청을 WAS로 전달
  • Nginx, Apache

WAS (Web Application Server)

  • 클라이언트 요청에 대한 동적인 처리를 담당
  • 웹 서버가 할 수 있는 기능 대부분이 WAS에서도 처리 가능, 비즈니스 로직을 처리할 수 있어 사용자에게 동적인 콘텐츠 전달 가능
  • Tomcat, JEUS

❓ WAS가 WS의 일도 처리할 수 있다면 굳이 WS가 필요한가?
=> WAS는 DB 조회 및 다양한 로직을 처리하는데 집중해야함. 따라서 단순한 정적 콘텐츠는 웹 서버에게 맡기고, 기능을 분리해 서버 부하를 방지해야함.

출처 : https://yozm.wishket.com/magazine/detail/1780/
https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/


AWS Route53

  • 가용성과 확장성이 뛰어난 DNS
  • 도메인 구매 및 관리 가능
  • 사용한 내역에 대해서만 지불
  • simple routing/failover routing
  • Simple Routing의 경우 Load Balancer/CloudFront등과 연결할 수 있었음
  • FailOver Routing의 경우 Primary/Secondary로 나뉨. Primary는 AWS의 서비스, Secondary는 GCP의 로드밸런서 IP주소와 연결. 장애 발생 시, 자동 전환되는 것 확인. (단, VPC 피어링이 되어있어야 함)

AWS CloudFront

  • 빠르고 안전한 프로그래밍 가능한 콘텐츠 전송 네트워크. 전세계적으로 CloudFront의 엣지 로케이션에서 HTTPS를 통해 콘텐츠를 안전하게 전송할 수 있음.
  • CDN 서비스 (Content Delivery Network) : 전 세계에 분산된 서버 네트워크, 빠르고 효율적으로 콘텐츠를 전달하기 위해 만들어짐. 정적 콘텐츠를 사용자와 물리적으로 가까운 위치에서 제공하여 로딩 시간 단축, 서버 과부화 방지.
  • CDN 서비스 장점 : 페이지 로드 시간 단축, 대역폭 비용 절감, 콘텐츠 가용성 제고, 웹 사이트 보안 강화(DDoS 공격 방지)
  • S3와 연결하여 사용하여 콘텐츠를 보호할 수 있음
  • CloudFront 캐싱오리진 서버에서 직접 응답해야 하는 요청의 수를 줄임. 요청을 뷰어의 위치와 가까운 엣지 로케이션으로 라우팅, 해당 캐시에서 콘텐츠를 제공, 아직 캐싱되지 않은 경우에만 S3 버킷에서 검색.
  • 따라서 S3에 업데이트가 있다고 하더라도 자동 반영이 되지 않음. 캐시 무효화하고 진행하면 OK.

    https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/tutorial-s3-cloudfront-route53-video-streaming.html#cf-s3-step1

ACM

  • AWS 웹사이트와 애플리케이션을 보호하는 퍼블릭 및 프라이빗 SSL/TLS 인증서와 키를 만들고, 저장하고, 갱신하는 복잡성 처리
  • ACM에서 직접 발급하거나 서드 파티 인증서를 ACM 관리 시스템으로 가져오는 방법. 통합 AWS 서비스에 대한 인증서를 제공 가능.

SSL

  • Secure Sockets Layer : 웹 사이트와 브라우저 간의 데이터를 암호화하여 인터넷을 연결을 보호하는 기술
  • AWS에서는 Route53에서 도메인을 구매하고 ACM을 사용하면 됨
  • 그 외의 무료 제공처 : Let's encrypt
profile
문제를 해결해보자 ✨

0개의 댓글