웹 프로그래머에게 놀이터가 될 수 있는 웹서버 구축은 그다지 큰 비용을 요구하지 않습니다.
웹 호스팅 서비스 업체도 많고 비용도 최소 월 500원이면 족합니다.
그러나 서버 프로그래머가 개인적으로 서버를 구축하는 것은 얘기가 다릅니다. 표준화 되지 않은 자신만의 프로토콜로 서버의 CPU를 점유할 수 있는 권한을 호스팅 업체들은 섣불리 내놓지 않습니다.
아마존, KT, MS 등 클라우드 가상 서버를 제공하는 업체들이 늘어나고, 서버 또한 부동산 시장 동향과 함께 소유에서 사용으로 변모하고 있습니다.
그동안 생각만하고 실행해 보지 않았던 아마존 EC2 서비스 구축을 해보고 과정을 적어보았습니다. 다른 자료들이 많은데 스크린 샷 등이 예전 것이 많네요. 최근 샷으로 올립니다.
아마존 웹서비스?
한마디로 가상 서버를 대여해 주는 서비스 입니다.
웹호스팅과 같이 웹서버에 국한된 서비스도 있으나, 서버 자체를 대여하므로 웹서버든 게임서버든 프로그램 개발이든 제한없이 서비스를 받을 수 있습니다.
돈은 얼마나 드나요?
처음 가입하면 1년간 월 750시간 무료 사용할 수 있습니다.
(인스턴스가 실행 중인 시간, 즉 서비스가 돌아가는 시간이 750시간 입니다. 31일x24 = 744시간 이므로 1년간 무료라고 보면됩니다.)
1년 동안 마음껏 가지고 놀아보아요.
1년 이 후에는 시간 단위로 과금이 됩니다. 웹호스팅 최저 비용과 비교하면
웹 호스팅 : 월 1,000원
EC2 최저서비스 : 시간당 0.027$ (도쿄 서버 기준) -> 월 19.44$ (21,900원)
위 금액은 최소 비용입니다. 웹호스팅 처럼 EC2도 서버 사양, 계약 형태(정액제)에 따라 가격이 천차만별입니다.
구축 절차
아래 순서로 진행합니다.
2. 인스턴스 생성하기
3. 인스턴스 포트 설정
4. 인스턴스 IP 할당
5. 인스턴스 접속하기
6. 인스턴스 셧다운
1. 가입하기
아래 사이트로 이동해서 “무료로 시작” 버튼을 누르세요.
가입 화면 입니다. 이메일 주소를 입력하고 신규 가입자에 체크하고 가입 버튼을 누릅니다.
상세한 개인 정보를 입력하는 란입니다. 보안문자도 입력한 후 계속하기 버튼을 누릅니다.
상세 정보 입력한 후 카드 번호입력하는 단계입니다.
캡처가 안 되었네요. ㅜㅜ;
다음은 전화번호 인증하는 단계입니다.
국가코드 한국(+82)으로 설정 후 전화번호를 입력하세요. 전화번호 첫 0은 제외하고 입력합니다.
그리고, “지금 전화” 버튼을 누릅니다.
전화가 왔습니다. 한국어 ARS로 진행됩니다.
전화기로 화면에 보이는 PIN코드를 입력합니다.
인증이 제대로 되었으면 “계속” 버튼을 누를 수 있습니다.
가입이 거의 완료 되었습니다.
2. 인스턴스 생성하기
다시 접속해 보면 아래와 같이 자격이 있다는 메시지가 나옵니다. 보통 몇 분안에 가입처리가 되는데 간혹 문제가 있는 경우 더 걸리기도 한다고 하네요.
좌측 메뉴에서 AWS… Management 를 누릅니다.
EC2 서비스에서는 여러개의 인스턴스 (가상 서버)를 올릴 수 있습니다.
우측 상단에 지역 선택이 가능한데 저는 가장 가까운 도쿄로 설정했습니다.
그리고, 데쉬보드 중간에 “Launch Instance”를 누릅니다.
서버 옵션 구성 페이지 입니다.
맨 위에 서버 제목 입력 -> Create New 선택 -> 키 파일 이름 입력 합니다.
키 파일은 이후 SFTP, SSH 접속 시 필요하므로 Download 버튼을 눌러 저장해 둡니다.
런처 환경을 선택하라고 하는데 리눅스, 윈도우 서버들이 나옵니다. 요즘 많이 쓰이는 우분투 64비트로 선택했습니다.
참고로 윈도우 서버는 리눅스 서버보다 시간당 비용이 약간 더 높습니다. (라이선스 비용일 듯…)
목록 오른쪽에 노란 별표가 있는 서버만 Free tier를 지원합니다.
내용을 한번 더 확인하고 런처 버튼을 누릅니다.
런처가 생성되었습니다. 이제 하드웨어와 OS가 준비되었다고 보면 됩니다.
3. 인스턴스 포트 설정
좌측 인스턴스 메뉴로 들어가면 방금 생성한 인스턴스가 보입니다.
State 부분에 running라고 나옵니다. 서버가 부팅되어있다는 것이고 과금이 진행 중입니다. (750시간은 무료!!^^)
이제 포트 구성을 해봅니다. 기본이 되는 SFTP, SSH, MySQL, HTTP 포트를 구성해 보겠습니다.
좌측 메뉴에서 Secure Groups 선택 -> default 선택-> 하단 Inbound 탭 클릭 하세요.
“Create a new rule” 항목에 추가하고 싶은 표준 포트를 선택하고 “Add Rule”를 누르세요.
4. 인스턴스 IP 할당
다음은 IP설정 단계 입니다.
좌측에 Elastic IPs 선택 -> Allocate New Address 클릭하세요.
셋팅한 인스턴스틀 선택하고 “Yes”를 누르세요.
맨 우측 Public DNS 항목에 아이피 처럼 보이는 숫자가 나옵니다.
5. 인스턴스 접속하기
보안을 위해 FTP -> SFTP, telnet -> SSH를 사용합니다.
EC2에서는 ID / PW 가 아닌 키 파일 접속만 허용하고 있습니다.
접속 프로그램에 따라 인증서 변환이 필요할 수 있습니다.
저는 XShell을 주로 사용하여 이 유틸을 기준으로 적습니다.
XShell에서 사용할 인증서를 Putty Key Generator로 변환합니다.
# 키 변환 하기
(1) 프로그램은 아래에서 다운로드 받으세요.
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
(2) Import Key 메뉴 클릭 후 인스턴스 생성 시 다운로드 받은 키를 넣습니다.
(3) Export OpenSSH key 메뉴를 클릭해서 인증서를 저장합니다.
XShell 에서 접속 정보를 추가하고 로그인 설정에서 아이디는 “ubuntu”를 넣고 위에서 저장한 키를 넣어줍니다.
인증서에 문제가 없으면 아래와같이 접속됩니다.
FTP 프로그램에서는 SFTP 프로토콜로 접속해야 하고 마찬가지로 인증서로 접속합니다.
# 참고 – MAC에서 SSH 접속하기
맥에서는 터미털 실행 후 아래 명령어를 입력하세요.
그런데, 그냥 실행하면 아래와 같은 경고가 뜹니다.
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@
이 경우 아래 명령어로 키 파일 권한을 올려주세요.
6. 인스턴스 셧다운
과금되는 서비스이고, 무료 기간도 한정되어있으니 유료 사용 중이신 경우 안쓸 때는 꺼두는 것이 좋습니다.
잊어버리고 안끄면 다음달 카드명세서를 찢어버리는 불상사가 생깁니다.
주의!
며칠 운영해 본 결과 Elastic IPs 부분에 과금이 되었습니다. 확인해 보니 무료 서비스 기간 중에 IP할당 받은 상태에서 Instance를 정지시켜두면 과금 되더군요. 저는 108시간 동안 정지시켰더니 0.54$ 나왔습니다. 다행히 월말에 일이 발생해서 지난달 고지서 메일로 날아와서 알게되었네요. 참고하세요.^^
인스턴스에 마우스 올리고 우측마우스 버튼 클릭하면 옵션 메뉴가 나옵니다.
박스를 잘못쳤네요^^; Connet가 아니라 Stop을 누르세요.
참고로 재부팅 시 Reboot와 Start-Stop에 따라 과금이 달라집니다. 계속 운영할 거라면 Reboot 하세요.
인스턴스 상태가 stopped라고 나오면 멈춘 것입니다. 이제 안심하고 잠자리에 드세요~
다음 목표는 APM 서비스 입니다.
3 Comments
익명 · 2013년 7월 31일 at 13:42
댓글남깁니다.
따라해보았는데요..
Security Groups 에서 ssh 포트 22 를 열어서 해보았는데.. 접속되지가 않네요 ㅠㅠ
telnet 으로 확인해보니.. 포트 22는 막혀있고, 80이 뚫어져있네요.. 80은 기본이라 설정이 되어있는것 같고..
도와주세요 ~~
kimsreal · 2013년 8월 5일 at 09:25
안녕하세요?^^
Add Rule로 포트 모두 추가하신 후 아래에 “Apply Rule Changes” 라는 버튼을 눌러야 최종 적용이 됩니다. 그럼….
아마존 EC2에 워드프레스 설치하기 | Syncst · 2013년 6월 3일 at 18:10
[…] 이전글 : 아마존 EC2 서비스 구축하기 […]