01.AWS 서버 구매하기
Amazon Web Services Login 로그인 루트 사용자 무제한 액세스 권한이 필요한 작업을 수행하는 계정 소유자입니다. 자세히 알아보기 IAM 사용자 일일 작업을 수행하는 계정 내 사용자입니다. 자세히 알아보기 루트 사용자 이메일 주소 다음 계속 진행하는 경우 AWS 고객 계약 또는 AWS 서비스에 대한 기타 계약 및 개인 정보 보호 정책 에 동의하게 됩니다. 이 사이트는 필수 쿠키를 사용합니다. 자세한 내용은 쿠키 고지 를 참조하세요. AWS를 처음 사용하십니까? AWS 계정 새로 만들기 English
ap-northeast-2.console.aws.amazon.com
스파르타코딩클럽에서 주는 주소를 따라 AWS서버 구매 화면으로 들어갑니다.
왼쪽 메뉴 중에서 인스턴스에 들어갑니다.
그다음 화면 오른쪽 상단에 인스턴스 시작을 눌려줍니다.
그리고 화면에 보이는 것처럼 Ubuntu를 눌러주고 Ubuntu Server 18.04 또는 20.04 버전을 구매합니다.
그 아래에 키 페어(로그인) 화면에서 새 키 페어 생성을 눌려줍니다.
키 페어 이름을 입력하고 키 페어 유형은 RSA, 프라이빗 키 파일 형식은. pem으로 설정하고 키 페어 생성을 합니다.
그리고 인스턴스 시작을 눌려줍니다.
잠시 시간이 지나면 성공이라는 텍스트와 함께 인스턴스를 시작했다는 메시지를 볼 수 있습니다.
그리고 인스턴스 메뉴에 들어가 보면 실행 중인 인스턴스를 볼 수 있습니다.
인스턴스를 시작한 것은 쉽게 말하면 컴퓨터를 하나 빌린다는 개념으로 이해를 하면 좋다고 합니다. 그래서 실행 중인 인스턴스에 오른쪽 버튼을 클릭하면 나오는 메뉴 중에서 '인스턴스 중지'와 '인스턴스 종료'가 의미가 다르다고 합니다. '중지'는 말 그대로 일지 정지의 의미이고 '종료'는 컴퓨터를 반납하는 개념으로 이해를 하면 된다고 합니다.
2. 서버 세팅하기
AWS EC2에 접속하기 위해서 Git Bash를 열어서
<ssh -i 받은 키 페어를 끌어다 놓기 ubuntu@AWS에 적힌 내 아이피 >를 입력하고 엔터를 눌려줍니다.
yes/no를 묻게 되는데 yes를 눌려줍니다.
그러면 AWS EC2에 접속한 상태가 됩니다.
Git Bash는 리눅스 기반의 프로그램이라고 합니다. 그래서 마우스가 아닌 명령어를 이용해야 하는데요. 기본적인 명령어는 다음과 같습니다.
ls: 내 위치의 모든 파일을 보여준다.
pwd: 내 위치(폴더의 경로)를 알려준다.
mkdir: 내 위치 아래에 폴더를 하나 만든다.
cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
cd .. : 나를 상위 폴더로 이동시킨다.
cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기
rm -rf [지울 것]: 지우기
sudo [실행할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올 때는 exit으로 나옴)
그리고 스파르타코딩클럽에서 제공해 주는 명령어를 실행해 줍니다.
# python3 -> python python3를 python이라고 재명명
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
# pip3 -> pip flask 등 패키지를 사용할 때 필요한 pip가 필요하다고 함 그래서 pip 설치
sudo apt-get update
sudo apt-get install -y python3-pip
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
# port forwarding
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000 localhost:5000에서 5000을 때어내는것
우리가 만든 페이지를 웹 환경에서 보기 위해서 파일 질라에 우리가 만든 자료를 업로드해야 합니다. 그전에 몇 가지 설정이 가능한데요.
화면 상단에 첫 번째 아이콘을 클릭하거나 파일-사이트 관리자를 눌러 사이트 관리자 메뉴에 들어갑니다.
새 사이트를 클릭하고 호스트에 AWS EC2 퍼블릭 IPv4를 붙여 넣어주고 사용자를 입력하고 키 파일은 인스턴스를 생성했을 때 다운로드한 키 페어를 넣어줍니다.
sparta 폴더를 만들고 static 폴더와 templates 폴더, app.py 파일을 옮겨줍니다.
python app.py를 입력해서 실행을 해보면 실행을 해보면 실행이 되지 않는데요. pip로 패키지를 설치해야 한다고 합니다.
스파르타코딩클럽에서 명령어를 제공해 주기 때문에 천천히 하나씩 실행해 주면 됩니다.
*flask 설치
pip install flask
*pymongo 설치
pip install pymongo
*dnspython 설치
pip install dnspython
설치를 완료하고 python app.py를 입력해서 실행해 봅니다. 이대로도 아직 실행되지 않는다고 하는데요. 추가적으로 AWS에서 5000포트를 열어줘야 한다고 합니다.
실행 중인 인스턴스를 선택하고 아래 여러 맵 중 보안 탭에 보안 그룹에 있는 링크를 클릭합니다.
인바운드 규칙에 들어가서 아래 인바운드 규칙 편집을 클릭합니다.
그리고 화면과 같이 두 가지 규칙을 저장 합합니다.
그리고 브라우저에 아이피를 입력하면 우리가 만든 사이트를 볼 수가 있습니다. 하지만 Git bash를 종료하면 웹페이지에 접근할 수가 없는데요. Git bash를 종료하더라도 웹페이지에 접근할 수 있도록 nohup 설정을 합니다. 방법은 어렵지 않은데요 아래와 같은 명령어를 입력해 주면 됩니다.
nohup python app.py &
입력하게 되면 Git bash를 종료해도 웹페이지에 접근할 수 있습니다. 종료하는 법도 명령어를 통해서 종료시킬 수가 있습니다.
ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill
지난 시간에 도메인도 구매를 했었는데요. ip 주소가 아닌 도메인으로 바꿔서 웹페이지에 접근할 수 있도록 연결해 줍니다.
가비아에 들어가서 로그인을 하면 구입한 도메인 주소를 볼 수가 있습니다. 선택을 한 후 상단에 DNS 설정을 눌려줍니다.
그러면 다음과 같은 화면이 뜨고 호스트에는 @ 값/위치에는 ip 주소를 입력한 후 확인, 저장 순서로 눌려줍니다.
그러면 구입한 도매인으로 우리가 만든 웹페이지에 접근할 수가 있습니다.
마지막으로 사진처럼 카카오톡 등에 주소를 보내면 페이지 타이틀과 설명, 사진이 나오는 것을 만들어보았습니다.
<meta property="og:title" content="내 사이트의 제목" />
<meta property="og:description" content="보고 있는 페이지의 내용 요약" />
<meta property="og:image" content="이미지URL" />
index.html에 <head>사이에 다음과 같은 코드를 붙여준 후 내 사이트에 맞는 제목과 타이틀, 이미지를 입력합니다. 그리고 파일을 재업로드하고 재시작하고 주소를 카카오톡 등으로 보내면 화면과 같은 것을 볼 수가 있습니다.
저는 처음에 안돼서 몇 번이나 이미지를 바꾸고 재실행을 해도 변화가 없어서 이상했는데요. 그 이유는 페이스북/카카오톡 등에서 처음 것을 한동안 저장해놓기 때문에 초기화를 해줄 필요가 있다고 합니다. 다음 주소를 들어가면 초기화할 수 있습니다.
제품 인공 지능 AR/VR 비즈니스 도구 게이밍 오픈 소스 게시 소셜 통합 소셜 입지 프로그램 Developer Circles F8 ThreatExchange 지원 개발자 지원 버그 플랫폼 상태 Facebook for Developers 커뮤니티 그룹 사이트 맵 뉴스 블로그 성공 사례 동영상 Meta for Developers 페이지 약관 및 정책 플랫폼 이니셔티브 허브 플랫폼 약관 개발자 정책 팔로우하기
developers.facebook.com
여기서 강의는 종료가 되었는데 문제가 생겼습니다. 팬명이 록에는 분명 서버에 자료들이 들어가 있어서 화면에 표시가 되어야 하는데 표시가 되지 않았습니다. 그래서 검사를 해보니 콘솔 창에 Failed to load resource: the server responded with a status of 500 (INTERNAL SERVER ERROR) 같은 오류가 확인이 돼서 검색을 하며 찾아봤습니다. 그래서 수강생 중에 저와 같은 문제를 가진 분이 올린 질문을 확인해 봤습니다.
문제는 AWS ip로 mongodb atlas 접근이 안되어서 생긴 오류였습니다. 해결 방법은 mongodb altas의 접근 가능한 아이피 주소를 0.0.0.0/0으로 설정하는 것이었습니다.
mongodb atlas 접속 - network access - add ip address - allow 버튼 클릭 후 comfirm 클릭하면 설정이 완료가 됩니니다.
5주 차 숙제는 오늘 완성한 도메인 주소를 올리는 것으로 마무리했습니다.
실행 요약
1. ssh -i /d/sparta_mykey.pem ubuntu@13.125.166.186
2. 해당 폴더 접근 ex(cd sparta)
3. nohup python app.py &시작
4. 강제 종료 ps -ef | grep 'python app.py' | awk '{print $2}' | xargs kill
후기. 마지막까지 수강을 완료할 수 있어서 다행이라고 생각합니다. 너무 짧은 것이 너무 아쉽습니다.
'스파르타코딩클럽' 카테고리의 다른 글
[스파르타코딩클럽] 비개발자를 위한, 웹개발 종합반 5주차 1일 후기 (0) | 2023.01.05 |
---|---|
[스파르타코딩클럽] 비개발자를 위한, 웹개발 종합반 4주차 마무리 & 숙제 (0) | 2023.01.04 |
[스파르타코딩클럽] 비개발자를 위한, 웹개발 종합반 4주 2일차 후기 (0) | 2023.01.04 |
[스파르타코딩클럽] 비개발자를 위한, 웹개발 종합반 4주 1일차 후기 (0) | 2023.01.04 |
[스파르타코딩클럽] 비개발자를 위한, 웹개발 종합반 3주차 마무리 & 숙제 후기 (0) | 2023.01.03 |
댓글