Server-less Web Service (S3, CloudFront, Route53) 개요 이전 사내 웹 서비스를 서버리스로 호스팅 한 사례를 공유해보려 한다. 웹 개발자나 클라우드에 관심이 있는 사람들에게는 정말 기초적인 작업이지만 서버리스 환경을 처음 접하게 된 계기가 되어 준비하였다. 1. 신규 웹페이지 서비스 오픈 1. 웹 페이지는 개발이 완료되어 데이터 공유받음 2. 호스팅 방식 선택 3. 서비스 오픈 진행 2. 신규법인 웹페이지 호스팅 호스팅 방식 1. 본사 온프레미스에서 호스팅 2. Cloud에서 서버 생성하여 호스팅 3. AWS Service 활용하여 서버 없이 호스팅 1-1. 본사 VM 호스팅 금액: 0원(전기세...?) 관리: 서버 관리자 필요 난이도: 직접 웹서버를 구축해야 함 2..
Canned Policy / Custom Policy 를 사용한 Signed URL 생성 https://cwpack0730.tistory.com/88 [AWS] CloudFront Signed URL 사용 설정Signed URL 사용 설정하기 먼저 Signed URL을 사용하러면 CloudFront 배포에서 Behavior(동작, 행동) 설정이 필요하다. 본인은 실습을 위해 새로 웹 서버를 생성하고 CloudFront로 배포중인 상태이다. CloudFrontcwpack0730.tistory.com 지난 포스팅에서 CloudFront 키 페어 생성을 완료했다. 이제 본격적으로 Signed URL을 직접 생성해보겠다.Signed URL은 보통 애플리케이션에서 자체적으로 생성하여 사용한다. 따라서 Java,..
Signed URL 사용 설정하기 먼저 Signed URL을 사용하러면 CloudFront 배포에서 Behavior(동작, 행동) 설정이 필요하다. 본인은 실습을 위해 새로 웹 서버를 생성하고 CloudFront로 배포중인 상태이다. CloudFront 배포 목록에서 EC2와 연동한 CloudFront 배포를 선택한다. 선택한 CloudFront 배포에서 동작 탭으로 이동하여 defult 동작을 편집하였다. ! CloudFront Restrict Viewer Access 설정 ! 뷰어 엑세스 제한을 Yes로 변경하여 Signed URL을 사용했다. 신뢰할 수 있는 인증 유형으로 키 그룹을 선택할 수 있는 Trusted Key groups, 서명자(사용자)를 직접 선택할 수 있는 Trusted signer..
Signed URL은 CloudFront로 배포되는 파일의 사용을 제한하는 기능이다. Signed URL은 특정 날짜가 지나면 파일을 받지 못하게 하고 싶을 때, 특정 날짜 이후에 파일을 받게 하고 싶을 때, 특정 IP에서만 파일을 받을 수 있도록 할 때 사용된다. Signed URL은 크게 2가지가 있다. Canned Policy를 사용한 Signed URL : 파일 1개의 사용을 제한한다. 또한, 특정 날짜가 지나면 파일을 받지 못하게 하는 기능만 사용할 수 있다. 정책(Policy)의 내용이 URL에 포함되어 있지 않아 URL의 길이가 짧다. Custom Policy를 사용한 Signed URL : 파일 여러 개의 사용을 제한한다. 날짜가 지나면 파일 못받게 하는 기능, 날짜 이후에 받게 하는 기능..
https://cwpack0730.tistory.com/79 [AWS] CloudFront 실전 구축 세팅 (EC2와 연동하기) CloudFront 배포 CloudFront 배포는 CloudFront의 가장 기본적인 단위이다. 이 배포가 독립적인 도메인을 가지게 된다. 이후 DNS 서비스인 Route 53이나 별도의 DNS 서버에서 배포 도메인을 CNAME으로 설정하면 cwpack0730.tistory.com 이전 포스팅에서 이어서 진행하겠다. CloudFront 캐싱 확인하기 배포까지 완료되었고 CloudFront에서 캐싱이 되는지 확인하겠다. cd /var/log/apache2 $ tail -f access_log 로그를 띄우고 이제 EC2 DNS로 접속해보고 CloudFront DNS로 접속하여 비..
CloudFront 배포 CloudFront 배포는 CloudFront의 가장 기본적인 단위이다. 이 배포가 독립적인 도메인을 가지게 된다. 이후 DNS 서비스인 Route 53이나 별도의 DNS 서버에서 배포 도메인을 CNAME으로 설정하면 사용자가 구매한 도메인과 연결할 수 있다. 여기서 중요한 개념이 오리진(Origin)이다. CloudFront는 CDN 서비스이기 때문에 항상 원본에서 파일을 복사해서 가져와야 한다. 즉, 파일을 가져오는 원본 서버가 오리진이다. CloudFront가 지원하는 오리진은 다음과 같다. S3 버킷 : 가장 기본적인 오리진이다. S3에 버킷을 생성하고 파일을 저장하기만 하면 되기 때문에 가장 간편하다. EC2 인스턴스 : EC2 인스턴스에 웹 서버를 구축하면 오리진으로 ..
CloudFront CloudFront는 개발자 친화적 환경에서 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전세계 고객에게 안전하게 전송하는 고속 컨텐츠 전송 네트워크(CDN) 서비스이다. CloudFront는 CDN 서비스와 이외에도 기본 보안 기능(Anti-DDOS)을 제공한다. CDN이란? CDN(Content Delivery Network or Content Distribution Network, 컨텐츠 전송 네트워크)은 컨텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템이다. 인터넷 서비스 제공자(ISP, Imternet Service Provider)에 직접 연결되어 데이터를 전송하므로, 컨텐츠 병목을 피할 수 있..
S3에 올려진 그림 파일을 원하는 도메인에서만 보여줄 수 있도록 설정해보겠다. S3는 데이터 전송량에 따라 요금을 책정하기 때문에 원하지 않는 도메인에서의 링크를 막는다면 그만큼 비용을 절감할 수 있다. HTTP Referer? HTTP Referer는 HTTP 헤더값으로서 웹 브라우저에서 생성하는 데이터이다. 링크를 어디서 클릭했느냐, 그림 파일을 어디서 보여줬느냐를 알 수 있다. S3에서는 이 Referer 값을 판단해서 파일을 보여주지 말지 결정할 수 있다. HTTP Referer 실습 이번에는 버킷을 2개 사용하겠다. 버킷 하나에 웹사이트를 구축하고 HTTP Referer를 설정한다면 정작 웹사이트의 HTML 파일을 볼 때는 HTTP Referer 설정에 막혀버리기 때문에 의미가 없다. 새로 생성..
S3정적 웹사이트 호스팅 사용 S3를 웹 서버 형태로 사용해보겠다. 사실 저번 실습을 진행해보면 알겠지만 정적 웹사이트 호스팅 설정을 하지 않더라도 S3에 파일을 올리면 웹 브라우저로 파일에 접근할 수 있다. 하지만 그냥 사용하는 것과 정적 웹사이트 호스팅 설정을 사용하는 것은 큰 차이점이 있다. 다음은 일반적인 S3의 URL 형태이다. http://s3-ap-northeast-1.amazonaws.com/examplebucket10/Jellyfish.jpg s3-.amazonaws.com// 다음은 정적 웹사이트 호스팅을 사용한 S3의 URL 형태이다. http://examplebucket10.s3-website-ap-northeast-1.amazonaws.com/Jellyfish.jpg .s3-web..
공유와 권한 (S3 객체 권환 관리하기) SC 버킷 권한 관리하기 이번에는 버킷에 권한을 설정하겠다. 버킷에 권한을 설정하면 버킷 안에 든 모든 객체에 적용된다. Select Type of Policy: SNS Topic Policy, IAM Policy, SQS Queue Policy, S3 Bucket Policy를 선택할 수 있다. 여기서는 S3 Bucket Policy를 선택한다. Effect: 허용(Allow), 거부(Deny)를 선택할 수 있다. 기본값 그대로 Allow를 선택한다. Principal: 권한을 적용할 사용자다. IAM 계정을 사용할 수 있다. 여기서는 인터넷에 전체 공개할 것이므로 *을 입력한다. AWS Service: 처음 Select Type of Policy를 선택하면 그..
AWS S3 란? Simple Storeage Service의 약자로 업계 최고의 확장성과 데이터 가용성 및 보안과 성능을 제공하는 온라인 오브젝트(객체) 스토리지 서비스이다. (파일 서버의 역할을 하는 서비스라고 보면 쉽다.) (앞에 온라인이 붙는 이유는 데이터조작에 HTTP/HTTPS를 통한 API가 사용되기 때문이다.) 일반적인 파일서버는 트래픽이 증가함에 따라서 장비를 증설하는 작업을 해야 하는데 S3는 이와 같은 것을 대행한다. 트래픽에 따른 시스템적인 문제는 걱정할 필요가 없어진다. 또 파일에 대한 접근 권한을 지정할 수 있어서 서비스를 호스팅 용도로 사용하는 것을 방지할 수 있다. AWS S3 객체 스토리지의 특징 객체 스토리지란 객체로 된 파일을 다루는 저장소 라는 말이다. (반대되는 말로..
AMI(Amazon Machine Images)는 EC2 인스턴스를 생성하기 위한 기본 파일입니다. AWS에서는 빈 EC2 인스턴스에 직접 OS를 설치할 수 없습니다. 그렇게 때문에 미리 OS가 설치된 AMI를 이용하여 EC2 인스턴스를 생성하게 됩니다. 이 AMI는 단순히 OS만 설치되는 것이 아닌, 각종 서버 애플리케이션, 데이터베이스, 방화벽 등의 네트워크 솔류션, 각종 비즈니스 솔류션 등도 함께 설치될 수 있습니다. 💡 **프리 티어에서 사용 가능** AMI는 프리 티어에서 무료로 사용가능 합니다. 또한, 모든 설치와 설정이 완료된 AMI를 이용하여 EC2 인스턴스를 신속하게 늘려나가는 작동 횡적 확장(Auto Scaling)을 가능하게 합니다. 즉, AMI는 설치 및 설정이 완료된 EC2 인스턴..