티스토리 뷰
CloudFront 기능을 위해서는 캐시(Cache)의 개념을 알아야 하는데
캐시는 저장된 결과를 이용해서 응답하는 것을 의미합니다.
클라이언트에서 매번 요청이 들어올 때마다
복잡한 웹프로그래밍 코드를 직접 실행하고 계산하는 것이 아니라
기존에 저장되어 있는 계산 결과를 보여주는 방식으로 이해하면 되겠습니다.
이러한 역할을 전담하는 서버를 캐시서버라고 하고
CloudFront 의 기능 중 하나가 캐시서버의 역할을 하는 것입니다.
그리고 다른 중요한 기능이 AWS 인프라를 이용해서 전세계에 캐시 콘텐츠를 배포할 수 있는
CDN(Content Delivery Network) 입니다.
여튼 CloudFront 를 사용하기 위한 실습을 진행하겠습니다.
우선 프리티어로 EC2를 하나 생성해주세요
EC2를 생성하려면 키페어와 보안그룹도 하나씩 지정해줘야 합니다.
키페어를 가지고 있지 않으면 신규로 생성해주세요
이 EC2 인스턴스에 간단한 웹문서를 띄우고 접속할 겁니다.
http, https 도 오픈합시다.
aws 웹콘솔을 이용하면 ec2 의 ssh 로 바로 연결할 수 있습니다.
근데 전 윈도우 터미널이 더 편할것 같아서
기존에 설치한 wsl ubuntu 로 ssh 를 이용하겠습니다.
ec2 가 퍼블릭 IP 를 제공해주니까 ssh 접속은 어렵지 않은데 키페어를 ubuntu 로 전달해야 하네요.
이럴때는 본체 PC 윈도우탐색기를 이용해서 다운로드 폴더에 저장된 키페어를
리눅스 내 계정 홈디렉토리에 복사해서 이용하면 됩니다.
wsl 에 해당 파일이 잘 전달되었죠?
근데 wsl 을 이용하니 듣도보도 못한 Zone.Identifier 파일이 생겨났습니다.
파일의 출처를 기록한 별도의 파일이라는데 내용으 까보니 맞는거 같습니다.
Zone.identifier 파일에 관련된 보다 자세한 설명은 아래 문서를 참고하세요
https://xpectation.tistory.com/m/223
여튼 wsl 리눅스 홈 디렉토리에 ec2 키페어를 전달했으니
ssh 로 접속만 하면 되겠습니다.
아.. bad permission 떳네요.
생각해보니 초반에 3학년 3반 수업 중 ec2 접속할 때도 윈도우 폴더에서 같은 증상이 있었습니다.
근데 블로그 문서에는 안 적어놨네요. 이래서 수업을 잘 들어야 합니다.
여튼 시스템 메세지가 퍼미션 0644는 너무 오픈되어 있다고 하니
원하는 대로 퍼미션을 수정해줍니다.
그리고 다시 접속하면 성공!
이제 ec2 내에 간단히 웹서버를 하나 설치하고
웹 루트 디렉토리에 간단한 웹문서를 하나 설치해줍니다.
참고로 yum repository 에 등록된 웹서버 서비스 이름이 기억안나면
yum list 나 yum search 로 찾아보면 됩니다.
아니면 구글링하던가..
httpd 서비스가 잘 동작하는지 살펴봐야합니다.
systemctl status 로 살펴보니 설치는 되어 있는데 동작은 안하고 있었네요.
그래서 systemctl start 로 구동시켰는데 access denied 입니다.
우리는 일반 유저 ec2-user 입니다.
이래서 sudo 를 붙여야 하고 모든 aws 문서는 ec2-user 를 기준으로 sudo 를 사용하게 작성되어 있습니다.
참고로 bash 내에서 커서 옮겨다니는 건 아래 링크를 좀 살펴보세요
alt + b, alt + f 는 정말 유용합니다.
하는 김에 enable 도 걸어줍시다.
그래야 서버(ec2)가 재부팅 되었을 때 httpd 서비스가 자동으로 실행됩니다.
httpd 를 설치하면 /var/www/html 디렉토리가 생성됩니다.
해당 위치로 들어가서 index.html 을 하나 작성해줍시다.
간단한 index.html 작성이라도 sudo 를 안붙이고
그냥 vim index.html 로 실행하면 아래와 같이 권한 문제에 부딪히게 됩니다..
여튼 이제 웹브라우저를 통해 ec2에 접속하면 해당 페이지가 잘 보입니다.
개발자 도구의 네트워크 탭을 열고 새로고침을 해보면
접속에 91ms 가 걸리는 것을 확인할 수 있습니다.
서울리전이면 20ms 대에 접속가능할 것 같은데 도쿄 리전이라 그런가 봅니다.
여튼 웹 페이지 접속에 0.091 초가 걸리니 느린건 아닌 듯 합니다.
여튼 이제 원래의 index.html 을 index.php 로 내용과 함께 수정하고
지연시간을 발생 시키겠습니다.
다시 접속했더니 제가 짜놓은 php 인덱스가 아닌 apache 기본 인덱스가 작동합니다.
php 를 설치하고 apache 와 연동 해야겠네요 ㅋ
우선 php 를 설치하고
httpd.conf 파일을 수정해야하는데
DirectoryIndex 항목에 index.php 를 추가해주고
httpd 를 restart 해주면
웹서버에 php 가 정상 반영되어 index.php 를 조회할 수 있습니다.
몇번 새로고침 해봐도 코드 내 지연시간 1초가 반영되고 실시간 date 가 찍히는
동적 웹 프로그래밍 문서가 잘 나옵니다.
지금은 코드를 수행하다보니 1초가 걸릴 수 밖에 없는 구조인데
이 결과를 미리 캐시에 저장해서 1초가 걸리지 않도록 해주는게 CloudFront 입니다.
CloudFront 적용은 다음 시간에 이어서 하겠습니다.
- Total
- Today
- Yesterday
- tar
- nc
- OpenSSL
- solution
- gz
- Strings
- over the wire
- Linux
- 웹보안공부
- OverTheWire
- SSL
- 풀이
- Natas
- 32bit
- 리터럴
- HTTPS
- java
- 리눅스
- 압축파일
- Encode
- ssh
- bz2
- tr
- BASE64
- 웹보안
- X32
- Bandit
- find
- natas7
- grep
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |