WEB APPLICATION ON AWS 3-TIRE ARCHITECTURE 손 양 원 Sr. Technical Trainer
BACKGROUND 예산은 없고.. 전문인력도 부족하고.. 투자했다가 실패하면?..
BACKGROUND 인터넷속도향상 H/W 성능개선 Cloud Service 분산처리 가상화
CLOUD COMPUTING 공유된 컴퓨팅 자원에 언제 어디서나 필요할 때마다 접근해서 최소한의 관리 노력으로 신속하게 이용 블록공간 서버 오브젝트공간 협업 통신 금융 콘텐츠 모니터링 SaaS PaaS IaaS
CLOUD COMPUTING 서비스업체 및 시장규모 국내 글로벌
CLOUD COMPUTING 글로벌 클라우드서비스 시장점유율 Source : Synergy Research Group Q1 2015 Amazon AWS +49% salesforce Microsoft IBM Google +34% +96% +56% +74% Q1 2014 Amazon AWS salesforce Microsoft IBM Google Quarterly Revenue 500($m) 1,000($m) 1,500($m) Cloud Infrastructure Service Revenue Growth (IaaS, PaaS, Private & Hybrid Service)
CLOUD COMPUTING 글로벌 클라우드서비스 Infrastructure
AMAZON WEB SERVCIE AWS History of Innovation Amazon Simple DB Elastic Load Balancing Auto Scaling Amazon VPC Amazon RDS Amazon SES AWS Elastic Beanstalk AWS CloudFormation Amazon Elasticache AWS Direct Connect AWS GovCloud Amazon Elastic Transcoder AWS OpsWorks Amazon CloudHSM Amazon AppStream Amazon CloudTrail Amazon WorkSpaces Amazon Kinesis AWS IoT AWS Moblie Hub Amazon EC2 Container Registry Amazon Database Migration Service Amazon Inspector Amazon RDS for MariaDB Amazon Kinesis Analytics Amazon Kinesis Firehose AWS Import/Export Snowball Amazon QuickSight Amazon Elasticsearch Service AWS WAF Amazon API Gateway Amazon Device Farm Amazon EFS Amazon WorkMail Amazon Machine Learning 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 Amazon S3 Amazon EBS Amazon SNS AWS Storage Gateway AWS CodeCommit Amazon SQS Amazon CloudFront Amazon IAM Amazon DynamoDB AWS CodePipeline Amazon EC2 Amazon Route 53 Amazon CloudSearch Amazon ECS Amazon SWF Amazon Lambda Amazon Glacier Amazon Config Amazon Redshift Amazon RDS for Aurora AWS Data Pipeline AWS KMS Amazon Cognito Amazon WorkDocs AWS Directory Service Amazon Mobile Analytics
AMAZON WEB SERVCIE AWS Global Infra Locations Montreal (Coming soon) 12 Regions 32 Availability Zone 53 Edge Location
AMAZON WEB SERVCIE Availability Zone (가용영역) 가용영역 A Availability Zone A 지역 Region 가용영역 B Availability Zone B 가용영역 C Availability Zone C
AMAZON WEB SERVCIE AWS Management Console 계정 리전
3 TIER WEB APPLICATON Architecture User WEB WEB Auto Scaling Group WEB WEB Cloud Front Public Subnet 1 Public Subnet 2 Cloud Watch SNS App Auto Scaling Group App S3 Private Subnet 1 Private Subnet 2 Availability Zone A Availability Zone B
3 TIER WEB APPLICATON Agenda 1. Network Amazon Virtual Private Cloud (VPC) 4. Database Amazon Relational Database Service (RDS) 2. Compute Amazon Elastic Compute Cloud (EC2) 5. CDN Amazon CloudFront Amazon Elastic Load Balancing (ELB) Amazon Auto Scaling 6. DNS Route53 3. Storage Amazon Elastic Block Store (EBS) Amazon Simple Storage Service (S3)
1. NETWORKING
1. NETWORKING Amazon Virtual Private Cloud 클라우드 리소스의 격리 개인화된 격리 영역 가상의 네트워크 환경 IP 어드레스 범위 선택 Amazon VPC 서브넷, NACL 및 라우팅 테이블 설정 네트워크 게이트웨이 구성
1. NETWORKING Amazon Virtual Private Cloud Default VPC + Custom VPC 172.31.0.0/20 172.31.16.0/20 172.31.32.0/20 Public Subnet 1 Public Subnet 2 Public Subnet 3 10.0.0.0/24 Public Subnet 4 NAT 10.0.1.0/24 Private Subnet 1 Availability Zone A Availability Zone B Availability Zone C
1. NETWORKING Amazon Virtual Private Cloud VPC Peering VPC 1 VPC 2 Bastion NAT Public Subnet Public Subnet WAS Private Subnet Private Subnet
1. NETWORKING Amazon Virtual Private Cloud 서브넷과 라우팅테이블 Internet Gateway Private : 10.0.0.5 EIP : 198.51.100.1 Subnet 1 10.0.0.0/24 Availability Zone A V1 Destination Target 10.0.0.0/16 Local 0.0.0.0/0 igw-id Private : 10.0.1.5 Subnet 2 10.0.1.0/24 Router V2 Destination Target 10.0.0.0/16 Local Availability Zone B Customer Gateway Corporate Network VPG Subnet 3 10.0.2.0/24 Availability Zone C VPC 10.0.0.0/16 Region VPN Connection Destination Target 10.0.0.0/16 Local 0.0.0.0/0 vgw-id
1. NETWORKING Amazon Virtual Private Cloud Network ACL 10.0.0.0/24 10.0.1.0/24 10.0.2.0/24 Availability Zone A Availability Zone B Availability Zone C
1. NETWORKING Amazon Virtual Private Cloud Security Group Tier Port Source 80 0.0.0.0/0 WEB 443 0.0.0.0/0 22 Bastion APP 22 Bastion 8000 Web 3306 207.171.191.92/32 DB 3306 App 22 Bastion Bastion 22 207.171.191.60/32
1. NETWORKING Amazon Virtual Private Cloud Network ACL vs Security Group Network ACL Security Group 범위 서브넷 인스턴스 기본값 전부 허용 전부 차단 설정 Rule 넘버가 큰수에서 작은수로 덮어쓰기 포트 허용 상태 비저장(stateless) 저장(stateful) 적용 즉시 즉시
2. COMPUTE
2. COMPUTE Amazon Elastic Compute Cloud 용량 조절이 가능한 가상 서버 컴퓨팅 리소스에 대한 완전한 제어 새로운 인스턴스 획득에 필요한 시간 수분 Amazon EC2
2. COMPUTE Amazon Elastic Compute Cloud Amazon EC2에 관한 사실 여러가지 인스턴스 유형을 통해 컴퓨팅 용량 조절 가능 새로운 서버 인스턴스를 획득하여 부팅하는데 필요한 시간을 수분 혹은 수십 초내로 단축 고객사의 요구사항 변화에 따라 용량 확장 가능 실제로 사용한 용량 만큼에 대해서만 지불 리눅스 혹은 윈도우 운영체체 중에서 선택 안정성을 위해 복수의 지역 혹은 가용영역에 걸쳐 배포
2. COMPUTE Amazon Elastic Compute Cloud Amazon EC2 사용법 즉시 구동하기 위해 기구성된 Amazon Machine Image (AMI)를선택, 혹은 고객사 애플리케이션 라이브러리, 데이터와연관된구성설정을포함하는AMI 생성 Amazon EC2 인스턴스에 대해 적용되는 보안 및네트워크 접속 권한 구성 원하는 인스턴스 유형 선택한 후, 웹서비스 API 혹은 제공되는 다양한 관리 도구를 이용해 인터턴스를 구동, 종료, 혹은모니터링 복수의 위치에서 구동할지, 정적 IP어드레스를 부여할지, 혹은 지속성 있는 블록스토리지를 장착할지 결정 인스턴스-시간 혹은 데이터 전송량과 같이 실제로 사용된 리소스에 대해서만 지불
2. COMPUTE Amazon Elastic Compute Cloud Amazon EC2 인스턴스의 선택은 중요합니다 보다 큰컴퓨팅 용량을 갖는 인스턴스를 선택하면 시간 뿐만 아니라 비용도 절감 가능. 시간당요금이비싸도, 보다짧은시간동안사용하면 전체비용은 더저렴 복수의 인스턴스 유형을 제공하여, 고객사의 작업부하의 요구에 맞추어 최적으로 확장 가능. 인스턴스 유형을 선택하는데 있어, 다음의 사항을 고려 코어 개수 메모리 크기 스토리지 용량 & 유형 네트워크 성능
2. COMPUTE Amazon Elastic Compute Cloud 과금 타입 온 디맨드 인스턴스 (On-Demand Instance) 컴퓨팅 파워에 대해 사용한 만큼만 지불 선납금이나 장기계약 필요 없음 타입 별시간당 요금
2. COMPUTE Amazon Elastic Compute Cloud 과금 타입 예약 인스턴스 (Reservation Instance) 1년혹은 3년계약 계약 시할인 적용 받기 위한 1회성 선납금 지불 낮은 선납금을 지불하는 대신, 시간당 요금에 대해 크게 할인 적용 필요 시가용한 컴퓨팅을 바로 확보하는데 도움이 됨
2. COMPUTE Amazon Elastic Compute Cloud 과금 타입 스팟 인스턴스 (Spot Instance) 사용되지 않는 EC2 용량에 대한 입찰 스팟 가격은 수요/공급에 따라 자동으로 결정 입찰가가 스팟 가격보다 높으면 인스턴스 시작 입찰가가 스팟 가격보다 낮으면 인스턴스 종료
2. COMPUTE Amazon Elastic Load Balancing EC2 로드 분산 서비스 고가용성 Health check 기능 지원 EC2 인스턴스에 대한 라우팅과 부하 분산 ELB 보안 그룹 및 SSL Termination 고정 세션
2. COMPUTE Amazon Auto Scaling EC2 용량을 자동으로 조절 탄력적 용량 쉬운 사용법 비용 절감 Auto Scaling 지리적 분산 예약 작업
2. COMPUTE Amazon Auto Scaling EC2 용량을 자동으로 스케일 Launch Configurations Auto Scaling Groups Auto Scaling Policy AMI Network (VPC, Subnet) Condition Instance Type Load Balancing Action User data Min,Max Wait time Add Storage Cooldown Notification Cloud Watch SNS Security Group
3. STORAGE
3. STORAGE Amazon Elastic Block Store EC2 블록 스토리지 인스턴스에 장착하여 사용 스냅샷은 Amazon S3에 저장됨 AZ내에서 복제 : 99.999% 내구성 Amazon EBS
3. STORAGE Amazon Elastic Block Store EBS Lifecycle 방대한 용량의 사용되지 않은 영역 생성 삭제 Delete Volume 호출 1GB-16TB까지 용량으로 Create Volume 장착 하나의 EC인스턴스를 지정해 Attach Volume 호출 탈착 Detach Volume 호출 EBS Lifecycle 스냅샷 생성 Amazon S3로 스냅샷 생성 장착완료 &사용중 EC2 인스턴스 OS에서 포맷 포맷된 디바이스를 마운트
3. STORAGE Amazon Elastic Block Store EBS Type 볼륨유형 EBS 범용(SSD) EBS 프로비저닝된 IOPS(SSD) EBS 마그네틱 사용사례 부트볼륨 스몰 및 미디엄 DB 개발 및 테스트 I/O 집약적 관계형 DB NoSQL DB 드문 데이터 액세스 스토리지 미디어 SSD 백업 SSD 백업 마그네틱 디스크 백업 최대 볼륨 크기 16TB 16TB 1TB 볼륨당 최대 IOPS 10,000 20,000 40-200 순간 최대 IOPS 성능 볼륨당(<=1TB) 3,000 - 수백 최대 처리량/볼륨 160MBps 320MBps 50-90MBps 인스턴스당 최대 IOPS 48,000 48,000 48,000 최대 처리량/인스턴스 800MBps 800MBps 800MBps API 이름 gp2 Io1 Standard 요금* 0.114달러 /GB 월별 - 0.128달러 /GB 월별 - 0.067달러 /프로비저닝된 IOPS - 0.080달러 /GB 월별 - 0.080달러 /100만 요청
3. STORAGE Amazon Elastic Block Store Amazon EBS에 관한 사실 지속되어야 하는 스토리지를 위해 사용 서버의 RAID 구성을 생성하는데 사용 가능 인스턴스와 독립적으로 지속 가능한 블록 스토리지 리눅스 혹은 윈도우 인스턴스를 위한, 포맷되지 않는 블록 디바이스와 같이 볼륨 동작 Amazon EBS
데모 EC2, ELB, AutoScaling, EBS, CloudWatch, SNS Elastic Load Balancing(ELB) WEB APP WEB APP WEB APP WEB APP Auto Scaling Group Auto Scaling Group Cloud Watch Availability Zone A Availability Zone B SNS Region
3. STORAGE Amazon Simple Storage Service Object 스토리지 인터넷을 통한 엑세스 (HTTP, HTTPS) 대용량 확장성, 안정성, 내구성 Amazon S3
3. STORAGE Amazon Simple Storage Service S3의 개념 Amazon S3 개념 Amazon S3 Amazon S3는데이터를 버킷 내에 객체로 저장 객체는 파일과 파일에 대한 메타데이터(옵션)로 구성 계정 내에 최대 100개의 버킷 생성 가능 객체저장 버킷 버킷 버킷 및객체에 대한 접속 제어 관리 가능 객체
3. STORAGE Amazon Simple Storage Service S3의 버킷 Amazon S3 버킷 객체는 버킷 내에 저장 객체는 URL을통해 액세스 가능 가장 높은 레벨에서 Amazon S3 네임스페이스를 구성 계정 별구분 저장량과 전송량에 대한 요금 접속 권한 제어 사용량 보고서 내묶음 단위가 됨 Amazon Bucket
3. STORAGE Amazon Simple Storage Service S3의 객체 Amazon S3 객체 객체는 Amazon S3에저장되는 기본단위입니다. 콘솔을사용할 때에는객체를 파일처럼 볼수있습니다. 객체는 데이터와 메타데이터로 구성됩니다. Amazon S3는데이터 부분에 대해서는 내용을 들여다 보지 않습니다. 메타데이터는 객체에 대해 설명하는 이름-값페어의 집합입니다. 최근 변경 시간과 같은 기본 메타데이터 Content-Type과같은 표준 HTTP 메터데이터 객체 저장 시, 지정되는 커스텀 메타데이터 객체는 버킷 내에서 키(이름)으로 유일하게 구분 Object Bucket with Object
3. STORAGE Amazon Simple Storage Service Amazon S3 사실 버킷 별로 저장 가능한 객체 개수는 무제한 객체 크기는 최대 5TB (버킷 용량은 무한대) 1년기준으로 객체의 99.999999999% 내구성과 99.99% 가용성을 갖도록 디자인 HTTP/S 단말점을 통해 웹상에서 어떤 용량이든 언제 어디서든 데이터를 저장하고 조회 가능 고도의 확장성, 안정성, 성능을 매우 저렴하게 제공 AES 356비트 대칭키를 사용한 서버 측암호화 감사를 위한 액세스 로그 표준 기반 REST와 SOAP 인터페이스 제공 Amazon S3
3. STORAGE EBS vs S3 Amazon EBS Amazon S3 패러다임 파일 시스템 객체 저장소 성능 매우 빠름 빠름 중복저장 데이터 센터 내 데이터 센터 간 보안 EC2 인스턴스만 접근가능 퍼블릭 키 / 프라이빗 키 인터넷에서 접속가능여부 불가능 가능 일반적 사용사례 디스크 드라이브 한 번 쓰고, 여러 번 읽는 경우
3. STORAGE Amazon S3 Type Type S3 Standard RRS S3 Standard - IA Glacier 내구성을 위한 설계 99.99999999% 99.99% 99.99999999% 99.99999999% 가용성을 위한 설계 99.99% 99.99% 99.9% 해당 사항 없음 가용성 SLA 99.9% 99.99% 99% 해당 사항 없음 최소 객체 크기 해당 사항 없음 해당 사항 없음 128KB 해당 사항 없음 최소 스토리지 기간 해당 사항 없음 해당 사항 없음 30일 90일 검색 요금 해당 사항 없음 해당 사항 없음 검색한 GB당 검색한 GB당 첫 번째 바이트 지연시간 밀리초 밀리초 밀리초 4시간 스토리지 클래스 객체 수준 객체 수준 객체 수준 객체 수준 수명 주기 전환 예 예 예 예 요금(1TB/월) - 서울 $0.0314 /GB $0.0251 /GB $0.0180 /GB $0.0108 /GB
4. DATABASE
4. DATABASE Amazon Relational Database Service 관계형 데이터베이스 서비스 Amazon RDS 비용 효율적이고 용량 조절 가능 데이터베이스 관리 업무 대행 MySQL, PostgresSQL, Oracle, SQL Server
4. DATABASE Amazon Relational Database Service 관계형 데이터베이스 서비스 Amazon RDS 개요 클라우드 상의 관계형 데이터베이스에 대한 손쉬운 셋업, 운영과 확장 시간 소모적인 데이터베이스 관리 업무를 대행하면서도 비용 효율적이고 용량 조절 가능 친숙한 관계형 데이터베이스의 전체 기능을 활용 데이터베이스 소프트웨어에 대한 패치와 고객사 데이터베이스에 대한 백업 자동화 한번의 API 호출을 통해 고객사 관계형 데이터베이스에 배정된 컴퓨팅 리소스 혹은 스토리지 용량을 확장가능 Amazon RDS
4. DATABASE Amazon Relational Database Service RDS 특징 Instance 접근불가 자동백업 보안그룹 RDS Multi-AZ 용량 최대 6TB Read-Replica
5. CDN
5. CDN Amazon CloudFront 글로벌 컨텐츠 전송 네트워크 컨텐츠를 캐싱하여 전송 속도 향상 커스텀 SSL 지원 동적 컨텐츠 CloudFront Signed URL, Signed Cookie Invalidation
5. CDN Amazon CloudFront SSL termination Origin HTTPS Only Custom SSL certificate S3 Bucket EC2 HTTPS https://ssl.mydomain.com Amazon CloudFront IAM Upload SSL certificate User
5. CDN Amazon CloudFront gzip compression Origin Header forwarding S3 Bucket Amazon CloudFront Viewer EC2 Content-Encoding: gzip Decompression Compression
5. CDN Amazon CloudFront Error Response Custom Error Response HTTP Error code TTL Path Response Code 403:Forbidden 300 /login.php 200 : OK Origin 404: Not Found 300 /404.html 404: Not Found S3 Bucket 403: Forbidden 200: OK 404: Not Found Amazon CloudFront 404: Not Found Viewer EC2
5. CDN Amazon CloudFront Signed URL Origin Restrict Bucket Access : Yes Restrict Viewer Access : Yes Trusted Signers : Accounts S3 Bucket Signed URL Amazon CloudFront Viewer EC2 Expire Signature Key-Pair-Id Signed URL Plan URL Auth. System Distribution ID Signer Key
5. CDN Amazon CloudFront Signed Cookie Origin Restrict Bucket Access : Yes Restrict Viewer Access : Yes Trusted Signers : Accounts S3 Bucket Signed Cookie Amazon CloudFront Viewer EC2 Set-Cookie: CloudFront-Policy CloudFront-Signature CloudFront-Key-Pair-Id Signed Cookie Plan URL Auth. System Distribution ID Signer Key
5. CDN Amazon CloudFront Data Upload Origin Origin Access Identity Allowed HTTP Methods S3 Bucket Write Object Put Method Amazon CloudFront Viewer EC2 S3:PutObject Allow
5. CDN Amazon CloudFront Cross Origin Resource Sharing Origin Forward Headers : Whitelist Origin S3 Bucket www.mydomain1.com www.mydomain2.com Amazon CloudFront Viewer EC2 CORSConfiguration
6. DNS
6. DNS Route 53 글로벌 DNS 확장성, 가용성, 안정성 Weighted, Latency, Geolocation 기반 라우팅 Health Check Route53 Private DNS SLA 100%
6. DNS Route 53 Amazon Route 53 DNS 서버의 글로벌 네트워크를 사용해 짧은 지연시간 내에 DNS 질의에 응답 고객사 도메인에 대한 질의는 자동으로 가장 가까운 DNS 서버로 라우팅 되므로, 가능한 최선의 성능으로 질의에 응답 서비스를 통해 관리되는 도메인수, 서비스가 응답하는 질의 횟수와 같은 실제 사용량 만큼만과금 Amazon Route 53
데모 RDS, S3, CloudFront, Route53 Route 53 (Hosted Zone) CloudFront Elastic Load Balancing(ELB) WEB APP WEB APP WEB APP WEB APP Auto Scaling Group Auto Scaling Group Availability Zone A Availability Zone B Region
감사합니다 블로그 : blog.gsclip.com 페이스북 : www.facebook.com/gswisen 영업 문의 : sales@gscdn.com