Amazon AWS :: 동영상 공유 웹사이트 만들기 #1 동영상 업로드
국내 전문 CDN 사업자인 GS네오텍은 2015년에 Amazon Web Service의 AWS Premier Consulting 파트너로서 WiseN 이라는 서비스 브랜드로 클라우드 사업을 함께 하고 있습니다.
미디어 공유 웹사이트 만들기 #1 미디어 업로드
다루는 내용
-
미디어 파일을 저장할 아마존 S3 버킷 생성하기
-
보안 그룹 생성하기
-
웹 서버로 사용할 EC2 인스턴스 생성하기
-
데이터를 저장할 아마존 DynamoDB 데이터베이스 생성하기
실습
아마존 S3 버킷 생성
버킷 생성
-
콘솔에서 S3 클릭
-
Create Bucket 클릭
-
Create a Bucket – Select a Bucket Name and Region 창에서
∙ Bucket Name : webapp-media-sharing
∙ Region : Oregon
∙ Create 클릭
버킷 정책 적용
-
생성한 버킷명(webapp-media-sharing) 클릭
-
Properties 클릭
-
Permissions 클릭
-
Add bucket policy 클릭
∙ 정책 입력 (가이드 문서 #21. 아마존 S3 활용 참고)
∙ Save 클릭
미디어 데이터베이스 생성
아마존 DynamoDB 생성
-
콘솔에서 DynamoDB 클릭
-
Create Table 클릭
-
PRIMARY KEY 창에서
∙ Table Name : webapp-media-db
∙ Primary Key Type : Hash
∙ Hash Attribute Name : eib
∙ Continue 클릭 -
Add Indexes (optional) 창에서
∙ Continue 클릭 -
Provisioned Throughput Capacity 창에서
∙ Continue 클릭 -
Throughput Alarms (optional) 창에서
∙ Use Basic Alarms : 체크 해제
∙ Continue 클릭 -
Review 창에서
∙ Create 클릭
접근 제어
IAM 정책과 롤 생성
-
콘솔에서 IAM 클릭
-
왼쪽 메뉴에서 Policies 클릭
-
Create Policy 클릭
-
Create Policy 페이지
∙ Create Your Own Policy의 Select 클릭 -
Review Policy 페이지
웹 서버(EC2)는 S3 버킷의 객체에 read, write, delete 권한과 버킷 list를 볼 수 있는 권한이 있어야한다. 또한 DynamoDB 테이블에 query, scan, read, write, delete 권한이 필요하다.
∙ 샘플 소스 : http://us-east-1-aws-training.s3.amazonaws.com/self-paced-lab-11/static/lab11-role_policy.json
∙ Policy Name : WebApp-IAM-Policy
∙ Policy Document :
∙ Create Policy 클릭
혹은 Create Policy 페이지에서 Policy Generator를 선택하여 쉽게 생성할 수 있다.
S3의 Resource는 “arn:aws:s3:::webapp-media-sharing“과 “arn:aws:s3:::webapp-media-sharing/*” 모두 필요함에 유의하자. -
왼쪽 메뉴에서 Roles 클릭
-
Create New Role 클릭
-
Set Role Name 페이지
∙ Role Name : WebApp-IAM-Role
∙ Next Step 클릭 -
Select Role Type 페이지
∙ AWS Service Roles 라디오 버튼 선택
∙ Amazon EC2의 Select 클릭 -
Attach Policy 페이지
∙ Filter : Customer Managed Policies 선택
∙ WebApp-IAM-Policy 체크
∙ Next Step 클릭 -
Review 페이지
∙ Create Role 클릭
웹 서비스 생성
웹 서버 실행
-
콘솔에서 EC2 클릭
-
Launch Instance 클릭
-
Choose an Amazon Machine Image (AMI) 페이지
∙ Amazon Linux AMI의 Select 클릭 -
Choose an Instance Type 페이지
∙ Next: Configure Instance Details 클릭 -
Configure Instance Details 페이지
∙ IAM role : WebApp-IAM-Role 선택
∙ User data : As file (아래 소스 파일을 다운받아 bucket, table, region 수정 후 사용)
샘플 소스 : http://us-east-1-aws-training.s3.amazonaws.com/self-paced-lab-11/static/bootstrap-rlab-www.sh
∙ Next: Add Storage 클릭 -
Add Storage 페이지
∙ Next: Tag Instance 클릭 -
Tag Instance 페이지
∙ Value : WebApp Server
∙ Next: Configure Security Group 클릭 -
Configure Security Group 페이지
∙ HTTP가 허용된 보안 그룹 선택
∙ Review and Launch 클릭 -
Review Instance Launch 페이지
∙ Launch 클릭
∙ keypair 선택
∙ Launch Instances 클릭
∙ View Instances 클릭
서비스 테스트
-
생성된 인스턴스(WebApp Server)의 Public DNS 확인
-
브라우져 접속 (ec2-52-11-146-50.us-west-2.compute.amazonaws.com)
∙ Add entry 클릭하여 이미지를 추가한다.
∙ Title, Comment, File 항목을 모두 채우지 않으면 오류가 발생하므로 유의하자. -
콘솔에서 S3 클릭
∙ webapp-media-sharing 버킷명 클릭 -
콘솔에서 DynamoDB 클릭
∙ webapp-media-db 테이블명 더블 클릭
확장 가능한 구성
CloudFormation을 이용하여 Auto Scaling과 Elastic Load Balancing을 포함하여 확장성과 가용성을 보장하는 구성으로 변경한다.
-
CloudFormation 템플릿 소스 :
https://us-east-1-aws-training.s3.amazonaws.com/self-paced-lab-11/rlab-part1-cfn.template -
콘솔에서 CloudFormation 클릭
-
Create Stack 클릭
-
Select Template 페이지
∙ Stack : WebApp-Rlab
∙ Source : Specify an Amazon S3 template URL
∙ Next 클릭 -
Specify Parameters 페이지
∙ KeyName : ec2_keypair
∙ RLabContentS3Bucket : webapp-media-sharing
∙ RLabDynamoDBTable : webapp-media-db
∙ Next 클릭 -
Options 페이지
∙ Key : Name
∙ Value : WebApp Rlab Server
∙ Next 클릭 -
Review 페이지
∙ I acknowledge that this template might cause AWS CloudFormation to create IAM resources. : 체크
∙ Create 클릭 -
생성된 ELB의 DNS Name 확인
-
브라우져 접속 (WebApp-Rl-ElasticL-C9QK6BKRC01J-784156694.us-west-2.elb.amazonaws.com)
참고
● Bucket 정책 : http://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html
● DynamoDB 데이터 모델 : http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html
● IAM 정책 : http://docs.aws.amazon.com/IAM/latest/UserGuide/policy-reference.html
Reference : GS네오텍 WiseN 서비스
www.SalesMore.co.kr
'Cloud AWS' 카테고리의 다른 글
Amazon AWS :: CloudFront 로그 --> Elastic MapReduce로 분석 (0) | 2015.11.25 |
---|---|
Amazon AWS :: Transcoding - 동영상 공유 웹사이트 만들기 #2 (0) | 2015.11.25 |
Amazon AWS :: EC2 Container Service 이해 (0) | 2015.11.24 |
Amazon AWS :: ELASTIC LOAD BALANCING과 CLOUDFRONT에 SSL 적용 (0) | 2015.11.24 |
Amazon AWS :: Lambda 활용 (0) | 2015.11.24 |