아마존 웹 서비스AWS EC2 웹서버 구축-연결
ㅋㅋㅋㅋ..
어렵지 않은 내용인데 삽질로 인해 3일동안 붙잡고 있으면서 온갖 솔루션을 적용했고 인스턴스를 region별로 만들었으나 결국은 와이파이 문제였다. 몇십 번의 반복으로 인해 과정을 걍 다 외워버려서 복습 겸 작성.
aws 무료 서버 개발
AWS는 아마존에서 제공하는 클라우드 서버인데 종류도 아주매우 다양하지만 유료이고, 어쨌거나 기본 셋팅으로 1년동안 무료로 사용할 수 있는 루트가 있다.
나는 이걸 웹 서버용으로 만들기 위해 시작함.
1. 회원가입
여기서 가입 >> https://aws.amazon.com/ko/
가입하다보면 결제 가능한 카드 확인용으로 1달러를 결제하는 단계가 있는데 이게 실제로는 부과되지 않는 금액이라고 한다. 난 아직 돌려받진 못했지만.. 한달쯤 뒤에 오려나 싶다. 아 그리고 주소같은건 날려 써도 되는데 전화번호는 인증을 하기 때문에 제대로 써야함.
2. 인스턴스 생성
aws에서 생성 가능한 한 대의 서버를 인스턴스라고 부르는 듯. 인스턴스는 놀랍게도+감사하게도 여러 개 생성 가능하다.
만드는 방법은 아래와 같다.
ec2 접속 (웹 서버 역할을 할 수 있는 상품)
EC2 클릭
시작하기 클릭
필요하다면 지역 설정. (보통 국내에서는 서울/도쿄 많이 하는 듯)
인스턴스 생성-시작 클릭
인스턴스 설정
대부분 우분투나 센토스를 선택하더군요.
헌데 처음에 프리 티어 사용 가능이라고 되어있는 텐서플로 장착한 우분투 골랐더니 돈내라고 해서 그냥 다시 평범한 우분투 선택.
무료라고 되어있는 것 그대로 두고 검토 및 시작 하면 돈을 내야하는지 알려줌.
별말 없으면 무료이고 돈내야하는 커스텀을 골랐으면 창을 띄워준다.
여기에서 바로 보안 그룹을 설정할 수도 있긴 함
위에 저건 기본 설정되어 있는 security group
그리고 시작을 누르면
.pem확장자의 키를 다운받아야 한다. 그리고 시작!
(만약 돈 청구되거나 과금되면 이메일로 알려달라하는거 설정할 수 있음)
3. 인스턴스 설정 (보안 그룹)
사실 위 2번에서 만들던 와중에도 설정할 수 있..지만 수정하는 것을 연습 겸 여기서.
서버가 잘 돌아가고 있음. 하단에 나타난 인스턴스 정보들에서 퍼블릭DNS는 나중에 putty 연결할 때 또 씀.
왼쪽 메뉴 밑에 보안 그룹 클릭
launch-wizard-1이 우리가 만든 인스턴스 그룹 이름. (많이 만들어서 헷갈린다면 이 위에 스샷에서 해당 인스턴스 선택 시 하단 정보창에서 이름 확인 가능)
이걸 선택 후 인바운드 클릭.
웹 서버용으로 만든 거기 때문에 HTTP 추가하고 소스는 어디서나 접근으로 설정하면 목록이 자동으로 두개가 됨. (포트 자동 할당)
첨부터 만들어져 있는 SSH는 보안을 위해 내 IP로 하라고 aws가 그랬음.
트래픽은.. 남들이 하길래.. 서버 접속 안될때 이것때문인가 해서 넣어본 것.
Putty로 서버 연결
삽질하던 중 xshall 비롯한 온갖 쉘프로그램 사용했으나 aws 공식 홈페이지에서도 가이드라인을 putty로 제공하기 때문에 이걸로.
putty를 사용하는 이유는 서버를 구성하는 우분투 리눅스를 원격으로 연결해서 사용하기 위함이다.
putty 설치는 이곳에서 >> https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
1. 키 변경
.pem 확장자의 키를 .ppk확장자의 private key로 변경하는 과정이다.
putty를 통합설치하면 딸려있는 puttygen을 이용한다.
Load 클릭 - 모든 파일 - 아까 만들었던 .pem 키 선택
지 알아서 해주고 Save private key로 저장. (이름은 똑같이 하는게 편할..듯)
2. 설정 및 접속
여기>>https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html 를 참조하면 되기 때문에 우분투의 경우는 이렇다는 것을 간단하게만.
호스트 네임 ubuntu@(public dns)
SSH 포트22
SSH-Auth-아까 만든 .ppk 키 불러오기
편의를 위해 세션 저장 후 접속하면 처음에 무슨 경고창 같은게 뜨는데 살짝 쫄았으나 걍 확인 하면 그 이후로는 존나 잘 접속됨.
웹 서버(아파치) 설치
이제 할 일은 웹 서버로서 사용하기 위해 가장 익숙한.. 아파치를 설치한다.
putty로 연 콘솔창에 이것들을 입력한다.
sudo apt-get update
sudo apt-get install apache2
설치는 ㅈㄴ 빨리 되고 두번째 명령같은 경우 y/n를 물으니 멍때리다 엔터 쳐주면 됨.
이제 퍼블릭 dns를 주소창에 쳐넣으면 아래와 같은 창이 뜬다. 웹서버 간단 완성!! 이제 관리만 하면 된다.
.
.
.
그리고 aws 접속 과정의 에러에 대해.
나같은 경우 처음엔 timeout 에러를 먹다가 connection refused에 점령당했었는데, 그 과정에서 얻은 몇 가지 솔루션들.
와이파이 (와이파이를 바꿔 보세요. ssh 서버 접속을 학교 말고 집에서 해보세요.)
보안 그룹 인바운드 체크 (제대로 필요한거 다 되어있는지)
라우팅 테이블 체크 (인터넷 게이트웨이 제대로 연결되어있는지.. 근데 사실 이건 기본적으로 알아서 설정되는거라 큰 문제는 없을 거 같은데)
컴의 방화벽 체크 (SSH 연결 등을 할 때 방화벽 인바운드/아웃바운드에 22포트가 허용되어 있는지 확인해야 하는데 그 많은 목록들 중에 확인하긴 어려우니 걍 목록에 추가하면 됨. 근데 이것도 문제가 될 경우는 적은 것 같다.)
지금 당장은 다른 것들이 생각 안나는데 aws 지원 센터에 내 문제로 넣은 문의에 대해 답변받은, 추천 솔루션 링크들을 첨부.
+) 그 외로 아예 처음부터 접속이 안되는 게 아닌, 되었는데 안된다거나 되었다 말았다 하거나 터미널은 되는데 브라우저는 안되거나 이런 경우 ping 등등으로 확인을 해보거나 웹서버에 올린 프로그램에 대해 확인을 해보라고 합니다.