7-1 정리( https://mo-i-programmers.tistory.com/16?category=1053538 )
7-2 정리 ( https://mo-i-programmers.tistory.com/18?category=1053538 )
백엔드 구성 - EC2
(참고문서 https://docs.aws.amazon.com/ec2/?id=docs_gateway )
EC2는 AWS의 가장 기본적인 서비스로 하나의 서버 컴퓨터라 생각하면 된다.
서버컴퓨터를 하나 빌려 프로그램들을 설치하고 사용
-인스턴스 만들기
인스턴스 생성 첫 단계는 AMI 선택
AMI는 인스턴스에 설치할 OS 이미지인데 우리가 컴퓨터나 노트북을 사면 OS를 설치해야 하듯이 EC2를 생성하기 위해 OS를 선택하자
강의와 실제론 Ubuntu Server 18.04 선택
-인스턴스 유형 선택
컴퓨터를 살 때 스펙을 고르는 것과 같다.
CPU, 메모리 성능이 높아질 수록 가격이 비싸짐
t2.micro 선택
-인스턴스 구성
인스턴스 구성에는 많은 옵션이 존재하는데 기능이 필요할 때 찾아서 적용해보자.
-스토리지 추가
스토리지는 컴퓨터에 하드디스크를 추가하는 기능과 유사
디스크의 크기와 볼륨 유형을 지정, 새 볼륨을 추가할 수 도 있다.
-태그 추가
태그는 생성한 인스턴스를 구별할때 쓰는 태그를 지정하는 기능
인스턴스가 많아졌을때 태깅을 잘 해졶으면 유용하게 사용할 수 있다.
-보안그룹 구성
보안 그룹은 PC의 방화벽과 같은 기능을 하는데 해당 인스턴스에 들어오고 나가는 포트를 제어할 수 있다.
기본적으로 SSH포트인 22번 포트는 열렸있게 설정! 이유는 인스턴스가 생성된 후 SSH를 이용해서 인스턴스에 접속할 예정이기 때문.
-생성하기
생성을 클릭하면 키페어 관련 팝업 창이 뜨는데 키페어란 서버에 접속하기 위한 키!
※키를 지정하고 나면 절대 잊어버리지 말자.
기존의 키페어가 있다면 사용하면 되고 없다면 새 키 페어 생성을 하면된다. 이름을 적고 다운로드 하면 .pem 파일 다운
--EC2 접속하기
IP확인 (퍼블릭 IPv4 주소)
윈도우니 SSH를 설치하고 이하 버전은 git bash라는 프로그램을 이용
-접속하기
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
ex)
ssh -i /path/my-key-pair.pem ubuntu@13.125.251.58
-접속 확인
최초 접속시 fingerprint 하는데 yes 엔터 하면 완료.
--리눅스 명령어 연습!
ls: 내 위치의 모든 파일을 보여준다.
pwd: 내 위치(폴더의 경로)를 알려준다.
mkdir: 내 위치 아래에 폴더를 하나 만든다.
cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
cd .. : 나를 상위 폴더로 이동시킨다.
cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기
rm -rf [지울 것]: 강제로 지우기. 이 명령어로 지우면 복구가 안되니 조심하세요!
sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)
1. 파이썬 설정
# python 이라는 명령어로 3 버전 이상을 실행하도록 하는 명령어입니다.
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
2. 리눅스 패키지 설치
# pip3 설치
sudo apt-get update
sudo apt-get install -y python3-pip
# 버전 확인
pip3 --version
# pip3 대신 pip 라고 입력하기 위한 명령어
# 아래 명령어를 입력하면 pip 라고 쳐도 pip3를 작동시킬 수 있습니다.
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
# 파이썬 개발에 필요한 라이브러리 설치
pip install flask boto3 flask-cors
3.git 연동
# git 저장소 url
https://github.com/uphiller/allaboutaws-backend
이후 소스 클론 → 폴더 확인&파이썬 파일 실행 → 백그라운드 실행(nohup python app.py &)
--포트 열기
보안 그룹에 들어가 인바운드 규칙 편집 (5000포트 추가)
0.0.0.0/0은 모두 허용
ELB
ELB는 여러대의 EC2를 묶어서 사용하기 위한 서비스!
클라우드를 사용하지 않을때도 LB(로드발란서)를 구입해서 사용
사용장점은 서비스중에 EC2의 성능이 부족한 경우 인스턴스를 추가 할 수 있다.
-로드 발란서 구성에는 이름 , 체계, ip주소 유형
이름은 규칙대로 정한 후 체계는 외부의 접근을 허용하는가, 내부는 외부와 상관없이 내부 서비스들끼리 사용 하겠다는 것. IP 주소 유형은 ipv4를 유지하면 가능
리스너는 어떤 프로토콜을 사용하여 접근하게 할 것인지 설정 HTTP,HTPPS중에 하나 선택
가용 영역은 존을 지칭하는 단어로 평균적으로 abcd가 있다면 ac/bd 이런식으로 선택
보안 설정 구성으로 넘어가시면 경고문구
이 부분은 이전 페이지에서 리스너를 HTTPS로 선택하지 않아서 발생하는 현상
외부로 허용된 로드밸런서기 때문에 좀 더 보안적으로 안전한 HTTPS를 사용하라는 경고
-라우팅 구성
라우팅 구성은 ELB에서 EC2로 연결되는 부분에 대해 설정하는 부분 이에요.
대상그룹은 ELB에 EC2를 연결하기 위해서는 먼저 그룹을 만들어 놓고 그룹에 EC2를 추가하는 방식이에요. 그래서 대상그룹을 먼저 생성합니다.
대상 유형에는 EC2를 대상으로 하기 때문에 인스턴스를 선택합니다. 우리가 만든 EC2에서 사용할 포트는 5000번이기 때문에 프로토콜은 HTTP, 포트는 5000을 선택해주시면 되요.
상태검사는 연결된 EC2 인스턴스의 상태를 계속 검사해서 만약에 EC2에 문제가 있으면 해당 EC2에는 트래픽을 보내지 않습니다. 보통 헬스체크라고 합니다.
EC2 수동추가는 인스턴스를 만들어 대상그룹을 통해 추가
자동추가는 Auto Scaling 시작구성 만들기를 쓰는데 아래 스샷을보자
--Auto Scaling 그룹 & 헬스 체크
'정리' 카테고리의 다른 글
8-1 TIL 정리(AWS 3번째 ) (0) | 2022.04.27 |
---|---|
7-3TIL 정리(마지막 EB) (0) | 2022.04.27 |
7-1TIL 정리(AWS기초) (0) | 2022.04.27 |
6-TIL 정리 (간단한 AWS-S3,IAM,CloudFront) (0) | 2022.04.25 |
5-TIL 정리(간단 pymongo정렬과 CSS flex) (0) | 2022.04.22 |