AMAZON WEB SERVICES CLOUD DESIGN PATTERN JISSOU GUIDE written by Fumitaka Osawa, editorial content supervised by Ken Tamagawa, Akio Katayama, Hiroyasu



Similar documents
Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

°æÁ¦Àü¸Á-µ¼º¸.PDF

Remote UI Guide

희망브리지

09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 중간착취의 금지 41 - 대판 , 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 , 2002도3883 [남녀고용평등법위

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat


Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

vm-웨어-01장

2

Microsoft Word - zfs-storage-family_ko.doc

PowerPoint Presentation

untitled

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

사물인터넷비즈니스빅뱅_내지_11차_ indd

언리얼엔진4_내지_ indd


INDUS-8.HWP

CONTENTS.HWP

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

10X56_NWG_KOR.indd

<BFDCB1B9C0CE20C5F5C0DAB1E2BEF7C0C720B3EBBBE7B0FCB0E82E687770>

1217 WebTrafMon II

StruxureWare Data Center Expert 7.2.x 의 새 기능 StruxureWare Data Center Expert 7.2.x 릴리스에서 사용할 수 있는 새 기능에 대해 자세히 알아보십시오. 웹 클라이언트 시작 화면: StruxureWare Cen

< BACFC7D1B1B3C0B0C1A4C3A5B5BFC7E228B1E2BCFABAB8B0ED D D20C6EDC1FD2035B1B32E687770>

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

Solaris Express Developer Edition

<C1A4C3A5BFACB1B D3420C1A4BDC5C1FAC8AFC0DAC0C720C6EDB0DFC7D8BCD220B9D720C0CEBDC4B0B3BCB1C0BB20C0A7C7D120B4EBBBF3BAB020C0CEB1C720B1B3C0B020C7C1B7CEB1D7B7A520B0B3B9DF20BAB8B0EDBCAD28C7A5C1F6C0AF292E687770>

Sun Java System Messaging Server 63 64

정적으로 설치된 mod_ssl 모듈확인 동적으로 설치된 mod_ssl 모듈확인 웹서버에 설치된 모듈중 mod_so.c 를 먼저 확인후 동적으로 설치된 모듈중 mod_ssl.so 를 확인합니다. 동적으로 설치된 경우 apache 설치 디렉토리의 module 이나 libe

Assign an IP Address and Access the Video Stream - Installation Guide

solution map_....

00-1표지

Tekla Structures 설치

<3036C7E2BCF6C3D6C1BEBABB2E687770>

세계 비지니스 정보

Integ

Citrix Workload Balancing 2.1 설치 가이드

<4D F736F F D205B4354BDC9C3FEB8AEC6F7C6AE5D3131C8A35FC5ACB6F3BFECB5E520C4C4C7BBC6C320B1E2BCFA20B5BFC7E2>

Microsoft Word - s.doc

ODS-FM1

User's Guide

목 차

Session XX-XX: Name

Portal_9iAS.ppt [읽기 전용]

제 출 문 중소기업청장 귀하 본 보고서를 중소기업 원부자재 구매패턴 조사를 통한 구매방식 개선 방안 연구 의 최종보고서로 제출합니다 한국산업기술대학교 산학협력단 단 장 최 정 훈 연구책임자 : 이재광 (한국산업기술대학교 부교수) 공동연구자 : 노성호

APOGEE Insight_KR_Base_3P11

목차 Q-1. 데이터를 통한 음성통화가 되지 않습니다 Q-2. WiFi 연결이 안됩니다 Q-3. 인터넷 또는 네트워크 연결이 안됩니다 Q-4. 표준 부속품을 알려주시기 바랍니다 Q-5. 구입하였습니다만, 배터리는 어떻게 장착하

Network seminar.key

The Self-Managing Database : Automatic Health Monitoring and Alerting

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

PCServerMgmt7

CLX8380_KR.book

<BAD2B9FDBAB9C1A620BAB8B0EDBCAD5FC5EBC7D55F FB9DFB0A3BBE7C6F7C7D45F33C2F720B1B3C1A428B1D7B8B22020C3DFC3E2292E687770>

Microsoft PowerPoint - eSlim SV [ ]

vm-웨어-앞부속

chapter1,2.doc

Simplify your Job Automatic Storage Management DB TSC

Microsoft PowerPoint - eSlim SV [080116]

오늘날의 기업들은 24시간 365일 멈추지 않고 돌아간다. 그리고 이러한 기업들을 위해서 업무와 관련 된 중요한 문서들은 언제 어디서라도 항상 접근하여 활용이 가능해야 한다. 끊임없이 변화하는 기업들 의 경쟁 속에서 기업내의 중요 문서의 효율적인 관리와 활용 방안은 이

UNIST_교원 홈페이지 관리자_Manual_V1.0

05Àå

israel-내지-1-4

Contents I. 칼라스 네트워크 플레이어란 1. Pc-Fi를 넘어서 발전한 차세대 음악 플레이어 칼라스 네트워크 플레이어의 장점 3. 시스템 기본 구성

hd1300_k_v1r2_Final_.PDF

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

cam_IG.book

PRO1_04E [읽기 전용]

2005 중소기업 컨설팅 산업 백서

UDP Flooding Attack 공격과 방어

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

PowerPoint 프레젠테이션

DE1-SoC Board

휠세미나3 ver0.4

<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3


chapter4

본 기기에 대하여 언제, 어디서나 자유롭게 LG 넷하드를 구입해주셔서 감사합니다. LG 넷하드는 인터넷이 연결된 곳이라면 언제 어디서나 자유롭게 파일을 저장하고 공유할 수 있는 장치입니다. 2

Intro to AWS Cloud-중앙대

Mars OS System Administration Guide

CD-RW_Advanced.PDF

파이썬을 이용한 AWS 가이드

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

ARMBOOT 1

미얀-내지-8차

<49534F C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770>

À̶õ°³È²³»Áö.PDF

라즈베리파이 프로그래밍_130912(최종).indd

리뉴얼 xtremI 최종 softcopy

SMB_ICMP_UDP(huichang).PDF


안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을

PowerPoint Presentation

KeyMission 360 KeyMission ( ).... 4K UHD., 60 cm... ii KeyMission 360

User Guide

manual pdfÃÖÁ¾

PowerPoint 프레젠테이션

Transcription:

AMAZON WEB SERVICES CLOUD DESIGN PATTERN JISSOU GUIDE written by Fumitaka Osawa, editorial content supervised by Ken Tamagawa, Akio Katayama, Hiroyasu Suzuki and edited by Nikkei SYSTEMS Copyright 2013 by Fumitaka Osawa. All rights reserved. Originally published in Japan by Nikkei Business Publications, Inc. 이 책의 한국어판 저작권은 대니홍 에이전시를 통한 저작권사와의 독점 계약으로 제이펍에 있습니다. 신저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 복제를 금합니다. 초판 1쇄 발행 2013년 11월 8일 지은이 오오사와 후미타카 감수자 타카가와 켄, 카타야마 아키오, 스즈키 히로야스 편 집 Nikkei SYSTEMS 옮긴이 박상욱 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제406-2009-000087호 주소 경기도 파주시 문발동 파주출판도시 530 1 뮤즈빌딩 403호 전화 070 8201 9010 / 팩스 02 6280 0405 홈페이지 www.jpub.kr / 이메일 jeipub@gmail.com 편집부 이민숙, 이 슬 / 본문디자인 북아이 / 표지디자인 미디어픽스 용지 신승지류유통 / 인쇄 해외정판사 / 제본 광우제책사 ISBN 978-89-94506-78-4 (93000) 값 27,000원 이 책은 저작권법에 따라 보호를 받는 저작물이므로 무단전재와 무단복제를 금지하며, 이 책 내용의 전부 또는 일부를 이용하려면 반드시 저작권자와 제이펍의 서면 동의를 받아야 합니다. 잘못된 책은 구입하신 서점에서 바꾸어 드립니다. 제이펍은 독자 여러분의 책에 관한 아이디어와 원고 투고를 기다리고 있습니다. 책으로 펴내고자 하는 아이디어나 원고가 있으신 분께서는 책에 대한 간단한 개요와 차례, 구성과 저(역)자 약력 등을 메일로 보내주세요. (보내실 곳: jeipub@gmail.com)

차례 추천사 Ⅹ 옮긴이 머리말 ⅩⅡ 머리말 ⅩⅣ CHAPTER 1 Amazon EC2의 기본 조작 _ 1 1-1 Amazon EC2란 무엇인가? 2 Amazon EC2의 기본 2 이 장의 내용 6 1-2 AWS 계정을 생성하자 8 1-3 EC2 인스턴스를 가동하자 14 AWS Management Console에 로그인한다 14 EC2 인스턴스를 생성한다 16 1-4 EC2 인스턴스를 조작하자 33 EC2 인스턴스를 확인한다 33 IP 주소를 확인한다 33 EC2 인스턴스를 정지한다 35 1-5 SSH로 로그인하여 Apache를 설치하자 37 SSH로 접속한다 37 Apache를 설치해보자 40 1-6 고정 IP 주소를 할당하는 Elastic IP Address 45 1-7 요약 49 IV

차례 CHAPTER 2 기본적인 클라우드 디자인 패턴 _ 51 2-1 이 장의 시나리오 52 2-2 어느 시점의 가상 서버 이미지를 저장하는 Snapshot 패턴 53 Snapshot 패턴의 개요 53 스토리지의 상태를 확인하자 54 스냅샷을 생성한다 55 스냅샷에서 EBS 볼륨을 생성한다 57 스냅샷에서 AMI를 생성한다 60 2-3 EC2 인스턴스를 이미지로부터 만드는 Stamp 패턴 64 Stamp 패턴의 개요 64 기존 EC2 인스턴스에서 사용자 AMI를 생성 65 AMI에서 EC2 인스턴스를 만든다 67 복제한 EC2 인스턴스 환경 설정 70 2-4 CPU나 메모리 등의 사양을 변경하는 Scale Up 패턴 72 Scale Up 패턴의 개요 72 인스턴스 타입을 변경한다 73 2-5 디스크 용량을 변경하는 Ondemand Disk 패턴 76 Ondemand Disk 패턴의 개요 76 EC2 인스턴스의 AZ를 확인한다 77 디스크를 증설한다 78 디스크 용량을 늘린다 83 2-6 요약 93 CHAPTER 3 이미지 동영상 제공 사이트 구축 _ 95 3-1 이 장의 시나리오 96 저비용으로 서버를 조금씩 증설하거나 사양을 높인다 96 이 장의 순서 97 V

차례 3-2 DNS를 구성하는 Route 53 101 DNS를 구성하기 위한 준비 101 Route 53 서비스에 관리할 도메인을 등록한다 106 레지스트라에 Delegation Set을 신청한다 108 DNS명과 IP 주소와의 연결 109 DNS가 정상적으로 설정이 되었는지를 확인한다 113 3-3 부하가 많은 것을 S3로 제공하는 Web Storage 패턴 115 Amazon S3와 버킷 116 S3 버킷을 생성 119 S3 버킷의 접속 권한을 설정한다 121 CNAME을 설정 127 S3 버킷에 파일을 업로드한다 129 3-4 S3를 정적 콘텐츠 제공용 웹 서버로 사용하는 Direct Hosting 패턴 132 S3 버킷으로 콘텐츠를 호스팅한다 132 콘텐츠 저장용 S3 버킷을 준비한다 134 s3fs를 설치한다 139 S3 버킷을 마운트한다 143 웹 사이트 URL을 CNAME 설정한다 145 Movable Type을 설정한다 147 3-5 캐시로 부하를 줄이는 Cache Distribution 패턴 150 Amazon CloudFront와 에지 서버 150 Amazon CloudFront를 구성한다 152 에지 서버에 대해 CNAME을 구성한다 165 3-6 캐시 갱신 문제를 해결하는 Rename Distribution 패턴 169 갱신 후 새로운 파일명으로 제공한다 169 블로그 링크를 수정한다 172 3-7 기타 적용 가능한 패턴 175 Storage Index 패턴 175 Write Proxy 패턴 175 Private Distribution 패턴 181 Direct Object Upload 패턴 183 3-8 요약 185 VI

차례 CHAPTER 4 전자상거래 사이트 구축 _ 187 4-1 이 장의 시나리오 188 EC-CUBE를 이용한 전자상거래 사이트 구성 188 이 장의 순서 192 4-2 테스트 후 서비스 환경으로 이전하는 Floating IP 패턴 194 Elastic IP Address 할당하는 EC2 인스턴스를 재빨리 변경한다 194 서비스 환경을 복사하여 테스트 환경을 만든다 196 테스트 환경을 서비스 환경으로 변경한다 199 4-3 데이터를 다른 서버에 마운트하는 Server Swapping 패턴 205 데이터 변경이 필요할 때의 문제점 200 데이터를 변경하지 않고 서버만을 변경한다 206 EBS 볼륨을 디태치한다 208 EBS 볼륨을 이전한다 210 4-4 데이터베이스 엔진을 제공하는 Amazon RDS 214 웹 서버와 DB 서버의 분리 215 Amazon RDS를 구성한다 217 Amazon RDS의 기본 관리 조작 232 4-5 로드 밸런서로 이중화 구성을 하는 Multi-Server 패턴 237 ELB를 사용한 이중화 구성 237 ELB를 가동한다 239 여러 대의 EC2 인스턴스로 부하분산한다 244 부하분산과 장애 시의 상황을 테스트한다 249 Route 53의 CNAME을 설정한다 253 4-6 데이터베이스를 레플리케이션하는 DB Replication 패턴 255 같은 지역의 다른 AZ에 레플리케이션을 구성한다 255 Multi-AZ를 적용한다 256 4-7 다른 데이터 센터에 분산하는 Multi-Datacenter 패턴 258 4-8 기타 적용 가능한 패턴 260 Deep Health Check 패턴 260 Stack Deployment 패턴 261 VII

차례 4-9 요약 263 CHAPTER 5 이벤트 사이트 구축 _ 295 5-1 이 장의 시나리오 266 WordPress를 사용한 이벤트 사이트 구성 266 이 장의 순서 269 5-2 마스터/클론 구성으로 많은 클론 서버를 만드는 Clone Server 패턴 272 마스터/클론으로 구성한다 272 클론용 AMI를 생성한다 274 같은 보안 그룹에 포함된 EC2 간에 통신을 할 수 있도록 한다 280 rsync를 사용해 파일을 동기화한다 283 마스터 EC2 상의 데이터베이스를 참조하도록 구성한다 291 ELB로 구성하기 위한 수정 295 클론용 AMI를 생성한다 297 5-3 Clone Server 패턴을 적용하여 스케일 아웃하자 299 ELB를 구성한다 299 수동 스케일 아웃과 자동 스케일 아웃 306 수동 스케일 아웃 307 자동 스케일 아웃 314 5-4 마스터 EC2의 파일을 공유하는 NFS Sharing 패턴 343 기존의 클론 EC2를 변경한다 344 NFS 설치와 설정 347 AMI 생성과 Auto Scaling의 수정 352 5-5 공유 파일의 레플리카를 만들어 고속화하는 NFS Replica 패턴 357 레플리카를 구성한다 358 이페머럴 디스크를 이용한다 361 VIII

차례 5-6 데이터베이스의 읽기 전용 레플리카로 부하분산하는 Read Replica 패턴 362 RDS로 이전한다 363 읽기 전용 레플리카를 생성한다 370 HyperDB 플러그인으로 부하분산한다 372 5-7 URL Rewriting 패턴 377 URL Rewriting 패턴 적용 순서 378 S3 버킷을 생성한다 379 s3cdm 명령어를 설치한다 386 S3 버킷에서 정적 파일을 전송한다 390 mod_ext_filter 로 URL을 치환한다 391 5-8 기타 적용 가능한 패턴 395 Block Storage RAID 패턴 395 Rewrite Proxy 패턴 396 Cache Proxy 패턴 397 Web Storage Archive 패턴 398 Scheduled Autoscaling패턴 399 5-9 요약 401 APPENDIX 부 록 _ 403 부록 A Movable Type 설치 404 부록 B EC-CUBE의 설치 423 부록 C WordPress의 설치 434 마치며 443 찾아보기 446 IX

추천사 IT 발전사의 한 획을 긋고 있는 클라우드 환경은 개발자와 사용자들에게 점점 더 많 은 관심을 받고 있습니다. Amazon Web Services(이하 AWS )는 다양한 개발 환 경과 고객의 요구사항에 적합한 클라우드 환경을 제공하기 위해 2006년부터 서비스를 시 작하였으며, 현재 전 세계의 수많은 엔터프라이즈, 개발자, 스타트업 벤처 회사, 공공기관 들과 함께 발전하고 있습니다. 상당수의 회사와 개발자들이 비용 절감, 효율성과 안정성 향상 등의 이유로 클라우드 도입 을 긍정적으로 고려하고 있습니다. 그러나 그와 동시에 정보 보안과 환경의 변화로 인한 불확실성 때문에 빠른 결정을 내리지 못하고 있는 것도 현실입니다. 하지만 AWS는 SOC 1/2/3, ISO 27001, PCI DSS, FedRAMP, HIPPA 등과 같이 전 세계적으로 권위 있는 다양한 보안 및 운영 관련 인증을 획득하였습니다. 따라서 고객들은 막대한 예산이 소요되 는 보안 및 인프라 구축과 운영에 신경을 쓰지 않아도 됩니다. 또한, AWS의 도입으로 절 감한 예산과 시간을 경쟁 업체와 차별화시킬 수 있는 부분에 집중적으로 투자할 수 있을 것입니다. 삼성전자, 넷플릭스(Netflix), 미국항공우주국(NASA), 드롭박스(Dropbox), 인 스타그램(Instagram), 쉘(Shell) 등과 같은 회사들의 AWS 도입 사례를 보면 쉽게 판단할 수 있으리라 봅니다. X

추천사 이 책 아마존 웹 서비스 클라우드 디자인 패턴 구현 가이드 에는 일본 AWS 아키텍처들 의 경험과 지식이 그대로 녹아 있습니다. AWS가 지닌 확장성, 안정성, 범용성을 기반으 로 AWS 클라우드 환경을 실제 사업장에 손쉽게 구현할 수 있도록 풍부한 그림과 명료한 설명으로 안내합니다. 아마존 웹 서비스 클라우드 디자인 패턴 설계 가이드 에 이어 또 한 권의 AWS 실무 서적의 번역 출간을 진심으로 축하합니다. 이 책들을 통해 더 많은 국 내 개발자와 고객들이 더 쉽게, 그리고 효율적으로 클라우드를 사용할 수 있는 계기가 될 수 있기를 기대합니다. 아마존 웹 서비스 한국 지사장 _ 장혜덕 XI

옮긴이 머리말 이 책은 아마존 웹 서비스 클라우드 디자인 패턴 시리즈 중 설계 가이드 에 이은 두 번째 책으로, 설계 가이드 후반부에서 소개되었던 클라우드 디자인 패턴 적용 시나리오인 이미 지 동영상 제공 사이트/전자상거래 사이트/이벤트 사이트를 중심으로 아마존 웹 서비스를 이용하여 사이트 구축 방법과 기본 서비스에 대해 설명하고 있다. 설계 가이드 에서는 이 론을 중심으로 아마존 웹 서비스를 공부하였다면, 이 구현 가이드 에서는 실제 아마존 웹 서비스의 관리 콘솔 화면에서 하나하나 따라 하며 사이트를 구축할 수 있게 구성되어 있 다. 시스템 엔지니어, 개발자, DBA 등 IT에 종사하고 계신 분들은 물론, 비전공자 또한 쉽게 아마존 웹 서비스를 이해하고 접근할 수 있게 구성된 책이다. 이 책에서는 아마존 웹 서비스의 모든 서비스를 설명하고 있지는 않다. 그러나 대표적인 서비스인 EC2/Route53/S3/CloudFront/RDS/ELB 등의 사용 방법을 설명하고 있으므 로 아마존 웹 서비스를 이해하고 사용하는 데 충분한 가이드가 되리라 생각된다. 또한, 아 마존 웹 서비스에 대한 몇 가지 책이 국내에 소개되어 있긴 하지만, 이 책처럼 아마존 웹 서비스의 장점과 특징을 잘 설명해놓은 책은 없을 것이다. 역자도 아마존 웹 서비스를 배 우기 위해 여러 책을 살펴보거나 인터넷에서 수많은 검색을 해보았지만, 이 책만큼 아마존 웹 서비스를 이해하고 활용할 수 있게 해주는 내용은 접하기 힘들었다. 책의 순서대로 따 라 하기만 해도 아마존 웹 서비스를 활용하여 시스템을 어렵지 않게 구축할 수 있었다. 마지막으로, 이번 구현 가이드 를 통해 여러 분야의 많은 분이 아마존 웹 서비스를 손쉽게 활용하는 기회가 되었으면 좋겠고, 더 나아가 클라우드라는 것이 어렵고, 비용이 많이 들 며, 안정성이 떨어지는 서비스라고 생각하시는 분들께도 클라우드 서비스를 올바르게 알 리는 계기가 되었으면 한다. XII

옮긴이 머리말 감사의 말 저의 두 번째 번역 출간을 위해 수고해주신 많은 분께 진심으로 감사의 마음을 전하고 싶 다. 먼저, 저에게 번역의 기회를 주시고 항상 조언을 주시는 제이펍 출판사의 장성두 실장 님에게 감사의 말씀을 드리고 싶다. 그리고 언제나 꼼꼼한 편집을 해주시는 김수미 님께도 감사의 말씀을 전한다. 또한, 항상 기술적으로 많은 조언을 주시는 아마존 코리아의 이수 형 수석SA님과 정윤진 SA님께도 대단히 감사드린다. 마지막으로, 언제나 바쁜 남편을 위 해 응원해주는 아내와 언제나 아빠를 찾는 딸 지민이에게도 이 자리를 빌려 사랑한다는 말 을 전하고 싶다. 박상욱 XIII

머리말 클라우드는 가상화 환경이기 때문에 서버나 스토리지의 대수 및 용량을 늘리거나 네트워 크 설정 변경이 간편하다. 이 특징을 이용해 설계하면 유연하면서도 고부하에 견딜 수 있 는, 관리하기 좋은 시스템을 만들 수 있다. 이런 클라우드에서의 노하우를 패턴화한 것이 Cloud Design Pattern(CDP) 이다. CDP는 이 책의 감수자이자 아마존 웹 서비스 클라 우드 디자인 패턴 설계 가이드 의 저자들인 Ninja of Three(타마가와, 카타야마, 스즈키)가 정리한 것이다. 이 책은 CDP를 만든 감수자들의 시나리오와 몇 가지 CDP를 실제 아마존 웹 서비스 (AWS)에 적용할 때 어떻게 할 것인가를 구체적으로 설명한 것이다. AWS에는 30가지 이 상의 다양한 가상 서비스가 있는데, 이 책에서는 그중 아래의 6가지 서비스를 이용하여 이 미지 동영상 제공 사이트/전자상거래 사이트/이벤트 사이트를 실제 구축하는 경험을 제공 하고 있다. EC2(Amazon Elastic Compute Cloud) Route 53(Amazon Route 53) S3(Amazon Simple Storage Service) CloudFront(Amazon CloudFront) RDS(Amazon Relational Database Service) ELB(Elastic Load Balancing) 가상 서버 DNS 서비스 인터넷 스토리지 콘텐츠 배포 서비스(캐시 서비스) 데이터베이스 서비스 가상 로드 밸런싱 XIV

머리말 AWS로 시스템을 구축할 때 각 서비스의 특성을 알고 적합하게 조합해 사용하는 것이 중 요하다. 왜냐하면, 어떤 서비스와 조합하느냐에 따라 비용과 성능이 달라지기 때문이다. 예를 들어, 웹 서버를 구축할 때 EC2로 구성된 한 대의 가상 서버에 Apache(아파치)를 설 치하고 콘텐츠를 공개하는 경우에는 많은 액세스를 견딜 수 없다. 정적 페이지를 공개할 때는 EC2 대신 S3 서비스로 구성되는 스토리지의 웹 서버 기능을 이용하면 더 많은 액세 스에 견딜 수 있게 된다. 이런 노하우가 CDP다. CDP를 습득하면 저비용으로 좋은 구성 의 시스템을 구축할 수 있다. 이 책은 처음 AWS를 사용하는 사용자를 대상으로 이런 서비스들을 조합하여 어떻게 시스 템을 구축하면 좋을지를 설명한 것이다. 1장과 2장은 AWS의 기본 기능을 설명한다. 1장에서는 가상 서버인 EC2에 Apache를 설치하고 웹 서버를 구축하기까지의 기본적인 방법을 설명한다. 그리고 2장에서는 EC2 인스턴스를 복제하거나, CPU 성능을 높이거나, 스토리지 용량을 올리는 방법을 설명 한다. 그리고 3장에서는 시스템 구축의 각종 시나리오에 대해 발생하는 여러 문제를 CDP를 적 용하여 어떻게 해결하면 되는지를 설명한다. 3장에서는 Movable Type을 이용한 블로그 시스템을 주제로 한다. Route 53을 이용해 개인 도메인으로 서버를 운용하는 기본적인 방 법, S3를 이용해 웹 서버를 구축하는 방법, 그리고 CloudFront를 이용해 콘텐츠를 캐시 하여 성능을 높이는 방법을 설명한다. 4장에서는 EC-CUBE를 사용한 전자상거래 사이 트를 주제로 한다. 다운타임을 최소화하여 서버를 교체하는 방법, 데이터베이스 엔진으로 Amazon RDS를 이용하는 방법, 그리고 이중화 구성을 하여 ELB를 사용한 부하분산 방 법을 설명한다. 마지막으로, 제5장에서는 WordPress(워드프레스)를 이용한 이벤트 사이트 를 주제로 한다. 이벤트 중 액세스 양이 급격히 증가해도 문제가 발생하지 않도록 부하에 따라 가상 서버의 수를 동적으로 늘리거나 줄이는 방법을 설명한다. 가상 서버를 동적으로 늘리는 방법은 AWS만의 묘미다. AWS에서 제공하는 여러 가지 서비스는 AWS 관리 화면에서 간단한 방법으로 가동 및 정 지, 그리고 백업과 복제가 가능하다. 실수한 경우에도 되돌리기가 가능하고, 백업을 해두 었다면 간단하게 그 시점으로 복원이 가능하다. 그래서 궁금한 사항이 있다면 바로 테스트 가 가능하다. AWS는 저비용의 소규모 시스템에서부터, 비용이 발생해도 견고함이 필요 XV

머리말 한 중대규모의 시스템에 이르기까지, 방법에 따라 어떠한 시스템이든 구축 가능한 것이 큰 특징이다. 이 책을 통해 AWS 편리함을 인지하여 여러 시스템 구축에 AWS를 사용하는 기회가 많아졌으면 좋겠다. 마지막으로, 감수자인 타마가와 님, 카타야마 님, 스즈키 님에게 정말 많은 지원을 받았다. 정말로 깊이 감사드린다. 오오사와 후미타카 일러두기 이 책에 기술하고 있는 기술은 출판사 및 필자가 품질 등을 보증하는 것은 아님을 밝혀둡니다. 이 책에 기재한 회사명 및 제품명은 각 회사의 상표 및 등록명입니다. 이 책에서는 C, R, TM 등의 기호를 생략하고 있습니다. 이 책에서 사용하고 있는 화면은 2013년 8월 시점의 것들입니다. XVI

C H A P T E R 1 Amazon EC2의 기본 조작

CHAPTER 01 Amazon EC2의 기본 조작 1-1 Amazon EC2란 무엇인가? Amazon EC2는 AWS에서 제공하는 가상 서버 서비스다. 필요할 때 필요한 사양으로 가상 서버를 가동할 수 있다. Amazon EC2의 기본 Amazon EC2를 이용하면 전 세계에 분산된 데이터 센터군 어딘가에 가상 서버 를 배치하 고 그 서버를 사용할 수 있게 된다. 배치한 각각의 가상 서버를 EC2 인스턴스 라고 한다. 가동 장소를 선택 EC2 인스턴스가 배치되는 데이터 센터군을 지역(Region) 이라고 한다. 미국 서부 - 오 리건 이나 아시아 퍼시픽 - 도쿄 등 2012년 12월 현재, 전 세계에 9개의 지역이 있다. (미 국 동부, 미국 서부 캘리포니아, 유럽, 싱가폴, 상파울로, 시드니 등) 각각의 지역은 인터넷으로 접속되어 주거 지역에 상관없이 어느 지역이든 이용이 가능하 다. 또한, 지역은 몇 개의 장소로 나뉘는데, 그것을 가용존(Availability Zone, 가용성 존 혹 은 이용가능 존) 이라고 한다(그림 1-1 참조). 각각의 가용존은 네트워크 설비 전원 설비 냉각 설비 가 따로 존재한다. 가용존 사이는 물리적으로 많이 떨어져 있어 서로 다른 가용 존을 이용하면 재해 대비도 가능하다. 1 지역의 선택 방법 어떤 지역을 선택하느냐에 따라서 네트워크의 레이턴시(지연) 가 달라진다. 동아시아에서 액세스하는 서버를 운용하고 싶다면 물리적으로 가까운 아시아 퍼시픽 - 도쿄 에 EC2 인 스턴스를 배치하는 것이 유리하다. 단, 지역에 따라 가격이 달라서 도쿄 와 미국 서부 - 오리건 은 전자의 경우가 더 비싸다. 그러므로 실제로 선택할 때에는 레이턴시 와 가격 에 따라 결정하게 된다. 2

1-1 Amazon EC2란 무엇인가? 2 가용존의 선택 방법 한 개의 EC2 인스턴스만 가동할 경우에는 어느 가용존에 배치해도 동일하다. 그러나 여러 대의 EC2 인스턴스를 사용하는 경우는 다른 가용존에 배치하는 것을 추천한다. 그렇게 하 면 장애에 대한 허용 범위를 높일 수 있다. 그림 1-1 지역 과 가용존 의 관계 가용존 사이는 전용선으로 연결되어 있어 네트워크 속도가 문제시되는 경우는 거의 없다. 사양은 나중에 변경 가능 EC2 인스턴스는 가상의 CPU 메모리 디스크 로 구성되어 있다. CPU와 메모리 사용은 목적에 맞게 선택한다. 또, 가동 후에는 변경도 가능하다(2-4 CPU 나 메모리 등의 사양을 변경하는 Scale Up 패턴 을 참조). 하지만 처음에는 최소한의 사양으로 가상 서버를 운용하고, 필요에 따라 조금씩 스케일 업하는 게 좋을 것이다. 3

CHAPTER 01 Amazon EC2의 기본 조작 Memo 사양을 변경하려면 EC2 인스턴스를 일시 정지해야 한다. 가동 중에는 변경할 수 없다. 디스크는 ESB로 구성된다 EC2 인스턴스에는 부팅이나 데이터 저장 디스크로 EBS(Elastic Block Store) 라는 스토리 지 디바이스가 사용된다. EC2 인스턴스를 만들 때는 첫 번째 디스크(부팅 디스크)인 EBS 도 함께 만들어진다(그림 1-2 참조). 그림 1-2 EC2 인스턴스와 EBS와의 관계 Memo EBS를 사용하지 않고 EC2 인스턴스 내부에 있는 단발성 로컬 인스턴스 스토어 에 첫 번째 디스크를 만드는 방법도 있다. 이것은 EC2 인스턴스 가동 시 Amazon S3 위의 서버 이미지 를 읽어와서 로컬 인스턴스 스토어에 전달하는 방법으로, S3-backed 라고 한다. 현재 S3- backed의 EC2 인스턴스는 거의 사용하지 않는다. 자세한 것은 2장에서 설명하겠지만, EBS는 스냅샷 저장을 할 수 있어 백업이 간편하다. 그리 고 디스크 용량도 변경 가능하다(2-5 디스크 용량을 변경하는 Ondemand Disk 패턴 을 참조). 또, 어떤 EC2 인스턴스로 사용하든지간에 EBS를 다른 EC2 인스턴스에 마운트하는 것도 가능하다. EBS는 GB(기가바이트) 단위의 종량제 요금으로, EC2 인스턴스에서 사용하지 않아도 EBS를 만든 시점에 (실제 저장된 데이터 용량이 아닌) 만들어진 용량에 대해 과금이 된다. 4

1-1 Amazon EC2란 무엇인가? 리눅스와 Windows Server 2012의 선택이 가능하다 EC2 인스턴스는 서버 이미지 를 기본으로 만든다. 기본이 되는 이미지를 AMI(Amazon Machine Image) 라고 한다. Amazon EC2에는 Amazon Linux 나 Red Hat Enterprise Linux Ubuntu Server 등 리눅스 계열 이미지 이외에 Windows Server 2008 이나 Windows Server 2012 이미지도 제공하고 있는데, 이미지를 자신이 만들 수도 있다. AMI는 OS가 설치되어 있어 실행 가능한 서버 디스크 이미지 다. AMI를 지정해 가동한 EC2 인스턴스에는 이미 OS가 설치되어 있다. 필요한 유저는 만들어져 있고 필요한 서비 스도 동작하고 있기에 OS의 설치나 초기 설정 없이 손쉽게 사용할 수 있다. Memo AMI는 OS 설치 미디어를 ISO 형식으로 만든 것과는 다르다. 예를 들어, 표준으로 제공하지 않 는 OS를 사용하려고 ISO 파일을 준비하더라도 EC2 인스턴스를 만들 수는 없다. 표준 이외의 OS를 사용할 때에는 먼저 어떤 서버를 구축하고 거기에 필요한 초기 설정을 하여 EC2용 디 스크 전체 이미지를 만드는 작업이 필요하다. 할당 가능한 IP 주소 EC2 인스턴스를 가동하면 두 개의 IP 주소가 할당된다. 기본적으로 둘 다 동적이다. EC2 인스턴스를 정지하고 다시 가동하면 다른 IP 주소가 할당된다(정지가 아닌 재시작 시에는 같 은 IP 주소가 할당된다). AWS에서 제공되는 Elastic IP Address 라는 서비스를 이용하면 공인 IP 주소를 고정으 로 사용이 가능하다(1-6 고정 IP 주소를 할당하는 Elastic IP Address 를 참조). 1 Public DNS와 Public IPs 인터넷에서 접속할 수 있는 호스트명과 IP 주소다. 이 호스트명과 IP 주소에 SSH 등으로 접속하여 EC2 인스턴스를 관리할 수 있다. ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com (XXX=IP 주소)와 같이 동적 호스트명과 IP 주소가 할당된다. 5

CHAPTER 01 Amazon EC2의 기본 조작 2 Private DNS와 Private IPs 같은 지역 내 통신에서 사용되는 사설 IP 주소로, 인터넷에서는 접속할 수 없다. 또한, 다 른 지역에서도 통신이 불가능하다. ip-xxx-xxx-xxx-xxx.ap-northeast-1.compute.internal (XXX=IP 주소)와 같이 동적 DNS명과 IP 주소가 할당된다. EC2 인스턴스의 조작 EC2 인스턴스에 대하여 다음과 같은 조작이 가능하다. 1 가동(Start) 2 정지(Stop) 3 재가동(Reboot) 4 종료(Terminate) 여기서 주의할 점은 4의 종료(Terminate) 다. EC2를 종료하게 되면 EC2 인스턴스는 파 기되고 데이터는 전부 삭제되는데, 가동 중의 EC2 인스턴스를 실수로 종료하지 않도록 주 의해야 한다. Memo EC2 인스턴스에는 실수로 종료하는 것을 방지하기 위하여 Termination Protection 이라는 기 능이 있다(표 1-2 참조) Termination Protection을 활성화시켜 두면 종료를 할 수 없게 된다. 이 장의 내용 이 장에서는 Amazon EC2를 사용하여 가상 서버를 만들고, 그 가상 서버를 웹 서버로 만 드는 과정을 설명한다. 1 AWS 계정 신청 AWS 서비스를 사용하기에 앞서 AWS 계정 이 필요하다. 그러므로 일단 계정을 신청 한다. 6

1-1 Amazon EC2란 무엇인가? 2 리눅스 기반의 EC2 인스턴스를 만든다 계정을 만들었다면 Amazon EC2 관리화면으로 이동하여 EC2 인스턴스 를 만든다. 여 기서 만드는 EC2 인스턴스는 리눅스 기반이다. 3 Apache를 설치한다 웹 서버로 구성하기 위하여 EC2 인스턴스에 Apache를 설치한다. 서버를 조작하기 위해 서는 SSH로 로그인한다. 4 고정 IP 주소를 할당한다 기본으로 동적 IP 주소가 할당되기 때문에 EC2 인스턴스를 정지하고 가동할 때마다 IP 주 소가 바뀐다. 그래서 Elastic IP 서비스를 이용하여 고정 IP 주소를 할당한다. 7

CHAPTER 01 Amazon EC2의 기본 조작 1-2 AWS 계정을 생성하자 AWS를 사용하려면 AWS 계정 이 필요하다. 사용자 정보를 등록하고 AWS 계정을 생성 해보자. 또한, AWS를 사용하려면 결제용 신용카드가 필요하다(신용카드 정보를 등록해도 무료 범위에서 이용한다면 비용이 발생하지 않는다). 계정을 신청하면 약 10분 정도 기다린 후 에 AWS를 사용할 수 있게 된다. AWS 신청 순서는 다음과 같다. Memo AWS의 관리화면(AWS Management Console)에서는 JavaScript(자바스크립트)가 사용된다. 지원하는 웹브라우저는 다음과 같다. (http://aws.amazon.com/console/faqs/) 모질라 파이어폭스 12,13 애플 사파리 5 구글 크롬 19, 20 인터넷 익스플로러 8, 9 [1] AWS 사이트에 접속한다 먼저, AWS 사이트인 http://aws.amazon.com/ko 에 접속한다. 신규 계정을 만들기 위해 [무료로 시작]을 선택한다(그림 1-3 참조). [2] AWS 계정을 만들거나 로그인한다 등록할 메일 주소를 입력한다. Amazon.com에서 사용하고 있는 메일 주소를 사용하느 냐, 마느냐에 따라 선택하는 항목이 달라진다(그림 1-4 참조). 8

1-2 AWS 계정을 생성하자 [무료로 시작]을 선택 그림 1-3 AWS 계정 신청 1 메일 주소를 입력 2 (a)amazon.com과 다른 메일 주소일 때 3 (b)amazon.com과 같은 메일 주소일 때 4 선택 그림 1-4 AWS 계정을 만들거나 로그인 9

CHAPTER 01 Amazon EC2의 기본 조작 1 이름을 입력 2 메일 주소를 입력 3 설정하려는 패스워드 입력 4 선택 그림 1-5 신규 계정 신청 (a) Amazon.com과 다른 메일 주소일 때 [I am a new user.]를 선택하고 [Sign in using out secure server]를 선택한다. 다 음 화면에서 이름 과 설정하려는 패스워드 를 넣으면 신규 계정이 만들어진다(그림 1-5 참조). (b) Amazon.com과 같은 메일 주소일 때 [I am a returning user and mypassword is:]를 선택하여 패스워드를 입력하고 [Sign in using out secure server]를 선택한다. 그렇게 하면 Amazon.com의 계정 정보가 그대로 사용된다. [3] 연락처 정보 입력 이름과 회사명, 주소, 전화번호 등을 입력한다. 한글이 아닌 전부 영문/숫자 로 입력해야 한다. 중간에는 자동 가입을 막기 위해서 보안 점검 항목이 있는데, 표시된 영문/숫자를 입력한다. 그리고 맨 아래 AWS 고객 계약 에 체크를 하여 동의한다(그림 1-6 참조). 10

1-2 AWS 계정을 생성하자 1 이름, 주소, 전화번호 등을 입력 2 이미지에 표시된 영문/숫자를 입력 3 체크박스를 선택 4 선택 그림 1-6 연락처 정보 입력 [4] 신용카드 정보 입력 결제에 사용할 신용카드 정보를 등록한다(그림 1-7 참조). 신용카드 연락처가 순서 [3]에 입력한 주소와 다를 때는 [새 주소를 입력하십시오.]를 선택하여 다른 주소를 설정할 수 있다. [5] 전화로 ID 확인 ID 확인을 위해 AWS에서 전화를 받고 PIN 번호를 입력한다. 라는 순서가 필요하다. 우 선, 받고 싶은 전화번호를 입력하고 [지금 전화]를 선택한다. 11

CHAPTER 01 Amazon EC2의 기본 조작 1 신용카드 번호 입력 주소가 다를 경우는 여기를 선택 2 선택 그림 1-7 신용카드 정보를 입력 1 [Korea, Republic of (+82)]를 선택 2 전화번호 입력 3 선택(선택하면 전화가 온다.) 그림 1-8 전화번호 입력 전화가 오면 이 번호를 전화기에 입력한다. 그림 1-9 PIN 번호를 전화기에 입력 12

1-2 AWS 계정을 생성하자 그렇게 하면 실제로 전화가 온다(그림 1-8 참조). 착신과 함께 화면에는 네 자리 PIN 번호 가 표시되는데, 전화기에 해당 PIN 번호를 입력하면 인증이 끝난다(그림 1-9 참조). 인증 이 끝나면 [계속]을 선택한다(그림 1-10 참조). 선택 그림 1-10 ID 확인 완료 [6] 확인 메일이 도착 AWS 계정 신청이 완료되었다(그림 1-11 참조). 조금 기다리면 AWS에서 메일이 도착한 다. 그러면 이제부터 AWS를 사용할 수 있게 된 것이다. 그림 1-11 AWS 계정 신청 완료 13

CHAPTER 01 Amazon EC2의 기본 조작 1-3 EC2 인스턴스를 가동하자 AWS 계정을 신청했다면 AWS 관리화면에 로그인하고, EC2 인스턴스를 생성하고 가동 시켜 보자. AWS Management Console에 로그인한다 AWS는 AWS Management Console 이라고 하는 관리화면에서 조작한다. AWS 사 이트인 http://aws.amazon.com/ko 를 열어 [내 계정/콘솔] [AWS Management Console]을 선택하자(그림 1-12 참조). 그러면 AWS 계정 로그인 화면이 보이고, 지금 생 성한 AWS 계정을 사용하여 로그인한다(그림 1-13 참조). 1 [내 계정/콘솔]을 선택 2 [AWS Management Console]을 선택 그림 1-12 AWS Management Console을 연다. 14

1-3 EC2 인스턴스를 가동하자 1 메일 주소 입력 2 패스워드 입력 3 선택하여 로그인 그림 1-13 AWS에 로그인 AWS Management Console의 홈 화면 은 그림 1-14와 같이 구성되어 있다. 좌우 두 부분으로 나누어져 있고, 좌측 Amazon Web Services 부분에 각종 서비스의 조작 메 뉴가 표시되어 있다. [홈으로] 버튼 AWS 각 서비스 메뉴 그림 1-14 AWS Management Console 홈 화면 15

CHAPTER 01 Amazon EC2의 기본 조작 EC2 인스턴스를 생성한다 AWS Management Console에 로그인해 EC 인스턴스를 생성하여 가상 서버를 사용해 보자. EC2 인스턴스 생성할 때 결정해야 하는 것 EC2 인스턴스를 만들기 전에 결정해둬야 할 것이 있다. 1 지역 위에서 설명을 한 것과 같이 AWS는 몇 개의 지점에 데이터 센터군을 가지고 있는데, 이 를 지역(Region) 이라고 한다. 어느 지역에 인스턴스를 만드냐에 따라 레이턴시 와 가 격 이 달라지는데, 로그인 직후에는 미국 서부 - 오리건 으로 되어 있다. 한국에서 서비스 를 한다면 아시아 퍼시픽 - 도쿄 를 선택하여 레이턴시를 줄일 수 있다. 2 인스턴스 타입 인스턴스 타입은 가상 서버의 사양이다(표 1-1 참조). CPU 성능은 ECU(EC2 Compute Unit) 이라는 독자적인 지표로 표시된다. 이것은 2007년도의 1.0GHz에서 1.2GHz의 Opteron(옵테론) 또는 Xeon(제온) 프로세스 CPU 성능에 속한다. 필요한 사양에 맞춰 여 러 가지 구성의 인스턴스를 만들 수 있다. Memo 표 1-1에 나와 있는 것들 이외에 다음과 같은 특별한 인스턴스도 있다. 클러스터 컴퓨트 인스턴스 클러스터 컴퓨팅을 위한 인스턴스. 10기가바이트 이더넷이 탑재되어 있다. 클러스터 GPU 인스턴스 GPU를 탑재한 인스턴스. NVIDIA Tesla Fermi M2050가 탑재되어 있다. 하이 I/O 인스턴스 SSD 기반의 스토리지로 구성된 인스턴스. 고속 I/O를 지원한다. Amazon EC2는 나중에 인스턴스 타입을 변경할 수 있다. 그래서 처음에는 마이크로 인 스턴스 로 충분하다. 16

1-3 EC2 인스턴스를 가동하자 AWS 신규 이용자는 마이크로 인스턴스를 이용 시작부터 1년간 무료(750시간/월)로 이용 할 수 있다. 이 책에서는 특별한 이유가 없다면 마이크로 인스턴스를 이용하여 많은 디자 인 패턴을 적용시켜 볼 것이다. 마이크로 인스턴스는 다른 인스턴스와 달리 부하에 따라 최대 2ECU까지 늘어나는(일시적 으로 능력을 자동으로 늘림) 성질이 있다. 이 성질은 평소 많은 처리를 하지 않지만 정기적 으로 부하가 발생 하는 경우에 적합하다. 표 1-1에서 로컬 인스턴스 스토어 라는 것은 EC2 내부에 존재하는 단발성 스토리지를 말 하는 것이다. 로컬 인스턴스 스토어는 EBS와 비교해 빠른 액세스가 가능한 반면, EC2 인 스턴스를 정지하면 저장된 데이터는 사라진다. 하지만 애플리케이션의 캐시로 활용하면 성능을 높일 수 있다. 인스턴스 타입 개요 메모리 CPU 로컬 인스턴스 스토어 마이크로 제일 작은 인스턴스. 로컬 인스턴 613MB 최대 2ECU(단기적 없음(EBS만) 인스턴스 스 스토어가 없다. 으로 늘어남) 스탠다드 인스턴스 CPU와 메모리의 균형을 맞춘 표준 인스턴스 1세대(M1)와 2세대(M3)가 있다. M3는 M1과 비교해 처리 성능이 높고, 엔코딩, 트레픽 양이 많 은 콘텐츠, memcached 등 CPU와 메모리의 높은 성능을 필요로 하는 애플리케이션에 적 합하다. M1 인스턴스 M1 스몰 인스턴스 1.7GB 1ECU 160GB M1 미디엄 인스턴스 3.75GB 2ECU 410GB M1 라지 인스턴스 7.5GB 4ECU 850GB M1엑스트라 라지 인스턴스 15GB 8ECU 1690GB M3 인스턴스 M3 엑스트라 라지 인스턴스 15GB 13ECU 없음(EBS만) M3 더블 엑스트라 라지 인스턴스 30GB 26ECU 없음(EBS만) 표 1-1 주요 인스턴스 타입 17

CHAPTER 01 Amazon EC2의 기본 조작 인스턴스 타입 개요 메모리 CPU 로컬 인스턴스 스토어 하이 메모리 인스턴스 CPU 성능보다 메모리 용량을 높인 인스턴스. 아래와 같이 세 종류가 있다. 하이 메모리 엑스트라 라지 인스턴스 17.1GB 6.5ECU 420GB 하이 메모리 더블 엑스트라 라지 인스턴스 하이 메모리 트리플 엑스트라 라지 인스턴스 34.2GB 13ECU 850GB 68.4GB 26ECU 1690GB 하이 CPU 인스턴스 메모리 용량보다 CPU 성능을 높은 인스턴스. 아래와 같이 두 종류가 있다. 하이 CPU 미디엄 인스턴스 1.7GB 5ECU 350GB 하이 CPU 엑스트라 라지 인스턴스 7GB 20ECU 1690GB 표 1-1 주요 인스턴스 타입(계속) 3 AMI EC2 인스턴스를 만들 때 AMI(Amazon Machine Image) 에서 만든다. Amazon Linux Red Hat Enterprise Linux SUSE Linux Enterprise Server Ubuntu Server Windows Server 2008 Windows Server 2012 등이 있어 어떤 타입을 사용할 것인 지 선택하는데, 이 책에서는 Amazon EC2용으로 만들어진 Amazon Linux AMI 를 사용한다. Amazon Linux AMI는 Red Hat Enterprise Linux와 바이너리 호환 OS로, AWS용 으로 만들어진 것이다. EC2 인스턴스를 가동하자 실제로 EC2 인스턴스를 만들어 보자. 다음 페이지의 순서대로 Amazon Linux AMI 64 비트 가 설치되어 있는 마이크로 인스턴스를 아시아 퍼시픽 - 도쿄 에 만든다. 18

1-3 EC2 인스턴스를 가동하자 [1] Amazon EC2 관리 메뉴를 연다 Amazon EC2 관리 메뉴를 연다. 몇 가지 방법이 있지만, 어떤 화면을 열어도 [Services] 메뉴에서 [All AWS Services] - [EC2]를 선택하면 Amazon EC2 관리 메뉴로 이동한 다(그림 1-15 참조). 1 [Services]를 선택 2 [All AWS Services]를 선택 3 [EC2]를 선택 그림 1-15 Amazon EC2 관리 메뉴를 연다. [2] 지역을 선택한다. 아시아 퍼시픽 - 도쿄 의 인스턴스를 관리하려고 하기 때문에 지역을 변경한다. 오른쪽 위에 있는 지역 선택 메뉴에서 [Asia Pacific(Tokyo)]로 변경한다(그림 1-16 참조). 1 지역 선택 메뉴를 선택 2 [Asia Pacific(Tokyo)]를 선택 그림 1-16 지역을 변경한다. 19

CHAPTER 01 Amazon EC2의 기본 조작 [3] 인스턴스를 가동한다 EC2 인스턴스를 가동한다. Amazon EC2 관리 메뉴의 [EC2 Dashboard]에 있는 [Launch Instance]를 선택한다(그림 1-17 참조). 1 [EC2 Dashboard]를 선택 2 [Launch Instance]를 선택 그림 1-17 EC2 인스턴스를 가동한다. [4] 마법사 종류를 선택 EC2 인스턴스를 가동함에 있어 어떤 마법사를 사용할 것인지 다음 중에서 선택한다. 1 Classic Wizard 기본 타입의 마법사를 이용한다. 2의 Quick Launch Wizard보다도 상세한 설정이 가능 하다. 2 Quick Launch Wizard 선택한 AMI 이미지별로 권장하는 설정이 적용되어 있어 빠르게 인스턴스를 가동할 수 있다. 3 AWS Marketplace AWS Marketplace에서 판매되고 있는 AMI를 구입하고 그 인스턴스를 가동한다. 여기서는 1의 Classic Wizard를 사용하도록 하겠다(그림 1-18 참조). 20

1-3 EC2 인스턴스를 가동하자 1 [Classic Wizard]를 선택 2 [Continue]를 선택 그림 1-18 Classic Wizard를 가동한다. Classic Wizard로 인스턴스를 설정한다 Classic Wizard가 가동되면 인스턴스를 설정한다. [1] AMI를 선택한다 먼저, AMI를 선택한다. 여기서는 [Quick Start] 탭에 있는 [Amazon Linux AMI]를 선 택한다. 32bit 와 64bit 가 있는데, 여기서는 64bit 를 선택한다(그림1-19 참조). Memo 별( ) 표시가 있는 것은 마이크로 인스턴스 를 사용해 가동했을 때 무료 이용 범위에 속하는 AMI를 나타낸다. 21

CHAPTER 01 Amazon EC2의 기본 조작 1 [Quick Start]를 선택 별표( )는 마이크로 인스턴스 타입에서 무료로 이용할 수 있는 AMI를 나타낸다. 3 [Select]를 선택 2 [64bit]를 선택 그림 1-19 Amazon Linux AMI 64bit를 선택한다. [2] 인스턴스 수와 종류, AZ를 선택한다 가동하는 인스턴스의 수 와 종류 를 선택한다(그림 1-20 참조). 1 1 을 입력 2 [Micro]를 선택 3 [Launch Instances]를 선택 4 [No Preference]를 선택 5 [Continue]를 선택 그림 1-20 인스턴스 수와 종류, AZ를 선택한다. 22

1-3 EC2 인스턴스를 가동하자 Number of Instances 인스턴스의 가동 수다. 한 대를 가동하기 때문에 1 이라고 입력한다. Instance Type 인스턴스의 종류다. 마이크로 인스턴스 로 가동하기 때문에 Micro (t1.micro, 613MiB) 를 선택한다. Launch Instances 인스턴스를 만들고 바로 가동할 것인지를 선택한다. 바로 가동하기 위해 Launch Instances 를 선택한다. Availability Zone 인스턴스를 배치시킬 AZ를 지정한다. 한 대의 인스턴스만 가동할 때는 인스턴스 간의 통 신이나 고가용성 등을 고려하지 않아도 되기 때문에 AZ를 지정하지 않아도 된다. 그래서 AZ를 지정하지 않는 No Preference 를 선택한다. 모든 설정이 끝났다면 [Continue]를 선택한다. 칼럼 고도의 설정 그림1-20에서는 다음과 같은 설정도 가능하다. Launch as an EBS-Optimized instance 옵션 EBS로의 네트워크 액세스를 고속화한다. 별도 요금이 발생한다. VPC로 가동 가상 클라우드 서비스 Amazon VPC 의 인스턴스로 가동한다. Spot instances 요청 수요와 공급에 맞춰 변동하는 스팟 가격 으로 EC2 인스턴스를 운용한다. 23

CHAPTER 01 Amazon EC2의 기본 조작 [3] 추가 옵션 설정 추가 옵션 설정을 한다. 각 항목의 의미는 표 1-2와 같은데, 대부분은 기본 설정으로도 문 제가 없기 때문에 그대로 [Continue]를 선택한다(그림 1-21 참조). 항목 의미 Kernel ID RAM Disk ID 커널 ID를 지정한다. 특정한 커널을 이용할 때 선택할 수 있다. RAM 디스크 ID를 지정한다. 항상 같은 RAM 디스크를 사용하고 싶을 경우 지 정한다. Monirotring [Enable CloudWatch detailed monitoring for this instance]를 체크하면 1 분 간격의 모니터링 기능을 사용할 수 있다(유료). 체크를 하지 않아도 무료로 5분 간격의 모니터링 기능을 사용할 수 있다. User Data Termination Protection Shutdown Behavior IAM Role 이 인스턴스에 설정하려는 임의의 데이터. AWS를 조작하는 API에서 제어하는 값이며, 관리 자동화 등을 구현할 때 사용할 수 있다. 체크를 하게 되면 서버를 종료할 수 없으므로, 실수로 종료하지 않도록 하기 위 해 체크해두면 좋다. OS 내부에서 셧다운 조작(리눅스의 경우는 /sbin/shutdown -h)을 했을 때 EC2 인스턴스의 동작을 지정한다. 기본은 Stop. 이 상태에서는 인스턴스가 정지된 상태로 관리화면에서 다시 가동할 수 있다. Terminate 로 변경하면 셧 다운했을 때 인스턴스가 종료되고(Terminate) 삭제된다. AWS에는 누가 어떤 조작이 가능한지 라는 접속 제어를 설정하는 IAM 기 능이 있다. 이 인스턴스에 대해 IAM의 룰을 적용하고 싶을 때 해당 룰을 지정 한다. 표 1-2 추가 옵션 24

1-3 EC2 인스턴스를 가동하자 [Continue]를 선택 그림 1-21 추가 옵션 설정 [4] 스토리지 디바이스 설정 다음은 스토리지 디바이스(하드 디스크를 말함)를 설정한다. 기본으로, root 디바이스로 8기 가바이트 EBS가 할당되어 있는데(그림1-22 참조), 여기서는 최소한의 인스턴스를 가동하 는 것이 목적이기 때문에 그대로 [Continue]를 선택한다. 덧붙여서, 만약 용량을 변경하 거나 추가 스토리지가 필요할 때는 [Edit]를 선택하여 변경할 수 있다. 25

CHAPTER 01 Amazon EC2의 기본 조작 기본으로 8기가바이트 스토리지가 할당된다. [Continue]를 선택 그림 1-22 스토리지 디바이스 설정 칼럼 Provisioned IOPS 볼륨 Provisioned IOPS 볼륨은 디스크 액세스에 필요한 1초간의 I/O 액세스 수 (IOPS: Input/Output Operations Per Second)를 명시적으로 지정할 수 있는 볼륨으로, 1IOPS에 대한 종량제 방식으로 필요한 성능을 지정할 수 있다. IOPS는 조금 이해하기 어려울 수 있으나, 일반적으로 7200RPM 하드 디스크는 약 75~100 정도, 15000RPM 하드 디스크는 약 175~210 정도의 성능이다. EC2의 Provisioned IOPS 볼륨에는 최대 4000 IOPS까지 지정할 수 있기 때문에 빠른 디스크 액 세스를 기대할 수 있다. (그래도 부족하다면 RAID0으로 구성하면 성능을 높이는 방법도 있다.) Provisioned IOPS 볼륨을 사용하려면 Edit 를 선택하고 [Volume Type]으로 변경한다(그림 1-A 참조). 또, 기본 표준 볼륨은 평균적으로 100 IOPS 정도를 보장하고 있다. I/O 액세스가 많을 경우 에는 일시적으로 수백 IOPS까지 높아진다. 26

1-3 EC2 인스턴스를 가동하자 [Provisioned IOPS]를 선택 필요한 IOPS 값을 지정 그림 1-A Provisioned IPOS 볼륨을 이용한다. [5] 이름 설정 인스턴스에 이름을 설정한다. 이름은 태그 로 구성되는데, 기본은 인스턴스명을 가르키는 Name 이라는 키가 설정되어 있다. 이 항목에 demo 라고 입력한다(그림 1-23 참조). Memo [Add another Tag]를 선택하면 필요에 따라 임의의 태그(예를 들어, Team 이나 Project 등) 을 최대 10개까지 설정할 수 있다. demo라고 입력 그림 1-23 이름을 입력한다. 27

CHAPTER 01 Amazon EC2의 기본 조작 EC2에 접속할 키 페어를 만든다 방금 설명을 했지만, EC2 인스턴스는 SSH로 로그인하여 조작하게 된다. 그때 패스워드 화 통신에 사용할 키 페어가 필요하다. 처음 EC2 인스턴스를 만들 때는 [Create a new Key Pair]를 선택하여 키 페어를 만든다(그림 1-24 참조). 1 [Create a new Key Pair]를 선택 2 demo-key 라고 입력 3 demo-key.pem 이라는 파일로 다운로드하여 저장한다. 그림 1-24 키 페어를 생성한다. [1] [Enter a name for your key pair]에 적당한 이름을 입력 [2] [Create & Download your Key Pair]를 선택 그렇게 하면 비밀키와 공개키가 만들어지고 키 페어로 다운로드가 가능하다. 키 페어의 이 름은 어떤 명칭이든 상관없다. 여기서는 demo-key 라는 명칭으로 키 페어를 만들자. 다운로드 한 키 페어를 잃어버리면 EC2 인스턴스에 접속할 수 없기 때문에 주의하자. 다 운로드를 완료하면 자동으로 다음 페이지로 넘어간다. 28

1-3 EC2 인스턴스를 가동하자 Memo EC2 인스턴스를 한 번 이상 만들고 그 인스턴스에 사용했던 키 페어가 있을 때, 그 키 페어 를 사용할 수 있다. 기존 키 페어를 사용하려면 [Choose from your existing Key Pairs]를 선 택한다. 보안 그룹을 구성한다 다음은 보안 그룹을 구성한다. 보안 그룹이란, 각 인스턴스에 설치되는 인바운드 방화벽이 다. TCP/IP의 포트 번호나 IP 주소에 대해 어떤 통신을 허가할 것인가 를 설정한다. 기본 으로 quick-start-1 이라는 보안 그룹이 설정되어 있고, 이 보안 그룹은 포트 22(SSH)로 의 통신만 허가되어 있다(그림 1-25 참조). quick-start-1 이라는 보안 그룹이 설정되어 있다. 포트 22(SSH) 접속 허가가 설정되어 있다. 그림 1-25 기본 보안 그룹 상태 보안 그룹으로 통신을 명시적으로 허가하지 않는 이상, 인스턴스에 어떤 접속도 불가능하다. 결국, 이 상태에서 인스턴스를 만들게 되면 포트 22 (SSH) 이외에는 통신이 불가능하다. 29

CHAPTER 01 Amazon EC2의 기본 조작 이 장의 목적은 웹 서버를 가동하는 것이다. 그래서 웹 서버 통신에 필요한 HTTP(포 트 80) 를 허가하는 설정을 하도록 한다. [Create a new rule]에서 [HTTP]를 선택하고 [Add Rule] 버튼을 선택한다(그림 1-26 참조). 그렇게 하면 HTTP 통신 허가가 설정된다. HTTP 통신 허가 설정이 완료되면 [Continue]를 선택하고 다음 화면으로 넘어간다. Memo 패스워드화된 HTTP 통신(HTTPS)도 허용하고 싶을 때에는 [HTTPS]도 추가한다. 또, [Custom TCP rule]이나 [Custom UDP rule], [Custom ICMP rule]을 선택하면 임의의 포트나 프로토콜 단위의 접속 허가를 설정할 수 있다. Memo 기본으로 ICMP 프로토콜은 허가되어 있지 않아 Ping을 사용할 수 없다. 만약 사용을 원한다 면 [Custom ICMP rule]을 선택하고 [Echo Request]를 허가하면 된다. Memo 접속 장소를 제한할 경우, 특정 IP 주소(또는 서브넷을 지정한 IP 주소 범위) 로만 지정하는 것이 아니고 통신을 허가할 보안 그룹 을 지정할 수 있다. 이 지정 방법은 자신이 관리하는 EC2 간 통신을 설정할 때 편리하다. 구체적인 설정 예제는 5장에서 설명하겠다. 보안 그룹은 EC2 인스턴스를 가동할 때 결정하는 것이다. 나중에 다른 보안 그룹에 포함 되도록 구성을 변경할 수 없다. 예를 들어, 현재 quick-start-1 에 속해 있는 EC2 인스 턴스를 가동하면 나중에 다른 보안 그룹에 포함되도록 변경할 수가 없지만, 보안 그룹 자 체의 설정을 변경할 수 있다. quick-start-1 에 대해 통신을 허가/거부 설정(포트 번호나 IP 주소)을 변경할 수 있다. Memo 나중에 보안 그룹 설정 변경은 [Navigation] 메뉴의 [Security Groups]에서 할 수 있다. 30

1-3 EC2 인스턴스를 가동하자 1 [HTTP]를 선택 2 [Add Rule]을 선택 HTTP 룰이 추가된다. 3 [Continue]를 선택 그림 1-26 HTTP 통신이 되도록 설정 31

CHAPTER 01 Amazon EC2의 기본 조작 EC2 인스턴스를 가동한다 이상으로 인스턴스를 가동할 준비가 완료되었다. 확인 화면에서 [Launch]를 선택하면 EC2 인스턴스가 가동된다(그림 1-27 참조). [Launch]를 선택 그림 1-27 EC2 인스턴스를 가동한다. 32

1-4 EC2 인스턴스를 조작하자 1-4 EC2 인스턴스를 조작하자 EC2 인스턴스를 가동한 후 그 인스턴스 상태를 확인하자. EC2 인스턴스를 확인한다 EC2 인스턴스 상태는 EC2 관리 메뉴의 [Instances]로 확인할 수 있다(그림 1-28 참조). 인 스턴스가 실행 중일 때는 [State]가 running이 된다. EC2 가동에는 어느 정도 시간이 걸린다. 만약 [pending]이라고 표시되면 가동 처리 중 에 있음을 나타내는데, 그때는 잠시 기다린 후 [Refresh] 버튼을 선택하여 상태 표시를 갱 신한다. 인스턴스를 선택하게 되면 그 아래에 자세한 설명이 표시된다. [INSTANCES]-[Instances]를 선택 만든 EC2 인스턴스 리스트가 나타난다. 그림 1-28 인스턴스 리스트와 상세 IP 주소를 확인한다 EC2 인스턴스에 설정되어 있는 IP 주소는 [Description] 탭으로 확인할 수 있다(그림 1-29 참조). EC2에 할당 가능한 IP 주소와 호스트명은 모두 세 종류가 있다. 33

CHAPTER 01 Amazon EC2의 기본 조작 Public DNS(Elastic IP가 유효할 때 ElasticIP가 표시된다.) 2 Elastic IP 1 Public DNS 3 Private DNS 및 Private IPs 그림 1-29 IP 주소를 확인한다. 1 Public DNS 공인 호스트명이며 인터넷에서 접속할 수 있다. 기본으로는 동적인 호스트명이 할당되어 있고, 인스턴스를 정지 후 가동하면 값이 변경된다. 2 Elastic IP Elastic IP를 활성화할 때에만 할당되는 고정 IP 주소다. Elastic IP를 활성화했을 때는 1 의 Public DNS는 그 Elastic IP를 역방향 조회한 것에 고정된다. 자세한 내용은 1-6 고정 IP 주소를 할당하는 Elastic IP Address 에서 설명한다. 3 Private DNS(Private IPs) 사설 호스트명 및 IP 주소다. 같은 지역 내에서 다른 EC2 인스턴스와 통신할 때 사용하며, 인터넷에서 접속할 수 없다. Private DNS(Private IPs)를 사용해 통신할 때 같은 AZ 안의 통신은 비용이 발생하지 않 는다. 34

1-4 EC2 인스턴스를 조작하자 SSH 등으로 접속할 때에는 1의 호스트명이나 2의 IP 주소를 사용한다. Memo 같은 지역 내에서 통신할 때 3의 Private DNS(Private IPs)를 사용하는 것이 성능 면에서도 비용면에서도 좋다. 1이나 2의 공인 IP 주소를 사용한 통신은 인터넷을 경유하기 때문에 3 의 사설 IP 주소를 사용한 통신과 비교해 지연이 많아진다. EC2 인스턴스를 정지한다 EC2는 가동하고 있는 시간만 과금된다. 사용하지 않을 때는 정지해둔다. 가동과 정지 정지할 때는 EC2 인스턴스명을 오른쪽 클릭하여 [Stop]을 선택한다. 그렇게 하면 확인 메 시지가 표시된 후에 정지 동작에 들어간다(그림 1-30 참조). 1 정지할 EC2 인스턴스명을 오른쪽 클릭 2 [Stop]을 선택 그림 1-30 EC2를 정지한다. 35

CHAPTER 01 Amazon EC2의 기본 조작 EC2를 다시 시작할 때는 오른쪽 클릭하여 [Start]를 선택한다. 그렇게 하면 pending 상 태가 되고 잠시 기다리면 running 상태가 된다. Memo Elastic IP를 할당한 EC2 인스턴스를 정지해두면 Elastic IP에 대해 과금이 되기 때문에 주의해 야 한다. 자세한 내용은 1-6 고정 IP 주소를 할당하는 Elastic IP Address 를 참조한다. EC2 인스턴스의 삭제 EC2 인스턴스를 정지해도 보유하고 있는 스토리지에 대해서는 비용이 발생한다. 필요 없 는 EC2 인스턴스는 삭제하자. 그러기 위한 조작이 Terminate 다. EC2 인스턴스명을 오 른쪽 클릭하고 [Terminate]를 선택하면 EC2 인스턴스는 삭제된다. 삭제된 EC2 인스턴스는 다시 가동할 수 없으며, 삭제한 EC2 인스턴스는 잠시 기다리면 EC2 인스턴스 리스트에서 없어진다. 칼럼 EBS 볼륨이 삭제되지 않도록 하자 기본으로, EC2 인스턴스를 삭제하면 그 EC2 인스턴스에서 이용하던 EBS 볼륨도 삭제된다. 그러나 EBS 볼륨을 설정할 때 [Delete on Termination] 체크를 해제해두면 EC2 인스턴스가 삭제 되어도 EBS를 그대로 보관할 수 있다(그림 1-B 참조). 체크를 해제하면 EC2 인스턴스를 삭제 하여도 이 EBS를 보관할 수 있다. 그림 1-B EC2 인스턴스가 Terminate 되어도 EBS 볼륨을 보관하도록 한다. 36

1-5 SSH로 로그인하여 Apache를 설치하자 1-5 SSH로 로그인하여 Apache를 설치하자 Amazon Linux AMI 에서 가동한 EC2 인스턴스에는 SSH 데몬(sshd) 이 실행되어 있 다. SSH를 사용해 로그인하고 웹 서버 소프트웨어인 Apache 를 설치하자. SSH로 접속한다 SSH로 접속하기 위해 SSH 클라이언트를 준비하자. Windows에서는 다음과 같은 소프 트웨어를 사용할 수 있다. Putty(http://www.chiark.greenend.org.uk/~sgtatham/putty/) Tera Term(http://sourceforge.jp/projects/ttssh2/) 이 책에서는 SSH 접속용으로 Tera Term을 사용하고 있다. Memo Mac의 경우는 표준 SSH 명령어를 사용할 수 있다. 또한, 브라우저에 Java를 설치하면 브라 우저에서 SSH 접속이 가능하다. (http://docs.amazonwebservices.com/awsec2/latest/get tingstartedguide/connecttoinstancelinux.html#connect-frombrowser_prereqs) 공인 IP 주소 확인 인터넷에서 EC2 인스턴스에 접속하려면 공인 IP 주소를 사용해야 한다. 때문에 인스턴스 설정 화면에서 [Public DNS]을 확인해둔다(그림 1-29 1의 값). Public DNS의 값은 EC2 인스턴스를 정지한 후에 다시 시작하면 바뀌어 버리기 때문에 SSH 접속하기 직전에 확인한다. 37

CHAPTER 01 Amazon EC2의 기본 조작 Memo Elastic IP를 사용하고 있을 때는 Elastic IP 주소로 SSH 접속이 가능하다(1-6 고정 IP 주소를 할당하는 Elastic IP Address 참조) SSH로 로그인 그럼 확인한 Public DNS명의 호스트에 SSH로 로그인하자. Tera Term은 [Host]에 그 림 1-29의 1에서 확인한 DNS를 입력(복사 & 붙여넣기)하여 접속한다(그림 1-31 참조). 그림 1-29의 1에서 표시된 호스트명을 입력 그림 1-31 EC2 인스턴스에 SSH 로그인 [Continue]를 선택 그림 1-32 보안 경고 처음 접속할 때는 정확한 키가 맞는지 확인하기 때문에 보안 경고가 표시된다(그림 1-32 참 38

1-5 SSH로 로그인하여 Apache를 설치하자 조). [Continue]를 선택한다(EC2 인스턴스 IP 주소가 바뀐 경우에도 이 경고가 표시된다). 다음은 사용자명과 비밀키를 선택하여 로그인한다. Amazon Linux AMI 는 ec2-user 라는 사용자가 설정되어 있어 사용자명에는 ec2-user 라고 입력한다. 1 ec2-user 라고 입력 2 [Use RAS/DSA/ECDSA Key log in]을 선택 3 [Private key file] 버튼을 선택 7 [OK]를 선택 5 다운로드한 키 페어 파일을 선택 4 [all(*.*)]을 선택 6 [열기]를 선택 그림 1-33 사용자명을 입력하고 키 페어 파일을 지정한다. 그리고 [Use RAS/DSA/ECDSA Key log in]을 선택하고서 EC2 인스턴스를 가동할 때 만든 키 페어 파일(demo-key.pem)을 선택한다. AWS Management Console에서 다운 로드 가능한 키 페어 파일은 *.pem 확장자다. Tera Term에서는 키 페어 파일을 열 때 [all(*.*)]을 선택하지 않으면 이 확장자 파일은 표시되지 않기 때문에 주의해야 한다(그림 1-33 참조). 39

CHAPTER 01 Amazon EC2의 기본 조작 이렇게 하면 그림 1-34와 같이 SSH 로그인이 가능해진다. Apache를 설치해보자 SSH로 로그인했다면 명령어를 입력하여 사용자를 조작할 수 있다. 그림 1-34 SSH로 로그인한 화면 여기서는 웹 서버 소프트웨어 Apache를 설치한다. yum 명령어로 Apache를 설치한다 Amazon Linux AMI에서 관리자 권한으로 yum 명령어를 실행하면 소프트웨어 패키지 를 설치하거나 삭제할 수 있다. [설치] yum install 패키지명 [제거] yum uninstall 패키지명 40

1-5 SSH로 로그인하여 Apache를 설치하자 [갱신(업데이트)] yum update 패키지명 Apache의 패키지는 httpd 다. 그래서 다음의 명령어로 Apache를 설치할 수 있는데, 여 기서 sudo 는 관리자 권한으로 실행하는 것을 의미한다. [ec2-user@ip Address~]$ sudo yum install httpd Memo 앞부분의 [ec2-user@ip Address~]$ 는 명령 프롬프트다. 실제 입력하는 것은 sudo 이후 부분 이다. 아래부터는 알기 쉽게 $ 만 표시하겠다. 이 명령어를 입력하면 다음과 같이 확인 메시지가 표시된다. y Enter 를 치면 Apache 를 구성하는 패키지 전체가 다운로드를 시작하고 설치된다. Memo sudo yum -y install httpd 과 같이 -y 옵션을 붙이면 확인 메시지 없이 설치할 수 있다. Loaded plugins: priorities, security, update-motd, upgrade-helper amzn-main 2.1 kb 00:00 amzn-updates 2.3 kb 00:00 Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:2.2.24-2.31.amzn1 will be installed --> Processing Dependency: httpd-tools = 2.2.24-2.31.amzn1 for package: httpd-2.2.24-2.31.amzn1.x86_64 --> Processing Dependency: system-logos for package: httpd-2.2.24-2.31.amzn1.x86_64 --> Processing Dependency: apr-util-ldap for package: httpd-2.2.24-2.31.amzn1.x86_64 41

CHAPTER 01 Amazon EC2의 기본 조작 --> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.24-2.31.amzn1.x86_64 --> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.24-2.31.amzn1.x86_64 --> Running transaction check ---> Package apr.x86_64 0:1.4.6-1.10.amzn1 will be installed ---> Package apr-util.x86_64 0:1.4.1-4.14.amzn1 will be installed ---> Package apr-util-ldap.x86_64 0:1.4.1-4.14.amzn1 will be installed ---> Package generic-logos.noarch 0:17.0.0-2.5.amzn1 will be installed ---> Package httpd-tools.x86_64 0:2.2.24-2.31.amzn1 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================= Installing: httpd x86_64 2.2.24-2.31.amzn1 amzn-updates 1.2 M Installing for dependencies: apr x86_64 1.4.6-1.10.amzn1 amzn-main 110 k apr-util x86_64 1.4.1-4.14.amzn1 amzn-main 87 k apr-util-ldap x86_64 1.4.1-4.14.amzn1 amzn-main 17 k generic-logos noarch 17.0.0-2.5.amzn1 amzn-main 589 k httpd-tools x86_64 2.2.24-2.31.amzn1 amzn-updates 80 k Transaction Summary ================================================================================ Install 6 Package(s) Total download size: 2.1 M Installed size: 4.2 M Is this ok [y/n]: y y 라고 입력 Memo Amazon Linux에서 root 사용자는 설정되어 있지 않다. 관리자 권한으로 명령어를 실행할 때 는 sudo 명령어 를 사용한다. 만약 root 사용자로 바꿔 조작할 때에는 sudo -i 와 같이 -i 옵 션을 사용하면 된다. 42

1-5 SSH로 로그인하여 Apache를 설치하자 Apache를 가동한다 그럼, 설치한 Apache를 가동시켜 보자. 다음과 같이 입력한다. $ sudo service httpd start 가동 후, 웹브라우저를 사용해 접속이 정말 가능한지를 확인한다. 웹브라우저로 EC2의 Public DNS 주소를 열면 Apache의 초기 페이지가 표시된다(그림 1-35 참조). Memo Apache를 정지하려면 sudo service httpd stop 이라고 입력한다. 초기 페이지는 /var/www/html 디렉터리에 저장되어 있다. 이 디렉터리에 임의의 HTML 파일을 저장해두면 그 파일을 브라우저에서 참조할 수 있다. 또한, Apache 설정 파일은 /etc/httpd 디렉터리에 존재하며, 로그 파일은 /var/log/httpd 디렉터리에 저장 된다. 재가동 시 Apache가 자동 시작되도록 하자 기본으로는 EC2 인스턴스를 재가동했을 때 Apache가 자동으로 시작하지 않는다. 자동 시작 설정을 위해서는 다음 명령어를 입력한다. $ sudo chkconfig httpd on 그렇게 하면 EC2 인스턴스를 재가동했을 때 Apache가 자동으로 시작된다. Memo 자동 시작을 해제하려면 sudo chkconfig httpd off 를 입력한다. 또, sudo chkconfig --list 라고 입력하면 현재 설정되어 있는 자동 시작 상태를 확인할 수 있다. 43

CHAPTER 01 Amazon EC2의 기본 조작 EC2 인스턴스 Public DNS 주소에 접속한다. 그림 1-35 Apache의 초기 페이지가 표시된다. 44

1-6 고정 IP 주소를 할당하는 Elastic IP Address 1-6 고정 IP 주소를 할당하는 Elastic IP Address 그러나 기본으로 할당되는 것은 EC2 인스턴스를 정지 후에 가동하면 변경되는 동적 IP 주소 다. 동적 IP 주소만으로 서버를 사용하기에는 불편함이 있다. 때문에 고정 IP 주소를 할당할 수 있는 Elastic IP Address 라는 기능을 사용한다. 가동 중의 EC2 인스턴스 한 대에 하나의 Elastic IP 주소를 무료로 사용할 수 있다. 그러나 Elastic IP 주소만을 할당받아 EC2 인스턴스에 설정하지 않을 경우나 Elastic IP 주소를 설정한 EC2 인스턴스가 정지되어 있는 경우에는 Elastic IP 주소에 대해 비용이 발생한다. 고정 IP 주소를 할당받자 먼저, 이용할 고정 IP 주소를 할당받는다. 현재 할당받은 고정 IP 주소 리스트는 [Elastic IPs] 메뉴에서 확인할 수 있다. 초기 상태에는 IP 주소가 전혀 등록되어 있지 않기 때문에 (그림 1-36 참조) 고정 IP 주소를 할당받기 위해서는 [Allocate New Address]를 선택하 고 [Yes. Allocate]를 선택하여 IP 주소를 할당받는다(그림 1-37 참조). 이것으로 고정 IP 주소가 이용 가능한 상태가 되었다. 2 [Allocate New Address]를 선택 1 [Elastic IPs]를 선택 그림 1-36 [Elastic IPs]에서 IP 주소를 할당받는다. 45

CHAPTER 01 Amazon EC2의 기본 조작 1 [Yes, Allocate]를 선택 그림 1-37 IP 주소를 할당받는다. 2 [Associate Address]를 선택 1 설정할 고정 IP 주소에 체크를 한다. 3 EC2 인스턴스명을 선택 4 [Yes, Associate]를 선택 EC2 인스턴스에 IP 주소가 설정되었다. 그림 1-38 IP 주소를 EC2 인스턴스에 설정한다. 46

1-6 고정 IP 주소를 할당하는 Elastic IP Address 고정 IP 주소가 설정되었다. 그림 1-39 EC2 인스턴스 속성 화면에서 IP 주소를 확인한다. Memo 고정 IP 주소는 최대 5개까지 할당받을 수 있는데, 별도로 신청하면 그 이상으로 IP 주소를 할 당받을 수도 있다. 그러나 EC2 인스턴스에 설정되어 있지 않은 IP 주소는 과금 대상이 된다. 그러므로 필요 이상의 IP 주소를 할당받지 않도록 하자. EC2 인스턴스에 설정하자 IP 주소를 할당받았다면 EC2 인스턴스에 설정해보자. EC2 인스턴스에 설정하지 않은 IP 주소는 과금이 되기 때문에 가능하면 빨리 설정 작업을 진행해야 한다. [Associate Address]를 선택하자(그림 1-38 참조). Memo 가동 중인 EC2 인스턴스에만 IP 주소를 설정할 수 있고, 정지 중인 인스턴스에는 설정할 수 없다. Memo 설정을 해제하려면 [Disallocate Address]를 선택한다. 47

CHAPTER 01 Amazon EC2의 기본 조작 EC2 인스턴스에 설정하면 속성 화면에서도 고정 IP 주소를 확인할 수 있다(그림 1-39 참조). 또한, 고정 IP 주소를 설정하면 그 IP 주소로 SSH 접속이나 웹브라우저에서 사 용할 수도 있다. 48

1-7 요약 1-7 요약 이 장에서는 EC2 인스턴스의 기본적인 조작에 대해 설명했다. 1 지역과 AZ 지역은 데이터 센터군을 말하는데, 오리건주 나 도쿄 등 세계 9곳에 지역이 존재한다. AZ는 각각의 지역을 다시 나눈 장소로, 네트워크 설비 전력 설비 내각 설비 가 독립되어 있다. 2 EC2 인스턴스와 EBS EC2 인스턴스는 디스크 볼륨으로 EBS를 사용한다. 3 AMI에서 EC2 인스턴스를 만든다 EC2 인스턴스를 만들 때 그 기반이 되는 AMI를 선택한다. AMI라는 것은 OS가 설치되 어 초기 설정이 끝나 필요한 패키지가 설치되어 있는 가상 서버 이미지다. 4 보안 그룹 설정 EC2 인스턴스에는 인바운드 방화벽 기능을 하는 보안 그룹을 지정한다. 보안 그룹에는 TCP/IP 포트 번호나 IP 주소 단위로 통신의 허용/차단을 설정한다. 5 공인 IP 주소와 사설 IP 주소 EC2 인스턴스를 가동하면 공인 IP 주소와 사설 IP 주소가 할당된다. 두 IP 주소 모두 인 스턴스를 정지하고서 다시 가동하면 변경되는 동적 IP 주소다(재가동 시에는 변경되지 않는 다). 사설 IP 주소는 같은 지역 내의 통신에만 사용된다. 6 SSH로의 관리 EC2 인스턴스를 조작하기 위해 SSH로 로그인을 해야 한다. 로그인할 때에는 EC2 인스 턴스를 만들었을 때 지정한 키 페어가 필요하다. 49

CHAPTER 01 Amazon EC2의 기본 조작 7 Elastic IP Elastic IP를 사용하면 EC2 인스턴스에 대해 고정 공인 IP 주소를 설정할 수 있게 된다. 다음 장에서는 EC2 인스턴스의 기본적인 디자인 패턴을 소개한다. 50