이번에는 기본적이지만 조금 큰 사이즈의 인프라를 구축해보려 한다. 기본적인 흐름은 다음과 같다. 사용자는 Route 53에 등록된 Domain을 통해 접근한다. Route 53은 매칭되는 Alias를 통해 CloudFront에 접근한다. CloudFront는 동적인 Path라면 IGW(Internet Gateway)를 통해 ALB의 Origin으로, 정적인 Path라면 S3의 Origin으로 Forward한다. ALB에 의해서 Auto Scaling되는 EC2들에 로드밸런싱을 하고, 이 Auto Scaling Group(이하 ASG)는 동일한 EBS를 공유한다. RDS는 Master/Standby로 서로 다른 리전에 구성해 가용성을 높인다. 관리자는 키페어를 사용한 SSH를 통해 Public Subnet..
시나리오 1) 사용자는 CloudFront에서 제공하는 Domain Name을 통해 Request를 보낸다. 예를 들면, http://cloudfront.example.com/test.mp4와 같은 Request! 2) CloudFront는 Behavior 목록에서 /test.mp4에 일치하는 Path Pattern을 찾는다. 3) 찾은 항목의 Origin에 설정된 Origin Domain Name & Path 로 전달한다. 사용자는 S3 Bucket에 직접 접근할 수 없고, CloudFront를 통해서만 접근할 수 있다. 이때 CloudFront에 보호 계층을 추가해 전체적인 인프라 구성에 보안성을 향상시킬 수 있다. 자세한 내용은 CloudFront 포스팅을 참고하자. ch4njun.tistory.c..
시나리오 [Users] 1) 사용자는 80번 포트를 통해 Route53에 Request를 보낸다. (http://example.com:80) 2) Route53은 이를 Internet Gateway를 통해 Load Balancer로 전달한다. 3) Load Balancer는 이를 8080번 포트로 Auto Scailing되고 있는 EC2 서버에 전달한다. 4) EC2 서버는 Request보낸 것에 대한 Response를 NAT Gateway를 통해 보낸다. [Admin] 1) SSH Key를 사용해 Public Subnet에 위치한 관리자용 EC2에 연결한다. 2) 관리자용 EC2에 저장된 SSH Key를 사용해 웹 서버가 구동중인 EC2에 연결한다. vpc.tf # VPC를 10.0.0.0/16 B C..
AWS 사용설명서에 나와있는 CloudFront에 대한 설명을 살펴보면, 라고 합니다. 즉, CloudFront는 웹 애플리케이션 개발자가 콘텐츠를 배포할 수 있는 방법을 제공한다는 것이다. 여기에 비용 절감과 속도는 덤으로!! 보통 CloudFront를 사용한다 했을때 가장 기본적인 구성은 아래와 같이 될 것이다. 사용자는 CloudFront로 Request를 보내면 이의 Path Pattern에 따라서 동적 콘텐츠면 VPC에 존재하는 Load Balancer로 보내 처리하고, 정적 콘텐츠면 Amazon S3로 보내 처리하는 흐름이다. Simple Configuration 그럼 CloudFront를 통해 웹 애플리케이션 콘텐츠가 배포되는 과정을 살펴보자. (Origin 목록과 Behavior 목록이 이..
AWS Lambda란? 서버를 프로비저닝하거나 관리하지 않고 코드를 실행할 수 있게 해주는 컴퓨팅 서비스이다. AWS Lambda는 필요시에만 코드를 실행하며, 요청에 따라 자동으로 확장이 가능하다. AWS Lambda가 지원하는 언어 중에서 하나로 코드를 공급하기만 하면 된다. 언제 AWS Lambda를 사용할까? AWS Lambda에서 지원하는 언어로 애플리케이션 코드를 작성하고, 제공되는 리소스 내에서 실행할 수 있는 경우 ㅁ낳은 애플리케이션 시나리오를 위한 이상적인 컴퓨팅 시스템이 된다. AWS Lambda를 사용하면 사용자는 자신의 코드에 대해서만 책임을 갖는다. 콘솔로 Lambda 함수 생성 이후 AWS Lambda 콘솔 편집기를 사용하여 함수를 생성하면 된다. AWS Lambda의 보안 데이..
VPC의 보안그룹 보안그룹은 연결된 Amazon EC2 인스턴스에 대한 방화벽 역할을 수행하여 인스턴스 수준에서 인바운드 트래픽과 아웃바운드 트래픽을 모두 제어한다. 인스턴스를 시작할 대 생산한 하나 이상의 보안그룹과 인스턴스를 연결할 수 있다. 인스턴스를 시작할 때 보안그룹을 지정하지 않을 경우 VPC에 대해 인스턴스는 기본 보안그룹과 자동으로 연결된다. 각 보안그룹에 대해 인스턴스에 대한 인바운드 트래픽을 제어하는 규칙과 아웃바운드 트래픽을 제어하는 규칙 Set을 추가한다. 보안그룹 기본 사항 허용 규칙을 지정할 수 있지만 거부 규칙은 지정할 수 없다. 인바운드 트래픽과 아웃바운드 트래픽에 별도의 규칙을 지정할 수 있다. 보안그룹 규칙을 사용하면 프로토콜과 포트 번호를 기준으로 트래픽을 필터링할 수 ..