Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS...

83
월간 웨비나 2015년 9월 23일 수요일 | 오전 11시 AWS Elastic Beanstalk을 활용한 워드프레스 구축

Transcript of Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS...

Page 1: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

월간 웨비나 2015년 9월 23일 수요일 | 오전 11시

AWS Elastic Beanstalk을 활용한 워드프레스 구축

Page 2: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

윤석찬, Tech Evangelist http://twitter.com/channyun http://facebook.com/channyblog http://channy.creation.net

Page 3: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

우리가 배울 첫 AWS 서비스는?

모든 길은 로마로 통한다! 모든 AWS는 S3로 통한다!

Page 4: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

Amazon Simple Storage Service (S3)

• 2006년에 출시된 최초 AWS 서비스

• 객체 기반의 무제한 파일 저장 스토리지

• URL을 통해 손쉽게 파일 공유 가능

• 99.999999999% 내구성

• 정적 웹 사이트 호스팅 서비스 가능

Page 5: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

Amazon S3 성장세

2012   2013   2014  

매년 102% 데이터 전송량 증가 (Q4 2014 vs Q4 2013, not including Amazon use)

2,000,000,000,000 – S3 전체 파일 갯수 (2013년 4월 시점) 400,000,000,000 – 우리 은하 내 별의 갯수 13,500,000,000 – 중국 인구수

Page 6: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나
Page 7: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

Amazon S3 시작하기

Amazon S3에 첫화면에서 버튼을 누릅니다.

도움말: 버킷(Bucket)이란? 아이스버킷 챌런지에서 얼음이 든 양동이를 뒤집어 쓰던 IT업계 CEO들을 기억하십니까? 네… 바로 그 “양동이”입니다. 파일을 담는 폴더 개념으로 옆 아이콘이 버킷입니다.

Page 8: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 1. 버킷 생성하기 원하는 버킷이름을 선택합니다. 버킷 이름은 도메인 네임처럼 누가 미리 가지고 있을 수 있으니, 독특한 것으로 합니다. 파일이 저장될 리전(Region)을 선택합니다. 우리는 가까운 동경을 선택합니다.

도움말 Amazon S3에서 저장되는 파일은 어느 리전을 선택하더라도 모든 버킷과 파일이 한 곳에 모여서 나옵니다. 따라서, S3는 오른쪽 상단의 리전 위치를 선택할 필요는 없습니다.

Page 9: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 1. 버킷 생성하기 Action을 누르면, 버킷을 생성/삭제/비우기 등을 할 수 있습니다. 버킷은 파일의 종류를 구분하는 용도로 사용되며, 폴더처럼 한꺼번에 지우거나 할 수가 없습니다. 따라서, 버킷을 없애려면 버킷내 파일을 모두 삭제해야만 가능합니다.

도움말 Amazon S3는 객체(Object) 저장소입니다. 즉, 특정 객체만 담는 저장소입니다. 버킷은 폴더처럼 보이지만 단순히 파일 종류를 구분해 주는 용도로 사용자 편의상 폴더 인터페이스로 보입니다.

Page 10: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 2. 파일 업로드 하기 버킷 내에서 폴더를 만들 수도 있고, 파일을 업로드할 수도 있습니다. Upload를 눌러 새로운 파일을 올려 볼까요?

도움말 오른쪽 상단의 None을 누르면, 목록만 보이며, Properties를 누르면 속성 정보 그리고 Transfers를 누르면 파일 전송 상태를 볼 수 있습니다.

Page 11: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 3. 파일 정보 보기 파일을 선택하고 “Actions”를 누르면 원하는 기능을 수행할 수 있습니다. “Make Public”을 누르면, 누구나 Link 주소로 접속가능합니다. 열쇠 아이콘은 비공개, RSS아이콘이면 공개입니다.

도움말 Amazon S3의 모든 객체는 정해진 URL을 가지며, 인터넷을 통해 접속할 수 있습니다. 기본적으로 비공개 상태로 파일이 저장되며, 공개를 하거나 또는 특정인 혹은 앱에게만 선별적으로 공개하는 기능을 제공합니다. https://s3-ap-northeast-1.amazonaws.com/channys3/AWS_EURORA.jpg

https://channys3.s3-ap-northeast-1.amazonaws.com/AWS_EURORA.jpg

두가지 링크 주소:

Page 12: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 4. 파일 업로드 프로그램

h(ps://cyberduck.io/     https://s3browser.com

내 PC에서 손쉽게 파일 업로드 및 다운로드 가능합니다!

Page 13: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

앗! ID와 암호는 어떻게?

Access Key와 Secret Access Key를 필요로 합니다!

Page 14: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

여러분 PC는 안전하십니까?

• 여러분의 PC에는 “관리자”와 “일반 사용자”가 있습니다. •  “일반 사용자”는 특정 권한만 가지고 있습니다. • 만약, 모든 사람이 “관리자” 권한을 가지고 있으면 PC 보안에 취약합니다.

Page 15: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

AWS Identity and Access Management (IAM)

• AWS 사용자 및 그룹을 만들고 관리 가능

• 각 AWS 서비스 및 자원별 사용 권한 지정

• 역할 및 정책을 통해 손쉽게 자세한 권한 관리

• 기업내 사용자 관리 시스템과도 연동 지원

• 오프라인 기기(MFA)를 통한 인증 가능

Page 16: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나
Page 17: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

AWS IAM 시작하기 Amazon S3에 접근 가능한 사용자를 생성하고, S3 클라이언트 프로그램으로 접속하기 위한 사용자의 Access Key와 Secret을 얻어 보도록 하겠습니다.

도움말 AWS IAM을 잘 활용하면, 여러분은 안전하게 AWS 서비스를 이용할 수 있습니다. 특히 IAM 첫화면 중앙의 다섯 가지 “Security Status”를 눈여겨 보시고 모든 항목이 체크가 되게 하세요.

Page 18: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

AWS의 다섯 가지 보안 팁 1.  루트 Access Key를 만들지도 쓰지도 맙시다!

•  블로그나 책에 루트 AccessKey를 생성하는 예제 조심 2.  오프라인 기기 혹은 앱 인증을 꼭 사용합시다!

•  중요 서비스일 경우, 꼭 모바일 앱 혹은 일회용 암호 생성기 이용 3.  IAM 사용자를 생성하고 필요한 권한만 주세요!

•  최소한의 권한을 주면 보안 위험도 낮아짐 4.  IAM 그룹 생성을 통해 권한을 관리하세요!

•  그룹을 통해 개발자, 관리자, 운영자 권한을 세분화 5.  암호 생성 조건을 꼭 설정하세요!

•  탈취당하기 쉬운 암호 보다 좀 더 복잡한 암호를…

Page 19: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 1. IAM 사용자 생성 “Users”를 선택하고 “Create New Users”를 선택하면, 5개까지 일괄적으로 아이디를 만들 수 있습니다. S3 사용만 가능할 ID인 “s3channy”를 만듭니다.

도움말 아이디 생성 시 “Generate an access key for each user”를 체크하면, 각 사용자별로 랜덤 영문/숫자로 된 Access Key와 Secret을 만들 수 있습니다. S3 접속 프로그램 및 API 플러그인 사용등에 사용 가능합니다.

Page 20: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 2. 사용자 Credential 정보 받기

도움말 Access Key와 Secret는 마치 임시 아이디와 암호와 같습니다. 따라서, 외부에 절대로 노출하거나 알려주시면 안됩니다. 혹시라도 노출이 되었다면, 사용자 관리 화면에서 지우고 새로 만드실 수 있습니다.

Page 21: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 3. 사용자 권한 지정 생성된 사용자를 선택하면, 그룹 추가, 권한 정책 설정, 키 관리, 암호 관리 등을 하실 수 있습니다. S3 접근 권한 관리를 위해 Attach Policy를 선택합니다.

도움말 아이디 생성 시 “Generate an access key for each user”를 체크하면, 각 사용자별로 랜덤 영문/숫자로 된 Access Key와 Secret을 만들 수 있습니다. S3 접속 프로그램 및 API 플러그인 사용등에 사용 가능합니다.

Page 22: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 4. 사용자 정책 검색 및 추가하기

도움말 AWS 서비스에 대해 미리 만들어진 다양한 사용자 권한 정책들이 나타납니다. S3 업로드를 해야 하므로, 우리는 AmazonS3FullAccess 권한을 선택합니다. 자! 이제 S3 클라이언트로 업로드를 해보실 수 있습니다.

Page 23: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

이제 S3에 파일을 업로드 해봅시다! 이제 여러분은 일년간 사용할 수 있는 5GB짜리 무료 저장소가 생겼습니다.

Page 24: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

Amazon S3 정적 웹 사이트 호스팅 여러분의 버킷은 단순히 파일 저장 뿐만 아니라 간단한 웹 사이트 호스팅도 가능합니다. 이벤트 페이지나 간단한 개인 홈페이지를 서버 설정 없이도 제공 가능합니다.

도움말 버킷 Properties에서 “Static Web Site Hosting”을 선택하고 Enable을 시킵니다. 첫화면을 보여줄 index.html을 지정하면 됩니다. URL 접속시 바로 홈페이지가 나타납니다. 모든 파일은 공개 상태여야 합니다.

Page 25: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

버킷 공개 정책 추가

{!!"Version": "2012-10-17",!!"Statement": [!! !{!! ! !"Sid": "PublicReadGetObject",!! ! !"Effect": "Allow",!! ! !"Principal": "*",!! ! !"Action": "s3:GetObject",!! ! !"Resource":

"arn:aws:s3:::channyblog/*"!! !}!!]!

}!

파일이 비공개 상태인 경우, 전체 공개 정책을 추가하여 일괄 처리할 수 있습니다.

Page 26: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

이제 여러분은 무제한 웹 페이지 호스팅을 받을 수 있습니다. 간단한 랜딩 페이지, 이벤트 웹

페이지를 제공하기 위해 서버 호스팅을 쓰시나요? Amazon S3로 서버 없이도 예상치 못한 대량 트래픽을 감당할 수 있습니다.

도움말 혹시 여러분이 Jekyll 같은 정적 블로그 도구를 사용하신다면, 손쉽게 S3에 업로드함으로서 쉽게 블로그 사이트 운영도 가능합니다.

Page 27: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

여러분의 홈페이지는 여전히 동경에…

AP-NORTHEAST (Tokyo)

CHINA (Beijing)

11 리전 Regions 30 가용영역 Availability Zones 53 엣지 Edge

그러나, Amazon CloudFront를 활용하면, 여러분의 홈페이지를 더 빠르게 한국 혹은 전세계 고객에게 전달할 수 있습니다.

Page 28: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

Amazon CloudFront

• 사용자의 지리적 위치에 따라 더 빠른 접속 속도 제공 • 정적/동적 콘텐츠 캐싱 및 가속 • 서버의 부하 분산 • 콘텐츠 보안

•  HTTP/HTTPS 서비스 •  Signed URL, Signed Cookie

•  다양한 통계 및 API 호출 감사

Respon

se  Tim

e  

Server  Load  

Respon

se  Tim

e  

Server  Load  

Respon

se  Tim

e  

Server  

Load  

No  CDN   CDN  for  StaEc  

Content  

CDN  for  StaEc  &  Dynamic  Content  

Page 29: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

Amazon CloudFront 시작하기 Amazon CloudFront는 정적 콘텐츠를 사용자 가까운 곳으로 전송하여 더 빠르게 이용하도록 도와 주는 서비스입니다. “Create Distribution”을 눌러 시작합니다.

도움말 Amazon CloudFront는 의외로 간단하고 사용하기가 쉽습니다. S3 버킷만 설정되어 있다면, 쉽게 콘텐츠 배포가 가능합니다.

Page 30: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 1. 배포 방식 결정 콘텐츠 배포 방식은 “Web”을 선택합니다. 미디어 파일이나 html, css, js와 같은 정적인 콘텐츠 뿐만 아니라 동적인 콘텐츠의 가속 기능도 제공합니다.

도움말 RMTP는 동영상 파일을 스트리밍으로 전달할 때 유용합니다. 여러분이 영상 파일을 Adobe 플래시의 스트리밍 방식으로 제공할 경우, S3에 미디어 파일을 담고 선택 하시면 됩니다.

Page 31: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 2. 소스 위치 및 배포 위치 결정 배포할 소스가 위치한 S3 버킷을 선택하고, 배포할 위치를 선택합니다. 엣지 위치는 세 가지 중에 선택 가능하며 금액에 차등이 있습니다. 소스 위치는 S3 버킷 뿐만 아니라 웹 사이트 로드 밸런싱도 선택 가능합니다.

도움말 Origin Domain Name에는 AWS 서비스 뿐만 아니라 여러분의 외부 웹 사이트에 대한 콘텐츠 배포도 가능합니다. 즉, 국외에 더 빠르게 전송을 하기 위한 도메인을 별도로 세팅하실 수도 있습니다.

Page 32: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 3. 배포 확인 및 정보 수정 배포가 완료되면 “Deployed” 및 “Enabled” 표시가 됩니다. 이 때, xxxx.cloudfront.net 형식의 URL을 입력하면 확인 가능합니다. ID값을 누르시면, 각 설정 정보에 대한 변경을 손쉽게 하실 수 있습니다.

도움말 *.cloudfront.net 으로 설정된 도메인을 원하는 방식으로 바꾸고 싶으시면, 도메인 네임 서비스 설정에서 CNAME 변경을 통해 할 수 있습니다. 예를 들어, cdn.creation.net 을 CloudFront 배포 지점으로 지정 가능합니다.

Page 33: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

이제 여러분은 전세계를 대상으로 무제한 웹 페이지 호스팅을 받을 수 있습니다. 간단한 랜딩 페이지, 이벤트

웹 페이지를 제공하기 위해 서버 호스팅을 쓰시나요? Amazon S3와 클라우드 프론트로 글로벌 서비스 트래픽을 감당할 수 있습니다.

도움말 혹시 여러분이 Jekell 같은 정적 블로그 도구를 사용하신다면, 손쉽게 S3에 업로드함으로서 쉽게 블로그 사이트 운영도 가능합니다.

Page 34: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

AWS로 웹 사이트를 만들어 봅시다!

Page 35: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

v  

WordPress란? •  전 세계에서 가장 인기 있는 웹 서비스 제작 도구

•  Automattic의 CEO인 Matt Mullenweg이 시작

•  오픈 소스 소프트웨어로 제작 되고 있으며, 누구나 참여 가능 •  한 회사에 종속적이지 않아 생태계와 커뮤니티가 풍부함 •  주요 공헌 회사인 Automattic에서 WordPress.com도 운영 중

•  플러그인 및 테마가 풍부해서 다양한 웹 사이트로 변신 가능 •  국내에서 블로그 도구로 각광 받기 시작 •  현재 회사 홈페이지, 쇼핑몰, 커뮤니티 등으로 활용 가능

Page 36: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

v  

워드 프레스를 해보려면? •  워드 프레스 프로그램 다운로드

•  http://ko.wordpress.org •  설치하는 방법

•  내 윈도우에 워드프레스 설치하기 •  내 맥 컴퓨터에 워드프레스 설치하기 •  국내 무료 호스팅에 워드프레스 설치하기

•  배울 수 있는 곳 •  한국 워드프레스 커뮤니티 http://kopress.kr •  주간 미트업 https://facebook.com/groups/kopress

Page 37: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

AWS에 워드프레스를 설치하려면?

너무 복잡해 ㅠㅠ 기존의 설명서는 모두 잊어라! X

Page 38: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

우리의 약속! 터미널 접속? 리눅스 커맨드? MySQL 설치?

Page 39: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

5분만에 AWS에서 워드프레스 설치하기

Page 40: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

AWS CloudFormation

• AWS 내부 자원(서버 데이터베이스 네트워크 등)을 서로 조립하여 원하는 서비스 구조로 만들어 낼 수 있음 • 레고 블럭 조립 설명서와 비슷한 템플릿(Template)을 활용하여 바로 찍어 낼 수 있음 • 인프라 구조를 프로그램 코드 기반으로 설정할 수 있어, Elastic Beanstalk, OpsWorks 등의 기반이 됨

Page 41: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

AWS CloudFormation 시작하기

CloudFormation 서비스를 선택하고, “Create New Stack”을 선택합니다.

도움말 Stack은 AWS 서비스 자원을 묶어서 한방에 세팅할 수 있는 단위입니다. 예를 들어, 서버 및 데이터 베이스 그리고 설치하는 프로그램 등을 원하는 방식으로 만들 수 있고, 원한다면 한방에 지울 수도 있습니다.

Page 42: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 1. 템플릿 선택

먼저 Stack 이름을 입력하고, WP 템플릿을 다운로드 하시고, 파일을 선택해서 템플릿 업로드 해 주시면 됩니다!

도움말 템플릿 선택을 하면, Multi-AZ WordPress Blog의 경우, 여러 데이터센터에 다수의 서버를 띄워서 로드 분산및 장애 방지를 하는 샘플입니다. 우선 하나의 서버에 워드프레스와 별도 데이터 베이스를 함께 동작시켜 봅니다.

http://bit.ly/awseb-wp-template WP 템플릿

Page 43: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 2. 데이터베이스 및 인스턴스 선택 WordPress에서 이용할 데이터베이스 이름, 암호 및 사용자를 입력합니다. 그런 다음 Instance Type에서 무료로 쓸 수 있는 “t2.micro”를 선택합니다. 주의사항: DB 암호는 숫자와 영문자를 섞어서 8자 이상으로 해주세요.

도움말 기본 템플릿을 선택하면, KeyName 및 SSHLocation이 필요한데 만약 서버에 직접 접속하는 경우 필요하며, 우선 가상서버에 위드프레스만 설치 및 사용해볼 예정이므로 바로 “NEXT”를 누릅니다.

Page 44: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 3. Stack 생성하기 “Options” 단계는 그대로 진행하고 나면, 전체 Stack을 리뷰하고 마지막으로 Create를 선택합니다. 웹 서버 및 DB 세팅, 프로그램 설치에 몇 분 정도 걸리니 커피 한잔의 여유를 가지시길…

Page 45: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 4. 워드프레스 설치 완료 및 접속하기

도움말 Output 탭에 눌러 적혀 있는 링크를 클릭하면 워드프레스 설치 화면이 나타납니다. 로그인 계정 설정 후 로그인 하시면 워드프레스를 바로 사용하실 수 있습니다.

Page 46: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

CF 템플릿이 무엇을 하는 걸까요?

① 사용자로 부터 받을 입력 항목 설정 ② 원하는 구성을 하고, 필요한 SW 설치 ③ 완료된 구성에 대한 정보를 제공

Page 47: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

CF로 만든 AWS 자원 삭제하기

•  Delete Stack을 누르면 기존에 만들어진 자원을 모두 삭제합니다. •  복구되지 않으니 데이터 백업 등을 주의하고 실행해야 합니다. •  혹시 과금이 될 수도 있으니, 테스트로 만든 CF Stack은 바로 삭제하시는 것이 좋습니다.

Page 48: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

참 쉽죠잉? …

근데 업데이트는 어떻게 하나요? 테마 설치는? 플러그인은?

AWS의 가장 장점인 자동 확장(Auto Scaling)은? …

그래서 우리는 좀 더 쉬운 관리형 서비스를 활용합니다!

Page 49: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

AWS Elastic Beanstalk

• 단계1. 앱 플랫폼 선택 •  Ruby/PHP/Node.js 등 서버환경 •  DB, 로드밸런싱 및 오토스케일링

• 단계2. 소프트웨어 업로드 •  WordPress 업로드 및 설치

• 단계3. 앱 실행 및 지속적 배포 •  업데이트 사항 손쉽게 배포 가능

AWS 자원을 활용하여 손쉽게 웹 서비스를 구성 및 배포할 수 있는 무료 관리형 서비스

Page 50: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나
Page 51: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

AWS Elastic Beanstalk 시작하기 Elastic Beanstalk 서비스를 선택하고, 오른쪽 상단의 “Create New Application”을 선택합니다.

도움말 여러분이 PHP, Ruby, Python 및 Node.js 기반 프로그램이 있는 경우 서버 구성이나 설정에 신경쓰지 않고 손쉽게 프로그램을 업데이트하고 운영할 수 있는 관리 도구로 서버 및 DB 사용료, 데이터 전송료만 내고 별도 서비스 이용료는 없습니다.

Page 52: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 1. 앱 이름 및 환경 선택

앱 정보에 애플리케이션 이름을 넣습니다. 앱 환경에서는 Create Web Server를 선택합니다.

Page 53: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 2. 앱 형식 및 프로그램 소스 업로드 워드프레스를 운영하므로, 환경 설정에 PHP를 선택하고, 환경은 Load balancing, auto scaling 을 선택합니다. 애플리케이션 버전은 Sample application을 선택합니다.

도움말 Single Instance는 웹 서버 1대만 띄우고, Load balancing, auto scaling은 사용자트래픽에 따라 서버를 자동으로 확장합니다. 기본 설정은 CPU 사용량에 따라 1대~4대까지입니다.

Page 54: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 3. 도메인명 설정 및 DB 선택

구성을 완료하고 나면, 우리가 손쉽게 접속할 수 있는 도메인 명을 설정할 수 있습니다. 워드프레스는 DB가 필요하므로 Create RDS DB을 선택!

Page 55: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 4. 웹 서버 설정 웹 서버 인스턴스 타입을 무료 사용 가능한 t2.micro를 선택하고 나머지는 기본 설정 그대로 두시면 됩니다.

도움말 본 설정으로 생성되는 웹서버는 CloudFormation을 통해 자동으로 생성하며, 나중에 Elastic Beanstalk 환경 설정을 통해 손쉽게 변경 가능합니다.

잠깐! 이제 Next를 누른후, Environment Tags는

그냥 Next만 한번 더 누릅니다.

Page 56: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 5. 데이터베이스 설정 데이터베이스 인스턴스 타입을 무료 사용 가능한 db.t2.micro를 선택하고 DB username 및 password만 입력하고, 나머지는 기본 설정 그대로 두시면 됩니다.

도움말 본 설정으로 생성되는 DB는 AWS에서 관리형으로 백업, 업데이트 등을 제공하는 RDS라는 서비스를 통해 생성하며, 나중에 환경 설정을 통해 손쉽게 변경 가능합니다.

Page 57: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 6. IAM 퍼미션 설정하기

Create a new role 상태에서 Next를 누르시면, IAM에서 새로운 Role과 정책을 설정하는 화면이 나오는데, 이때 Allow를 누르면 자동생성 후 다시 되돌아 옵니다.

도움말 Elastic Beanstalk만을 관리하는 역할 및 정책을 별도로 생성하여 안전하게 보안 관리를 할 수 있습니다.

Page 58: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

단계 7. 환경 설정 완료 하기

이제 Launch를 누르면 끝입니다!

Page 59: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

이제 환경 구성을 시작합니다! 이제 우리가 설정한 모든 구성 환경을 Elastic Beanstalk을 통해 지금 부터 생성을 시작합니다. 웹 서버 및 DB 세팅, 프로그램 설치에 몇 분 정도 걸리니 커피 한잔의 여유를 가지시길…

Page 60: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

자, 이제 끝났습니다- 샘플 앱 확인해 보기

Page 61: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

서양 속담에 이런게 있습니다... Don't put all your eggs in one basket!

계란을 한 바구니에 담지 마라! 위험을 분산하고 투자하라는 재테크 격언이기도 합니다.

이미지출처: 계란을 한 바구니에 담지 마라 http://sabbunhi555.tistory.com/62

Page 62: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

웹 서비스도 분산 해야 합니다!

파일

프로그램 데이터

우리는 몇 가지 AWS 서비스를 활용하여 효율적인 성능과 손쉬운 확장이 가능하면서도 비용 효율적인 서비스가 되도록 몇 가지 빌딩 블럭을 조립합니다.

AWS 활용 = Building Block 조립

이미지 출처: 한국은행 경제교육 청소년 경제나라, 계란은 한 바구니에 담지 말라구요? http://youth.bokeducation.or.kr/ecostudy/columnList.do?bbsId=6&mode=view&contentId=200003943

Page 63: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

애플리케이션 데이터

웹서버 EC2 instance

IP주소 Elastic IP

사용자 요청 도메인

도메인 네임 Amazon Route 53

DB서버 RDS Instance

Availability Zone

부하 분산 Elastic Load Balancing

AWS로 우리가 만든 웹 서비스 구조

정적 파일 Amazon S3

글로벌 분산 Amazon

CloudFront

서비스 관리 및 배포 AWS Elastic Beanstalk

Page 64: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

•  사용자 트래픽에 따라 웹 서버 사이의 부하를 분산해 주는 서비스 •  오토 스케일링 지원 및 스스로 자동으로 확장 가능

주요 기능 상세 정보 Available 멀티 Availability Zone 기반의

인스턴스 로드 분산 서비스 Health checks

자동으로 인스턴스가 서비스 중인지 아닌지 체크 가능

Secure sockets layer

SSL 보안 트래픽 처리 가능 및 다양한 암호 알고리즘 지원

Monitoring CloudWatch를 통해 로그 제공 및 모니터링 가능

Elastic Load Balancing

(자동 확장)

Elastic Load Balancing(ELB)

Page 65: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

Amazon Relational Database Service (RDS)

• 관계형 데이터베이스(RDB)에 대한 관리형 서비스 • 제공 가능 데이터베이스 •  Aurora, MySQL, Microsoft SQL, Oracle,

PostgreSQL • 업데이트, 보안 패치, 백업 등 지원 • 상용 라이센스 선택적 이용 가능

Page 66: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

오토 스케일링 – Auto Scaling • 사용자 트래픽(CPU 용량 혹은 데이터 전송량)에 따라 EC2 인스턴스 숫자를 자동으로 증가 혹은 감소 • 트래픽에 따라 사용된 인스턴스에 따라 시간단위로 과금하므로 비용 효율적

인스턴스 갯수

9AM 12PM 6PM 12AM 6AM

59  Small  @  $0.08/hr  =  $4.72  

Page 67: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

이제! 워드 프레스 설치하기

https://ko.wordpress.org/wordpress-­‐4.3-­‐ko_KR.zip  

① 워드프레스 최신 버전을 Zip 형식으로 다운로드 ② Upload and Deploy를 선택합니다. ③ Browse… 를 선택하고 Zip 파일 업로드

Page 68: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

DB 연결 정보 가져오기

워드프레스 설치를 위해서는 데이터베이스 서버 주소가 필요합니다. Configuration을 선택하면, Data Tier의 RDS 설정의 Endpoint 서버명을 복사합니다.

도움말 RDS 서버 설정에서 접속 보안 설정을 바꾸면, 로컬 PC에서도 접속 가능하며, 로컬 웹 서버를 구성해서 테스트 가능합니다.

Page 69: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

이제 설치해 봅시다!

자신의 서버 주소로 접속! 예) https://channyblog-oxo.elasticbeanstalk.com

Page 70: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

Amazon Web Services 플러그인 설치!

이제 AWS 플러그인 및 테마 설정 혹은 DB 이전 등 원하는 대로 할 수 있습니다!

Page 71: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

AWS 플러그인 사용하기

Amazon Web Service 플러그인을 설치하고, S3 사용시 발급한 Access Key 및 Secret Key를 입력합니다. IAM에서 만들었던 S3 접근 권한이 가능한 그 임시키 잊지 않으셨죠?

Page 72: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

S3 and CloudFront 기능 설정하기 AWS 플러그인을 설치하고, 워드프레스로 올리는 모든 이미지 및 파일을 S3 혹은 CloudFront로 업로드 및 배포할 수 있습니다. 1.  S3 Bucket 설정 2.  이미지 URL 설정 3.  필요시, CloudFront 사용

도움말 Amazon Route 53 혹은 여러분의 DNS 서비스에서 CNAME 설정으로 맞춤형 이미지 서버 도메인을 구성할 수 있습니다.

Page 73: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

이미지 업로드 해보기 워드프레스 글 쓰기 혹은 미디어 메뉴에서 이미지를 올려 보시면, Amazon S3 버킷으로 이미지가 직접 올라가는 것을 보실 수 있습니다. 이제 여러분은 별도의 이미지 서버를 가지시게 되었습니다!

도움말 테마에 있는 JS/CSS/Image 파일 등도 S3와 CloudFront로 서비스하면, 웹 서버 부담을 더욱 줄일 수 있습니다.

Page 74: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

여기서 중요! WP 백업하기 여러분이 서버에서 직접 추가 및 수정한 워드프레스 변경 사항은 꼭 백업하셔야 합니다. 최신 버전의 WP 백업 ZIP 파일은 “backupwordpress” 플러그을 통해 받을 수 있습니다.

도움말 플러그인 설치 후 “도구”에서 Backups 에서 Complete Weekly 를 선택하신 후, “Run Now”를 누르면 ZIP 파일로 받을 수 있습니다.

Page 75: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

중요! WP 백업하기 여러분이 서버에서 직접 추가 및 수정한 워드프레스 변경 사항은 꼭 백업하셔야 합니다. 최신 버전의 WP 백업 ZIP 파일은 “backupwordpress” 플러그을 통해 받을 수 있습니다.

도움말 플러그인 설치 후 “도구”에서 Backups 에서 Complete Weekly 를 선택하신 후, “Run Now”를 누르면 ZIP 파일로 받을 수 있습니다.

Page 76: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

중요! WP 업데이트하기 백업한 ZIP 파일은 Upload and Deploy를 통해 계속 재배포해 주셔야 합니다. 오토스케일링으로 서버가 추가 될 때, 최신 버전의 앱 버전을 사용하기 때문입니다.

도움말 사용자 혹은 관리자가 업로드 하는 이미지 파일은 서버에 없기 때문에 워드프레스 버전 업데이트, 테마 및 플러그인 만 있으므로 파일은 크지 않습니다.

Page 77: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

과거 업데이트 앱 버전 보기

•  여러분이 변경 사항을 Upload and Deploy를 통해 계속 배포하는 경우, 과거 배포 기록을 보실 수 있습니다.

•  필요한 경우, 특정 시기의 워드프레스 버전을 다운로드 하실 수도 있습니다.

Page 78: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

Q: PHP 설정 변경은 어디서 하나요? 여러분의 앱에 Configuration에서 다양한 설정을 하실 수 있습니다. 1.  Web Tier: 오토스케일링, 가

상 서버 및 PHP 프로그램 환경 설정 변경 등을 하실 수 있습니다.

2.  Data Tier: RDS에서 DB서버 설정을 변경할 수 있습니다.

3.  Network Tier: 로드밸런싱 설정이 가능합니다.

도움말 향후에 각 설정에 해당되는 내용을 익히시고, 조금씩 변경 해 보시기 바랍니다.

Page 79: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

Q: 파일 업로드 사이즈가 2M 이상 되나요?

files:      "/etc/php.d/project.ini"  :          mode:  "000644"          owner:  root          group:  root          content:  |              upload_max_filesize  =  128M              post_max_size  =  128M  

Wordpress 폴더에 .ebextensions 라는 디렉토리를 만들고 project.config라는 파일을 만들고 아래의 내용처럼 원하는 php.ini 변경 설정을 추가로 넣어줍니다.

ZIP파일로 묶은 다음, Upload and Deploy를 한번 더 해주시면 됩니다.

Page 80: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

Q: 기본 요금은 얼마나 나올까요?

AWS 간단계산기를 통해 Elastic Beanstalk을 사용하는 경우, 프리티어 포함 시 금액을 확인하실 수 있습니다! •  EC2 t2.micro x 2대 1대는 20% 피크시에만 사용 및 10GB 송신 •  ELB 15GB/월 전송 •  RDS t2.micro x 1대 •  CloudFront 3GB/일 전송

Page 81: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

개발자가 있는 경우, 제대로 운영하기 • Deploying WordPress to Amazon Web Services AWS EC2 and RDS via ElasticBeanstalk by Michael Averto

1.  Elastic Beanstalk으로 인프라 구성하기 2.  로컬 웹 서버에 워드프레스 설치하기 및 RDS 연결 하기 3.  버전 콘트롤(GIT)을 활용하여 워드프레스 수정하기 4.  로컬 웹 서버에서 수정 사항 테스트하기 5.  Elastic Beanstalk으로 배포하기 6.  이를 반복

•  https://www.otreva.com/blog/deploying-wordpress-amazon-web-services-aws-ec2-rds-via-elasticbeanstalk/

Page 82: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

AWS에서 원하는 프로그램을 설치해 보세요!

Drupal   PHPBB  Discourse  

워드프레스 뿐만 아니라 다양한 국내외 오픈 소스 기반 콘텐츠 SW를 활용할 수 있습니다.

Page 83: Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS 월간 웨비나

여러분의 피드백을 기다립니다!

•  공식 블로그: http://aws.amazon.com/ko/blogs/korea

•  한국어 공식 소셜 미디어 @AWSKorea  

AmazonWebServices.ko  

AWSKorea  

AWSKorea