AWS를 이용한 배포 S3, CloudFront, Route53, ACM

D uuu·2024년 1월 31일
0

AWS

목록 보기
1/1

들어가는 글

  • AWS 의 S3, CloudFront, Route53, ACM 을 이용해서 배포한 과정과 그 속에서 배운 개념에 대해 정리해보고자 한다.

  • 배포 방법 보다는 개념 에 중점을 두어 정리했다.

  • AWS를 중심으로 설명했지만, 개념은 다른 클라우드 서비스에서도 유사하게 적용될 수 있기 때문에 개념을 확실히 이해하고자 하는 목표로 작성했다.



순서

  1. 배포 준비
    1. 프로젝트 준비 및 빌드
  2. S3
    1. S3 란?
    2. S3 를 이용한 정적 호스팅
  3. CloudFront
    1. CloudFront 란?
      1-1. CDN 서비스
    2. CloudFront 와 S3 을 이용한 배포
    3. ACM 을 이용한 HTTPS 통신
  4. Route53
    1. Route53 이란?
      1-1. DNS 서비스
    2. Route53 을 통한 도메인 연결
  5. 정리


S3 란?

  • S3 는 AWS 에서 제공하는 스토리지 서비스이다.

  • Simple Storage Service 의 약자로 앞자리를 따서 S3 라고 이름을 지었다.

  • S3 는 스토리지로도 사용할 수 있을 뿐만 아니라 정적 웹 사이트 호스팅 기능을 지원해서 배포용 빌드 파일을 호스팅 할 수 있다.

  • React 나 Vue.js 와 같이 SPA 로 된 프로젝트의 경우 서버 없이 S3 스토리지에 올리면 간단하게 프론트 앱을 배포할 수 있다.

  • 내 프로젝트 내에서 npm run build 명령어를 통해 빌드 작업을 수행하면 dist 라는 폴더가 생성되고, 이 파일을 S3 버킷에 올려서 정적 호스팅을 설정하면 S3 를 통해 배포된 사이트에 접속할 수 있다.


CloudFront 란?

  • AWS CloudFront 란 AWS 에서 제공하는 CDN 서비스이다.

  • CDN 은 Content Delivery Networt 의 약자로 지리적 제약 없이 전 세계 사용자에게 빠르게 콘텐츠를 전송할 수 있도록 도와주는 기술을 의미한다.

  • CloudFront는 전 세계에 분산된 데이터 센터의 엣지 서버를 사용하여 콘텐츠를 캐싱하고, 사용자가 위치한 곳에서 지리적으로 가까운 엣지 로케이션에서 콘텐츠를 빠르게 제공받을 수 있도록 해준다.

  • CloudFront 는 AWS 에서 제공하는 CDN 서비스로 콘텐츠를 네트워크 상에 좀 더 효율적으로 배포할 수 있도록 도와주는 수단으로 사용된다.

  • SSL 인증서를 통한 HTTPS 호스팅을 지원하며, S3로 배포한 사이트는 SSL 인증서 적용이 불가능하기 때문에 효과적인 배포와 안전한 통신을 위해 CloudFront 와 S3 를 함께 사용한다.


S3 와 CloudFront 를 함께 사용할때의 이점

S3와 CloudFront를 함께 사용하면 매번 S3에 접근해서 콘텐츠를 가져오지 않고 캐싱된 콘텐츠를 효율적으로 가져올 수 있다. 따라서 사용자도 더 빠르게 사이트에 접근이 가능해지고 매번 S3 에 요청하지 않아도 되기 때문에 효율적인 서비스 제공이 가능해진다. 또한 CloudFront에서 SSL 인증서를 통해 HTTPS 호스팅을 사용하면 사이트의 안정성을 높일 수 있다.


Route53 이란? (DNS)

출처 : https://aws.amazon.com/ko/route53/what-is-dns/

  • Route53 이란 AWS 에서 제공하는 DNS 서비스이다.

  • DNS 는 Domain Name System 의 약자로 웹 사이트의 IP 주소와 도메인 주소를 이어주는 역할을 하는 시스템을 말한다.

  • 사용자가 www.example.com 을 입력해서 사이트에 접속하면, DNS 는 도메인에 해당 되는 IP 주소를 찾기 시작한다.

  • 도메인에 해당 되는 IP 주소를 찾으면 브라우저에게 전달한다.

  • 그러면 브라우저는 IP 주소로 접속해서 원하는 사이트에 접속하게 된다.



ACM 이란?

  • ACM 은 Amazon Certificate Manager 의 약자로 SSL/TLS 인증서를 생성하고 관리하는 서비스로서, 이를 사용하여 다양한 AWS 서비스와의 연동에서 보안 통신을 활성화할 수 있다.

  • SSL/TLS 인증서란 네트워크 통신을 보호하고 웹 사이트의 자격 증명을 위해 사용되는데, 쉽게 말해서 내 도메인에 HTTPS를 적용할때 필요한 인증서라고 생각 하면 된다.

  • SSL 이란 ? SSL (Secure Sockets Layer)은 웹 브라우저와 웹 서버간의 보안 통신을 위해 설계되었다. 클라이언트와 서버 간에 데이터를 암호화하여 안전한 통신을 가능하게 한다. 대표적인 프로토콜로 HTTPS 가 있다.

  • TLS 이란 ? TLS (Transport Layer Security)는 SSL 의 후속 버전으로 더 강력한 보안 기능을 제공하며 취약점에 대응할 수 있도록 설계되었다. TLS 는 데이터의 기밀성, 무결성, 인증을 보장하여 안전한 통신을 제공한다.

간단히 말해, SSL 과 TLS 는 데이터를 암호화하고 안전하게 전송하기 위한 프로토콜로 웹사이트에서 사용자와 서버간의 통신이 안전하게 이루어질 수 있도록 도와준다.

  • HTTP 와 HTTPS 의 차이점 ?

    HTTP 는 Hypertext Transfer Protocol
    HTTPS 는 Hypertext Transfer Protocol Secure

둘다 웹에서 정보를 주고받는데 사용되는 프로토콜인데, 두 프로토콜 간에는 중요한 차이점이 있다. 바로 단어에서도 알 수 있듯이 보안(Secure) 의 차이가 있다.

  • HTTP 는 데이터가 암호화 되지 않고 평문으로 전송 된다. 따라서 데이터를 가로채기 쉽고 도청될 수 있습니다.

  • HTTPS 는 SSL/TLS 프로토콜을 사용해서 암호화하여 전송 된다. 따라서 데이터를 안전하게 전송하고 중간에서 정보를 가로채도 암호화 되었기 때문에 보호할 수 있다.

따라서 대부분의 웹사이트에서는 HTTPS 를 사용해서 사용자의 데이터를 보호하고 신뢰감을 주는 사이트임을 알릴 수 있다.



정리

AWS 의 S3, CloudFront, Route53, ACM 을 활용한 배포 과정을 도식화해봤습니다.

사용자 사이트 접속

  • 사용자는 브라우저에 도메인(www.example.com)을 입력하여 사이트에 접속을 시도합니다.

Route53의 DNS 서비스:

  • Route53은 DNS 서비스를 제공하며, 도메인 주소를 IP 주소로 변환하는 데 사용됩니다. 사용자가 브라우저에 도메인 주소를 입력하면, Route53은 해당 도메인에 연결된 IP 주소를 찾아 브라우저로 전달합니다.

CloudFront의 CDN 역할:

  • 브라우저는 해당 IP 주소로 서버에 연결하며, 이때 CloudFront가 CDN 역할을 수행합니다. 사용자의 위치와 가장 가까운 엣지 로케이션에 캐싱된 데이터가 있다면 해당 데이터를 제공하여 빠르고 안정적인 콘텐츠 전송을 도와줍니다.

  • 엣지 로케이션에 캐싱된 데이터가 없다면, CloudFront는 S3로부터 해당 정적 자원을 가져와 엣지 로케이션에 캐싱한 후 클라이언트에 응답합니다.

S3 의 정적 파일 저장소 :

  • S3는 정적 파일(HTML, CSS, JS, 이미지 등)을 저장하고 있는 원본 저장소 역할을 합니다.

ACM을 사용한 SSL 인증서 적용:

  • AWS Certificate Manager (ACM)은 SSL/TLS 인증서를 쉽게 발급, 관리, 및 적용할 수 있도록 도와주는 서비스입니다. ACM에서 발급받은 SSL 인증서를 적용하면, 사용자와의 통신이 암호화되어 사이트의 보안성을 높여주며, 사용자의 정보를 안전하게 전송할 수 있습니다.
profile
배우고 느낀 걸 기록하는 공간

0개의 댓글

관련 채용 정보