Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS...
-
Upload
amazon-web-services-korea -
Category
Technology
-
view
6.863 -
download
0
Transcript of Amazon S3 및 Elastic Beanstalk을 활용한 Wordpress 웹 사이트 구축하기 (윤석찬) - AWS...
월간 웨비나 2015년 9월 23일 수요일 | 오전 11시
AWS Elastic Beanstalk을 활용한 워드프레스 구축
윤석찬, Tech Evangelist http://twitter.com/channyun http://facebook.com/channyblog http://channy.creation.net
우리가 배울 첫 AWS 서비스는?
모든 길은 로마로 통한다! 모든 AWS는 S3로 통한다!
Amazon Simple Storage Service (S3)
• 2006년에 출시된 최초 AWS 서비스
• 객체 기반의 무제한 파일 저장 스토리지
• URL을 통해 손쉽게 파일 공유 가능
• 99.999999999% 내구성
• 정적 웹 사이트 호스팅 서비스 가능
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 – 중국 인구수
Amazon S3 시작하기
Amazon S3에 첫화면에서 버튼을 누릅니다.
도움말: 버킷(Bucket)이란? 아이스버킷 챌런지에서 얼음이 든 양동이를 뒤집어 쓰던 IT업계 CEO들을 기억하십니까? 네… 바로 그 “양동이”입니다. 파일을 담는 폴더 개념으로 옆 아이콘이 버킷입니다.
단계 1. 버킷 생성하기 원하는 버킷이름을 선택합니다. 버킷 이름은 도메인 네임처럼 누가 미리 가지고 있을 수 있으니, 독특한 것으로 합니다. 파일이 저장될 리전(Region)을 선택합니다. 우리는 가까운 동경을 선택합니다.
도움말 Amazon S3에서 저장되는 파일은 어느 리전을 선택하더라도 모든 버킷과 파일이 한 곳에 모여서 나옵니다. 따라서, S3는 오른쪽 상단의 리전 위치를 선택할 필요는 없습니다.
단계 1. 버킷 생성하기 Action을 누르면, 버킷을 생성/삭제/비우기 등을 할 수 있습니다. 버킷은 파일의 종류를 구분하는 용도로 사용되며, 폴더처럼 한꺼번에 지우거나 할 수가 없습니다. 따라서, 버킷을 없애려면 버킷내 파일을 모두 삭제해야만 가능합니다.
도움말 Amazon S3는 객체(Object) 저장소입니다. 즉, 특정 객체만 담는 저장소입니다. 버킷은 폴더처럼 보이지만 단순히 파일 종류를 구분해 주는 용도로 사용자 편의상 폴더 인터페이스로 보입니다.
단계 2. 파일 업로드 하기 버킷 내에서 폴더를 만들 수도 있고, 파일을 업로드할 수도 있습니다. Upload를 눌러 새로운 파일을 올려 볼까요?
도움말 오른쪽 상단의 None을 누르면, 목록만 보이며, Properties를 누르면 속성 정보 그리고 Transfers를 누르면 파일 전송 상태를 볼 수 있습니다.
단계 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
두가지 링크 주소:
단계 4. 파일 업로드 프로그램
h(ps://cyberduck.io/ https://s3browser.com
내 PC에서 손쉽게 파일 업로드 및 다운로드 가능합니다!
앗! ID와 암호는 어떻게?
Access Key와 Secret Access Key를 필요로 합니다!
여러분 PC는 안전하십니까?
• 여러분의 PC에는 “관리자”와 “일반 사용자”가 있습니다. • “일반 사용자”는 특정 권한만 가지고 있습니다. • 만약, 모든 사람이 “관리자” 권한을 가지고 있으면 PC 보안에 취약합니다.
AWS Identity and Access Management (IAM)
• AWS 사용자 및 그룹을 만들고 관리 가능
• 각 AWS 서비스 및 자원별 사용 권한 지정
• 역할 및 정책을 통해 손쉽게 자세한 권한 관리
• 기업내 사용자 관리 시스템과도 연동 지원
• 오프라인 기기(MFA)를 통한 인증 가능
AWS IAM 시작하기 Amazon S3에 접근 가능한 사용자를 생성하고, S3 클라이언트 프로그램으로 접속하기 위한 사용자의 Access Key와 Secret을 얻어 보도록 하겠습니다.
도움말 AWS IAM을 잘 활용하면, 여러분은 안전하게 AWS 서비스를 이용할 수 있습니다. 특히 IAM 첫화면 중앙의 다섯 가지 “Security Status”를 눈여겨 보시고 모든 항목이 체크가 되게 하세요.
AWS의 다섯 가지 보안 팁 1. 루트 Access Key를 만들지도 쓰지도 맙시다!
• 블로그나 책에 루트 AccessKey를 생성하는 예제 조심 2. 오프라인 기기 혹은 앱 인증을 꼭 사용합시다!
• 중요 서비스일 경우, 꼭 모바일 앱 혹은 일회용 암호 생성기 이용 3. IAM 사용자를 생성하고 필요한 권한만 주세요!
• 최소한의 권한을 주면 보안 위험도 낮아짐 4. IAM 그룹 생성을 통해 권한을 관리하세요!
• 그룹을 통해 개발자, 관리자, 운영자 권한을 세분화 5. 암호 생성 조건을 꼭 설정하세요!
• 탈취당하기 쉬운 암호 보다 좀 더 복잡한 암호를…
단계 1. IAM 사용자 생성 “Users”를 선택하고 “Create New Users”를 선택하면, 5개까지 일괄적으로 아이디를 만들 수 있습니다. S3 사용만 가능할 ID인 “s3channy”를 만듭니다.
도움말 아이디 생성 시 “Generate an access key for each user”를 체크하면, 각 사용자별로 랜덤 영문/숫자로 된 Access Key와 Secret을 만들 수 있습니다. S3 접속 프로그램 및 API 플러그인 사용등에 사용 가능합니다.
단계 2. 사용자 Credential 정보 받기
도움말 Access Key와 Secret는 마치 임시 아이디와 암호와 같습니다. 따라서, 외부에 절대로 노출하거나 알려주시면 안됩니다. 혹시라도 노출이 되었다면, 사용자 관리 화면에서 지우고 새로 만드실 수 있습니다.
단계 3. 사용자 권한 지정 생성된 사용자를 선택하면, 그룹 추가, 권한 정책 설정, 키 관리, 암호 관리 등을 하실 수 있습니다. S3 접근 권한 관리를 위해 Attach Policy를 선택합니다.
도움말 아이디 생성 시 “Generate an access key for each user”를 체크하면, 각 사용자별로 랜덤 영문/숫자로 된 Access Key와 Secret을 만들 수 있습니다. S3 접속 프로그램 및 API 플러그인 사용등에 사용 가능합니다.
단계 4. 사용자 정책 검색 및 추가하기
도움말 AWS 서비스에 대해 미리 만들어진 다양한 사용자 권한 정책들이 나타납니다. S3 업로드를 해야 하므로, 우리는 AmazonS3FullAccess 권한을 선택합니다. 자! 이제 S3 클라이언트로 업로드를 해보실 수 있습니다.
이제 S3에 파일을 업로드 해봅시다! 이제 여러분은 일년간 사용할 수 있는 5GB짜리 무료 저장소가 생겼습니다.
Amazon S3 정적 웹 사이트 호스팅 여러분의 버킷은 단순히 파일 저장 뿐만 아니라 간단한 웹 사이트 호스팅도 가능합니다. 이벤트 페이지나 간단한 개인 홈페이지를 서버 설정 없이도 제공 가능합니다.
도움말 버킷 Properties에서 “Static Web Site Hosting”을 선택하고 Enable을 시킵니다. 첫화면을 보여줄 index.html을 지정하면 됩니다. URL 접속시 바로 홈페이지가 나타납니다. 모든 파일은 공개 상태여야 합니다.
버킷 공개 정책 추가
{!!"Version": "2012-10-17",!!"Statement": [!! !{!! ! !"Sid": "PublicReadGetObject",!! ! !"Effect": "Allow",!! ! !"Principal": "*",!! ! !"Action": "s3:GetObject",!! ! !"Resource":
"arn:aws:s3:::channyblog/*"!! !}!!]!
}!
파일이 비공개 상태인 경우, 전체 공개 정책을 추가하여 일괄 처리할 수 있습니다.
이제 여러분은 무제한 웹 페이지 호스팅을 받을 수 있습니다. 간단한 랜딩 페이지, 이벤트 웹
페이지를 제공하기 위해 서버 호스팅을 쓰시나요? Amazon S3로 서버 없이도 예상치 못한 대량 트래픽을 감당할 수 있습니다.
도움말 혹시 여러분이 Jekyll 같은 정적 블로그 도구를 사용하신다면, 손쉽게 S3에 업로드함으로서 쉽게 블로그 사이트 운영도 가능합니다.
여러분의 홈페이지는 여전히 동경에…
AP-NORTHEAST (Tokyo)
CHINA (Beijing)
11 리전 Regions 30 가용영역 Availability Zones 53 엣지 Edge
그러나, Amazon CloudFront를 활용하면, 여러분의 홈페이지를 더 빠르게 한국 혹은 전세계 고객에게 전달할 수 있습니다.
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
Amazon CloudFront 시작하기 Amazon CloudFront는 정적 콘텐츠를 사용자 가까운 곳으로 전송하여 더 빠르게 이용하도록 도와 주는 서비스입니다. “Create Distribution”을 눌러 시작합니다.
도움말 Amazon CloudFront는 의외로 간단하고 사용하기가 쉽습니다. S3 버킷만 설정되어 있다면, 쉽게 콘텐츠 배포가 가능합니다.
단계 1. 배포 방식 결정 콘텐츠 배포 방식은 “Web”을 선택합니다. 미디어 파일이나 html, css, js와 같은 정적인 콘텐츠 뿐만 아니라 동적인 콘텐츠의 가속 기능도 제공합니다.
도움말 RMTP는 동영상 파일을 스트리밍으로 전달할 때 유용합니다. 여러분이 영상 파일을 Adobe 플래시의 스트리밍 방식으로 제공할 경우, S3에 미디어 파일을 담고 선택 하시면 됩니다.
단계 2. 소스 위치 및 배포 위치 결정 배포할 소스가 위치한 S3 버킷을 선택하고, 배포할 위치를 선택합니다. 엣지 위치는 세 가지 중에 선택 가능하며 금액에 차등이 있습니다. 소스 위치는 S3 버킷 뿐만 아니라 웹 사이트 로드 밸런싱도 선택 가능합니다.
도움말 Origin Domain Name에는 AWS 서비스 뿐만 아니라 여러분의 외부 웹 사이트에 대한 콘텐츠 배포도 가능합니다. 즉, 국외에 더 빠르게 전송을 하기 위한 도메인을 별도로 세팅하실 수도 있습니다.
단계 3. 배포 확인 및 정보 수정 배포가 완료되면 “Deployed” 및 “Enabled” 표시가 됩니다. 이 때, xxxx.cloudfront.net 형식의 URL을 입력하면 확인 가능합니다. ID값을 누르시면, 각 설정 정보에 대한 변경을 손쉽게 하실 수 있습니다.
도움말 *.cloudfront.net 으로 설정된 도메인을 원하는 방식으로 바꾸고 싶으시면, 도메인 네임 서비스 설정에서 CNAME 변경을 통해 할 수 있습니다. 예를 들어, cdn.creation.net 을 CloudFront 배포 지점으로 지정 가능합니다.
이제 여러분은 전세계를 대상으로 무제한 웹 페이지 호스팅을 받을 수 있습니다. 간단한 랜딩 페이지, 이벤트
웹 페이지를 제공하기 위해 서버 호스팅을 쓰시나요? Amazon S3와 클라우드 프론트로 글로벌 서비스 트래픽을 감당할 수 있습니다.
도움말 혹시 여러분이 Jekell 같은 정적 블로그 도구를 사용하신다면, 손쉽게 S3에 업로드함으로서 쉽게 블로그 사이트 운영도 가능합니다.
AWS로 웹 사이트를 만들어 봅시다!
v
WordPress란? • 전 세계에서 가장 인기 있는 웹 서비스 제작 도구
• Automattic의 CEO인 Matt Mullenweg이 시작
• 오픈 소스 소프트웨어로 제작 되고 있으며, 누구나 참여 가능 • 한 회사에 종속적이지 않아 생태계와 커뮤니티가 풍부함 • 주요 공헌 회사인 Automattic에서 WordPress.com도 운영 중
• 플러그인 및 테마가 풍부해서 다양한 웹 사이트로 변신 가능 • 국내에서 블로그 도구로 각광 받기 시작 • 현재 회사 홈페이지, 쇼핑몰, 커뮤니티 등으로 활용 가능
v
워드 프레스를 해보려면? • 워드 프레스 프로그램 다운로드
• http://ko.wordpress.org • 설치하는 방법
• 내 윈도우에 워드프레스 설치하기 • 내 맥 컴퓨터에 워드프레스 설치하기 • 국내 무료 호스팅에 워드프레스 설치하기
• 배울 수 있는 곳 • 한국 워드프레스 커뮤니티 http://kopress.kr • 주간 미트업 https://facebook.com/groups/kopress
AWS에 워드프레스를 설치하려면?
너무 복잡해 ㅠㅠ 기존의 설명서는 모두 잊어라! X
우리의 약속! 터미널 접속? 리눅스 커맨드? MySQL 설치?
5분만에 AWS에서 워드프레스 설치하기
AWS CloudFormation
• AWS 내부 자원(서버 데이터베이스 네트워크 등)을 서로 조립하여 원하는 서비스 구조로 만들어 낼 수 있음 • 레고 블럭 조립 설명서와 비슷한 템플릿(Template)을 활용하여 바로 찍어 낼 수 있음 • 인프라 구조를 프로그램 코드 기반으로 설정할 수 있어, Elastic Beanstalk, OpsWorks 등의 기반이 됨
AWS CloudFormation 시작하기
CloudFormation 서비스를 선택하고, “Create New Stack”을 선택합니다.
도움말 Stack은 AWS 서비스 자원을 묶어서 한방에 세팅할 수 있는 단위입니다. 예를 들어, 서버 및 데이터 베이스 그리고 설치하는 프로그램 등을 원하는 방식으로 만들 수 있고, 원한다면 한방에 지울 수도 있습니다.
단계 1. 템플릿 선택
먼저 Stack 이름을 입력하고, WP 템플릿을 다운로드 하시고, 파일을 선택해서 템플릿 업로드 해 주시면 됩니다!
도움말 템플릿 선택을 하면, Multi-AZ WordPress Blog의 경우, 여러 데이터센터에 다수의 서버를 띄워서 로드 분산및 장애 방지를 하는 샘플입니다. 우선 하나의 서버에 워드프레스와 별도 데이터 베이스를 함께 동작시켜 봅니다.
http://bit.ly/awseb-wp-template WP 템플릿
단계 2. 데이터베이스 및 인스턴스 선택 WordPress에서 이용할 데이터베이스 이름, 암호 및 사용자를 입력합니다. 그런 다음 Instance Type에서 무료로 쓸 수 있는 “t2.micro”를 선택합니다. 주의사항: DB 암호는 숫자와 영문자를 섞어서 8자 이상으로 해주세요.
도움말 기본 템플릿을 선택하면, KeyName 및 SSHLocation이 필요한데 만약 서버에 직접 접속하는 경우 필요하며, 우선 가상서버에 위드프레스만 설치 및 사용해볼 예정이므로 바로 “NEXT”를 누릅니다.
단계 3. Stack 생성하기 “Options” 단계는 그대로 진행하고 나면, 전체 Stack을 리뷰하고 마지막으로 Create를 선택합니다. 웹 서버 및 DB 세팅, 프로그램 설치에 몇 분 정도 걸리니 커피 한잔의 여유를 가지시길…
단계 4. 워드프레스 설치 완료 및 접속하기
도움말 Output 탭에 눌러 적혀 있는 링크를 클릭하면 워드프레스 설치 화면이 나타납니다. 로그인 계정 설정 후 로그인 하시면 워드프레스를 바로 사용하실 수 있습니다.
CF 템플릿이 무엇을 하는 걸까요?
① 사용자로 부터 받을 입력 항목 설정 ② 원하는 구성을 하고, 필요한 SW 설치 ③ 완료된 구성에 대한 정보를 제공
CF로 만든 AWS 자원 삭제하기
• Delete Stack을 누르면 기존에 만들어진 자원을 모두 삭제합니다. • 복구되지 않으니 데이터 백업 등을 주의하고 실행해야 합니다. • 혹시 과금이 될 수도 있으니, 테스트로 만든 CF Stack은 바로 삭제하시는 것이 좋습니다.
참 쉽죠잉? …
근데 업데이트는 어떻게 하나요? 테마 설치는? 플러그인은?
AWS의 가장 장점인 자동 확장(Auto Scaling)은? …
그래서 우리는 좀 더 쉬운 관리형 서비스를 활용합니다!
AWS Elastic Beanstalk
• 단계1. 앱 플랫폼 선택 • Ruby/PHP/Node.js 등 서버환경 • DB, 로드밸런싱 및 오토스케일링
• 단계2. 소프트웨어 업로드 • WordPress 업로드 및 설치
• 단계3. 앱 실행 및 지속적 배포 • 업데이트 사항 손쉽게 배포 가능
AWS 자원을 활용하여 손쉽게 웹 서비스를 구성 및 배포할 수 있는 무료 관리형 서비스
AWS Elastic Beanstalk 시작하기 Elastic Beanstalk 서비스를 선택하고, 오른쪽 상단의 “Create New Application”을 선택합니다.
도움말 여러분이 PHP, Ruby, Python 및 Node.js 기반 프로그램이 있는 경우 서버 구성이나 설정에 신경쓰지 않고 손쉽게 프로그램을 업데이트하고 운영할 수 있는 관리 도구로 서버 및 DB 사용료, 데이터 전송료만 내고 별도 서비스 이용료는 없습니다.
단계 1. 앱 이름 및 환경 선택
앱 정보에 애플리케이션 이름을 넣습니다. 앱 환경에서는 Create Web Server를 선택합니다.
단계 2. 앱 형식 및 프로그램 소스 업로드 워드프레스를 운영하므로, 환경 설정에 PHP를 선택하고, 환경은 Load balancing, auto scaling 을 선택합니다. 애플리케이션 버전은 Sample application을 선택합니다.
도움말 Single Instance는 웹 서버 1대만 띄우고, Load balancing, auto scaling은 사용자트래픽에 따라 서버를 자동으로 확장합니다. 기본 설정은 CPU 사용량에 따라 1대~4대까지입니다.
단계 3. 도메인명 설정 및 DB 선택
구성을 완료하고 나면, 우리가 손쉽게 접속할 수 있는 도메인 명을 설정할 수 있습니다. 워드프레스는 DB가 필요하므로 Create RDS DB을 선택!
단계 4. 웹 서버 설정 웹 서버 인스턴스 타입을 무료 사용 가능한 t2.micro를 선택하고 나머지는 기본 설정 그대로 두시면 됩니다.
도움말 본 설정으로 생성되는 웹서버는 CloudFormation을 통해 자동으로 생성하며, 나중에 Elastic Beanstalk 환경 설정을 통해 손쉽게 변경 가능합니다.
잠깐! 이제 Next를 누른후, Environment Tags는
그냥 Next만 한번 더 누릅니다.
단계 5. 데이터베이스 설정 데이터베이스 인스턴스 타입을 무료 사용 가능한 db.t2.micro를 선택하고 DB username 및 password만 입력하고, 나머지는 기본 설정 그대로 두시면 됩니다.
도움말 본 설정으로 생성되는 DB는 AWS에서 관리형으로 백업, 업데이트 등을 제공하는 RDS라는 서비스를 통해 생성하며, 나중에 환경 설정을 통해 손쉽게 변경 가능합니다.
단계 6. IAM 퍼미션 설정하기
Create a new role 상태에서 Next를 누르시면, IAM에서 새로운 Role과 정책을 설정하는 화면이 나오는데, 이때 Allow를 누르면 자동생성 후 다시 되돌아 옵니다.
도움말 Elastic Beanstalk만을 관리하는 역할 및 정책을 별도로 생성하여 안전하게 보안 관리를 할 수 있습니다.
단계 7. 환경 설정 완료 하기
이제 Launch를 누르면 끝입니다!
이제 환경 구성을 시작합니다! 이제 우리가 설정한 모든 구성 환경을 Elastic Beanstalk을 통해 지금 부터 생성을 시작합니다. 웹 서버 및 DB 세팅, 프로그램 설치에 몇 분 정도 걸리니 커피 한잔의 여유를 가지시길…
자, 이제 끝났습니다- 샘플 앱 확인해 보기
서양 속담에 이런게 있습니다... Don't put all your eggs in one basket!
계란을 한 바구니에 담지 마라! 위험을 분산하고 투자하라는 재테크 격언이기도 합니다.
이미지출처: 계란을 한 바구니에 담지 마라 http://sabbunhi555.tistory.com/62
웹 서비스도 분산 해야 합니다!
파일
프로그램 데이터
우리는 몇 가지 AWS 서비스를 활용하여 효율적인 성능과 손쉬운 확장이 가능하면서도 비용 효율적인 서비스가 되도록 몇 가지 빌딩 블럭을 조립합니다.
AWS 활용 = Building Block 조립
이미지 출처: 한국은행 경제교육 청소년 경제나라, 계란은 한 바구니에 담지 말라구요? http://youth.bokeducation.or.kr/ecostudy/columnList.do?bbsId=6&mode=view&contentId=200003943
애플리케이션 데이터
웹서버 EC2 instance
IP주소 Elastic IP
사용자 요청 도메인
도메인 네임 Amazon Route 53
DB서버 RDS Instance
Availability Zone
부하 분산 Elastic Load Balancing
AWS로 우리가 만든 웹 서비스 구조
정적 파일 Amazon S3
글로벌 분산 Amazon
CloudFront
서비스 관리 및 배포 AWS Elastic Beanstalk
• 사용자 트래픽에 따라 웹 서버 사이의 부하를 분산해 주는 서비스 • 오토 스케일링 지원 및 스스로 자동으로 확장 가능
주요 기능 상세 정보 Available 멀티 Availability Zone 기반의
인스턴스 로드 분산 서비스 Health checks
자동으로 인스턴스가 서비스 중인지 아닌지 체크 가능
Secure sockets layer
SSL 보안 트래픽 처리 가능 및 다양한 암호 알고리즘 지원
Monitoring CloudWatch를 통해 로그 제공 및 모니터링 가능
Elastic Load Balancing
(자동 확장)
Elastic Load Balancing(ELB)
Amazon Relational Database Service (RDS)
• 관계형 데이터베이스(RDB)에 대한 관리형 서비스 • 제공 가능 데이터베이스 • Aurora, MySQL, Microsoft SQL, Oracle,
PostgreSQL • 업데이트, 보안 패치, 백업 등 지원 • 상용 라이센스 선택적 이용 가능
오토 스케일링 – Auto Scaling • 사용자 트래픽(CPU 용량 혹은 데이터 전송량)에 따라 EC2 인스턴스 숫자를 자동으로 증가 혹은 감소 • 트래픽에 따라 사용된 인스턴스에 따라 시간단위로 과금하므로 비용 효율적
인스턴스 갯수
9AM 12PM 6PM 12AM 6AM
59 Small @ $0.08/hr = $4.72
이제! 워드 프레스 설치하기
https://ko.wordpress.org/wordpress-‐4.3-‐ko_KR.zip
① 워드프레스 최신 버전을 Zip 형식으로 다운로드 ② Upload and Deploy를 선택합니다. ③ Browse… 를 선택하고 Zip 파일 업로드
DB 연결 정보 가져오기
워드프레스 설치를 위해서는 데이터베이스 서버 주소가 필요합니다. Configuration을 선택하면, Data Tier의 RDS 설정의 Endpoint 서버명을 복사합니다.
도움말 RDS 서버 설정에서 접속 보안 설정을 바꾸면, 로컬 PC에서도 접속 가능하며, 로컬 웹 서버를 구성해서 테스트 가능합니다.
이제 설치해 봅시다!
자신의 서버 주소로 접속! 예) https://channyblog-oxo.elasticbeanstalk.com
Amazon Web Services 플러그인 설치!
이제 AWS 플러그인 및 테마 설정 혹은 DB 이전 등 원하는 대로 할 수 있습니다!
AWS 플러그인 사용하기
Amazon Web Service 플러그인을 설치하고, S3 사용시 발급한 Access Key 및 Secret Key를 입력합니다. IAM에서 만들었던 S3 접근 권한이 가능한 그 임시키 잊지 않으셨죠?
S3 and CloudFront 기능 설정하기 AWS 플러그인을 설치하고, 워드프레스로 올리는 모든 이미지 및 파일을 S3 혹은 CloudFront로 업로드 및 배포할 수 있습니다. 1. S3 Bucket 설정 2. 이미지 URL 설정 3. 필요시, CloudFront 사용
도움말 Amazon Route 53 혹은 여러분의 DNS 서비스에서 CNAME 설정으로 맞춤형 이미지 서버 도메인을 구성할 수 있습니다.
이미지 업로드 해보기 워드프레스 글 쓰기 혹은 미디어 메뉴에서 이미지를 올려 보시면, Amazon S3 버킷으로 이미지가 직접 올라가는 것을 보실 수 있습니다. 이제 여러분은 별도의 이미지 서버를 가지시게 되었습니다!
도움말 테마에 있는 JS/CSS/Image 파일 등도 S3와 CloudFront로 서비스하면, 웹 서버 부담을 더욱 줄일 수 있습니다.
여기서 중요! WP 백업하기 여러분이 서버에서 직접 추가 및 수정한 워드프레스 변경 사항은 꼭 백업하셔야 합니다. 최신 버전의 WP 백업 ZIP 파일은 “backupwordpress” 플러그을 통해 받을 수 있습니다.
도움말 플러그인 설치 후 “도구”에서 Backups 에서 Complete Weekly 를 선택하신 후, “Run Now”를 누르면 ZIP 파일로 받을 수 있습니다.
중요! WP 백업하기 여러분이 서버에서 직접 추가 및 수정한 워드프레스 변경 사항은 꼭 백업하셔야 합니다. 최신 버전의 WP 백업 ZIP 파일은 “backupwordpress” 플러그을 통해 받을 수 있습니다.
도움말 플러그인 설치 후 “도구”에서 Backups 에서 Complete Weekly 를 선택하신 후, “Run Now”를 누르면 ZIP 파일로 받을 수 있습니다.
중요! WP 업데이트하기 백업한 ZIP 파일은 Upload and Deploy를 통해 계속 재배포해 주셔야 합니다. 오토스케일링으로 서버가 추가 될 때, 최신 버전의 앱 버전을 사용하기 때문입니다.
도움말 사용자 혹은 관리자가 업로드 하는 이미지 파일은 서버에 없기 때문에 워드프레스 버전 업데이트, 테마 및 플러그인 만 있으므로 파일은 크지 않습니다.
과거 업데이트 앱 버전 보기
• 여러분이 변경 사항을 Upload and Deploy를 통해 계속 배포하는 경우, 과거 배포 기록을 보실 수 있습니다.
• 필요한 경우, 특정 시기의 워드프레스 버전을 다운로드 하실 수도 있습니다.
Q: PHP 설정 변경은 어디서 하나요? 여러분의 앱에 Configuration에서 다양한 설정을 하실 수 있습니다. 1. Web Tier: 오토스케일링, 가
상 서버 및 PHP 프로그램 환경 설정 변경 등을 하실 수 있습니다.
2. Data Tier: RDS에서 DB서버 설정을 변경할 수 있습니다.
3. Network Tier: 로드밸런싱 설정이 가능합니다.
도움말 향후에 각 설정에 해당되는 내용을 익히시고, 조금씩 변경 해 보시기 바랍니다.
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를 한번 더 해주시면 됩니다.
Q: 기본 요금은 얼마나 나올까요?
AWS 간단계산기를 통해 Elastic Beanstalk을 사용하는 경우, 프리티어 포함 시 금액을 확인하실 수 있습니다! • EC2 t2.micro x 2대 1대는 20% 피크시에만 사용 및 10GB 송신 • ELB 15GB/월 전송 • RDS t2.micro x 1대 • CloudFront 3GB/일 전송
개발자가 있는 경우, 제대로 운영하기 • 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/
AWS에서 원하는 프로그램을 설치해 보세요!
Drupal PHPBB Discourse
워드프레스 뿐만 아니라 다양한 국내외 오픈 소스 기반 콘텐츠 SW를 활용할 수 있습니다.
여러분의 피드백을 기다립니다!
• 공식 블로그: http://aws.amazon.com/ko/blogs/korea
• 한국어 공식 소셜 미디어 @AWSKorea
AmazonWebServices.ko
AWSKorea
AWSKorea