[AWS]

AWS 공부 6일차 - 서버클라이언트, S3 WEB Hosting, CloudFront사용하기

럭키🍀 2020. 7. 1. 16:01

AWS 6일차

1. WEB 기초 :인터넷을 여는 열쇠 서버와 클라이언트
인터넷이 동작하는 기본원리를 알아보자
인터넷이 동작하기 위해선 최소 2대가 필요하다.
2대의 컴퓨터가 정보를 주고 받기 시작하면 인터넷으로 연결되어
Web Server는 주소를 가지고 있고 하드디스크에 웹파일을 가지고 있다
주소로 Web Browser가 접근하면 웹 파일을 찾아서 전기적 신호로 전달받는다
이를 읽어서 화면에 표시하면 우리가 알고있는 웹이 동작하는 것


이렇게 파일을 요청하는 측을 클라이언트(=브라우저)
서비스를 제공하는 측을 서버라고 부르기러 했당

WebServer를 사용할 수 있다=내 컴퓨터에 있는 내용을 전 세계 모두가볼 수 있게 한다
방법 1.web hosting(회사에 맡기기):쉬우나 배울게 적다
방법 2.자신의 컴퓨터에 직접 설치:어려우나 그만큼 알게 되는 것이 많다.
일단 해보고 2로 원리를 이해하거나
시간없으면 1을 하기

2.AWS S3 WEB Hosting
S3를 이용하면 html,css,js로 만든 파일(웹사이트)을 S3f를 통해 서비스할 수 있다.
전에도 말했듯 S3는 amazon.com이 사용할 정도로 튼튼이~!

1.S3에서 버킷을 만들고 리전을 서울로 지정,별다른 옵션 설정 없이 비공개(퍼블릭 ACL) 해지만 하고 버킷을 완성!
2.생성된 디렉토리로 들오가서 웹페이지를 만드는데에 필요한 파일들을 드래그한다
  업로드할 때 옵션으로 퍼블릭 권한관리>부여함으로 설정하기
  스탠다드 선택하고
  업로드 완성
3.업로드한 파일을 웹사이트로 사용하기 위해선
 버킷의 속성으로가서 정적 웹 사이트 호스팅 첫번째 옵션으로 선택하기

원하는 첫 페이지(인덱스사이트) 지정하고 저장하면 끝!
 우리가 만든 버킷은 웹서버가 된것!
 주소는 정적 웹사이트 호스팅을 다시 눌렀을 때 나오는 주소 
 


3.AWS CloudFront 1-수업소개
*AWS1수업 외에도 HTTP CACHE수업을 봐야한다
~~
CACHE에 대한설명은 여기서 찾도록..

https://opentutorials.org/module/3830
~~
클라우드 프론트를 즐기기 위해서 이해해야 할 2가지 기능
 1.Cache
 웹 페이지를 PHP,Node.js,Django 등으로 만들어서 서비스 하는 중이라 생각해보자
 이러한 기술들은 사용자 요청이 들어왔을 때 html파일 전송이 아닌 프로그래밍 언어로 동적으로 웹페이지를 만들어서
(즉,html코드를 프로그래밍적으로 생성해서) 들어올 때마다 서비스 해주는 방식이다.
훨씬 더 많은 자원을 사용하게 된다. 더 많은 시간고ㅘ 비용 필욜 ㅗ함
 자주 변경이 되는 페이지가 아니라면 비효율적이다
 '사용자가 한 번 요청이 들어왔을 때 컨텐츠를 전송하고 그 다음에 요청이 들어왔을 때는복잠한 과정을 거치지 않고
 저장된 결과를 보여줌 좋을것!'=>저장된 결과를 이용해 응답하는 것,저장='캐시'
 "저장"을 전담하는 것을 캐싱서버라 한다
 클라우드 프론트는 이러한 캐싱서버의 역할을 제공한다.
 


2.CDN
 서버가 서울에 있는데 고객은 멀리있음 접근하는데 오래걸려!
'전세계 어디에 있든간에 빨리 서비스하고 싶다'=>Content Delivery Network


클라우드 프론트는 기본적으로 캐시서버이다. 동시에 AWS의 인프라를 이용하기에 CDN이기도 하다.
웹서버의 부담을 경감하고 전세계 사용자 대상으로 고속으로 서비스하는 CloudFront의 사용자가 돼보자.

 


4.AWS CloudFront 2-수업의 목적

PHP로 동적인 웹사이트를 만들어봣는데 로드하는데 오래걸릴수 있으니 캐시서버를 운영하는게 목표이다

5.AWS CloudFront 3-클라우드프론트 생성
aws 콘솔>services>네트워킹 및 콘텐츠 전송 중에 cloud front선택
create distribution 버튼

 

잠깐💥


cloud front를 만들게 되면 더이상 기존의 web server가 클라이언트를 만나지 않고 클라이언트와 cloud front가 만나게된다.
cloud front가 앞에 있어서 사용자가 cloud front에 접속하면 cloud front가 클라이언트가 되어서 web server에게 요청한다.  web server가 정보를 cloud front에게 보내주면 cloud front는 이 정보를 가지고 있다가 사용자에게 응답해준다.
cloud front가 web server의 정보를 가지고 있으면 
이런점에서 web server는 cloud front에게 정보를 전해주는 의미에서 'Origin'이라하고
전세계 cloud front의 cache server로 분배된다는 점에서 'Distribution'이라한다.

1.Create Distribution버튼 누르기> 두 가지 옵션 중 Web에서 Get Started

*Origin Domain Name:서버의 성격을 갖고있는 aws 서비스를 이미 쓰고 있음 클릭하면 되고
 아니라면(직접 서버를 운영하고 있다면) 그 주소를 붙여넣기( 프로토콜(http같은),파일이름,ip지우고 도메인만! )

+이고잉은 자신이 직접 PHP로 작성하고 호스팅하고있는 사이트를 사용하였다.아래사진은 또다른것!
*Origin의 사용중인 Port번호 쓰기
나머지는 skip하고 create distribution하기

2.이렇게 생성된 클라우드 프론트의 도메인에 가면 DomainName이 있는데 이를 들어가면 볼 수 있다.

 

 

이고잉님이 작성한 php파일을 cloudfront로 만들고 도메인에 접속했을 때 나오는 페이지


굉장히 빨리졌다!

직접 호스팅할때 접속하면 1200ms정도 걸리도록 코드 작성하였다.

 


그치만 origin의 데이터는 바뀌었지만 distribution은 이를 모르면 똑같은 데이터를 보여준다.
다음시간엔 캐시를 컨트롤하는 방법을 알아보자