55
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 알파유저를 위한 아마존 웹 서비스 활용법 클라우드 서비스로의 발걸음 세째날

[3주차] 알파 유저를 위한 AWS 스터디

Embed Size (px)

Citation preview

Page 1: [3주차] 알파 유저를 위한 AWS 스터디

© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

알파유저를 위한 아마존 웹 서비스 활용법 클라우드 서비스로의 발걸음 – 세째날

Page 2: [3주차] 알파 유저를 위한 AWS 스터디

여러분께 매우 유용한 정보가 될 것입니다!

만약 여러분이 개발자나 엔지니어는 아니지만, 작은 웹 사이트나 블로그를 운영하는 알파유저라면

본 세션을 통해 아실 수 있는 것: 1.  클라우드 서비스의 개념과 AWS 서비스 소개 2.  AWS 가입 및 요금 알람 설정 3.  AWS 사용자 설정 및 온라인으로 쉽게 저장하고 공유하는 방법 4.  간단한 정적 웹 사이트를 운영하는 방법 5.  서버에 대한 지식 없이도 WordPress 웹 사이트 운영 방법 6.  글로벌 웹 서비스를 손쉽게 하는 방법 7.  쉽게 동영상 인코딩이나 대량 이메일 전송을 하는 방법

Page 3: [3주차] 알파 유저를 위한 AWS 스터디

복습해 볼까요?

•  Amazon S3의 정적 웹 호스팅이란?

•  AWS 보안을 강화하기 위한 다섯 가지 주요 가이드라인?

•  왜 Amazon CloudFront를 사용해야 할까요?

•  Amazon Route 53의 주요 기능은?

•  각자 자신의 홈페이지 만들어서 인터넷에 올려 보셨나요?

Page 4: [3주차] 알파 유저를 위한 AWS 스터디

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

Page 5: [3주차] 알파 유저를 위한 AWS 스터디

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

•  Automattic의 CEO인 Matt Mullenweg이 시작

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

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

Page 6: [3주차] 알파 유저를 위한 AWS 스터디

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

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

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

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

Page 7: [3주차] 알파 유저를 위한 AWS 스터디

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

너무 복잡해 ㅠㅠ

기존의 설명서는 모두 잊어라! X

Page 8: [3주차] 알파 유저를 위한 AWS 스터디

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

Page 9: [3주차] 알파 유저를 위한 AWS 스터디

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

Page 10: [3주차] 알파 유저를 위한 AWS 스터디

AWS CloudFormation •  AWS 내부 자원(서버 데이터베이스 네트워크

등)을 서로 조립하여 원하는 서비스 구조로 만들어 낼 수 있음

•  레고 블럭 조립 설명서와 비슷한 템플릿(Template)을 활용하여 바로 찍어 낼 수 있음

•  인프라 구조를 프로그램 코드 기반으로 설정할 수 있어, Elastic Beanstalk, OpsWorks 등의 기반이 됨

Page 11: [3주차] 알파 유저를 위한 AWS 스터디
Page 12: [3주차] 알파 유저를 위한 AWS 스터디

AWS CloudFormation 시작하기

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

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

Page 13: [3주차] 알파 유저를 위한 AWS 스터디

단계 1. 템플릿 선택

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

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

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

Page 14: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 15: [3주차] 알파 유저를 위한 AWS 스터디

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

Page 16: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 17: [3주차] 알파 유저를 위한 AWS 스터디

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

① 사용자로 부터 받을 입력 항목 설정

② 원하는 구성을 하고, 필요한 SW 설치

③ 완료된 구성에 대한 정보를 제공

Page 18: [3주차] 알파 유저를 위한 AWS 스터디

CF로 만든 AWS 자원 삭제하기

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

Page 19: [3주차] 알파 유저를 위한 AWS 스터디

참 쉽죠잉? …

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

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

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

Page 20: [3주차] 알파 유저를 위한 AWS 스터디

AWS Elastic Beanstalk

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

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

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

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

Page 21: [3주차] 알파 유저를 위한 AWS 스터디
Page 22: [3주차] 알파 유저를 위한 AWS 스터디

AWS Elastic Beanstalk 시작하기

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

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

Page 23: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 24: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 25: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 26: [3주차] 알파 유저를 위한 AWS 스터디

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

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

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

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

Page 27: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 28: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 29: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 30: [3주차] 알파 유저를 위한 AWS 스터디

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

Page 31: [3주차] 알파 유저를 위한 AWS 스터디

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

Page 32: [3주차] 알파 유저를 위한 AWS 스터디

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

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

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

Page 33: [3주차] 알파 유저를 위한 AWS 스터디

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

파일 프로그램 데이터

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

AWS 활용 = Building Block 조립

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

Page 34: [3주차] 알파 유저를 위한 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 35: [3주차] 알파 유저를 위한 AWS 스터디

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

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

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

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

Secure sockets layer

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

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

Elastic Load Balancing (자동 확장)

Elastic Load Balancing(ELB)

Page 36: [3주차] 알파 유저를 위한 AWS 스터디

Amazon Relational Database Service (RDS)

•  관계형 데이터베이스(RDB)에 대한 관리형 서비스

•  제공 가능 데이터베이스 §  Aurora, MySQL, Microsoft SQL, Oracle, PostgreSQL

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

Page 37: [3주차] 알파 유저를 위한 AWS 스터디

오토 스케일링 – Auto Scaling •  사용자 트래픽(CPU 용량 혹은 데이터 전송량)에 따라 EC2 인스턴스 숫자를 자동으로 증가 혹은 감소

•  트래픽에 따라 사용된 인스턴스에 따라 시간단위로 과금하므로 비용 효율적

인스턴스 갯수

9AM 12PM 6PM 12AM 6AM

59 Small @ $0.08/hr = $4.72

Page 38: [3주차] 알파 유저를 위한 AWS 스터디

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

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

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

Page 39: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 40: [3주차] 알파 유저를 위한 AWS 스터디

이제 설치해 봅시다!

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

Page 41: [3주차] 알파 유저를 위한 AWS 스터디

Amazon Web Services 플러그인 설치!

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

Page 42: [3주차] 알파 유저를 위한 AWS 스터디

AWS 플러그인 사용하기

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

Page 43: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 44: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 45: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 46: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 47: [3주차] 알파 유저를 위한 AWS 스터디

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

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

Page 48: [3주차] 알파 유저를 위한 AWS 스터디

과거 업데이트 앱 버전 보기기

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

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

Page 49: [3주차] 알파 유저를 위한 AWS 스터디

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

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

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

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

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

Page 50: [3주차] 알파 유저를 위한 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 51: [3주차] 알파 유저를 위한 AWS 스터디

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

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

•  ELB 15GB/월 전송 •  RDS t2.micro x 1대 •  CloudFront 3GB/일 전송

Page 52: [3주차] 알파 유저를 위한 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 53: [3주차] 알파 유저를 위한 AWS 스터디

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

Drupal PHPBB Discourse

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

Page 54: [3주차] 알파 유저를 위한 AWS 스터디

다음 시간에는…

Page 55: [3주차] 알파 유저를 위한 AWS 스터디

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

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

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

AmazonWebServices

AWSKorea

AWSKorea ‘좋아요’ 눌러주세요!