1. 과제를 위한 개념
네트워크
취업을 당락을 좌지우지하진 않지만 "네트워크"를 알면 어떤 직무를 어떤 관점으로 볼 지 알 수 있다.
- 땅을 계약: AWS 가입하기 public cloud
- 건물을 세움: VPC virtual private cloud
- 공간 나누기(~호): subnet
- 책상: 서버(EC2)
=> 백엔드 개발자와 가장 관련이 있는 것은 서버이다. 옛날에는 백엔드 개발자가 개발만 했지만, 개발하는 공수 자체가 줄어들었기 때문에 남는 시간에 서버를 공부한다. 서버를 정말 잘 다룰 수 있어야하지 진정한 백엔드 개발자가 된다.
* 네트워크 상에서의 주소: IP
- 건물주소: VPC IP 대역대
- 상세주소: subnet IP 대역대
=> 반드시 subnet IP 대역대는 VPC IP 대역대에 속하는 관계가 만들어져야함.
- 바깥세상: 인터넷
- 현관문: 인터넷게이트웨이
- 도어락: routing/router/routing table
=> 건물에 인터넷게이트웨이를 만들고 인터넷게이트웨이에 도어락을 만들어야함. 순서를 반드시 정해야함.
- 책상잠금: 보안그룹(security group)
IP가 생긴 형태 => _._._._
0~255.0~255.0~255.0~255 /CIDR(사이더)
1~32(
0은 1부터 255까지 올 수 있다는 뜻을 의미함. 1~255.1~255.1~255.1~255
VPC란?
Virtual Private Cloud의 약자로 AWS에서 논리적으로 생성하는 독립적인 네트워크이다.
사용자는 VPC 내에서 IP대역, 인터페이스, 서브넷, 라우팅 테이블, 인터넷 게이트웨이, 보안그룹, ACL 등을 생성하고 제어할 수 있다.
AWS는 VPC 안에서 다른 가용영역(AZ)에 같은 서브넷 대역을 사용할 수 없다.
예를 들어, 서브넷 A에서 10.0.0.0/24 대역을 사용했다면 서브넷 B에서 10.0.0.0/24 대역을 사용할 수 없다.
즉, 서브넷은 하나의 가용영역(AZ) 안에 종속되어야 한다.
퍼블릭 서브넷 & 프라이빗 서브넷이란?
VPC 안에 구성할 수 있는 서브넷 구성으로는 퍼블릭 서브넷과 프라이빗 서브넷이 있다.
- 퍼블릭 서브넷은 외부와의 자유로운 통신이 가능한, 외부 인터넷 구간과 직접적으로 통신을 할 수 있는 공공 네트워크이다.
- 프라이빗 서브넷은 이름에서 유추할 수 있듯이, 외부에서 직접 접근할 수 없고 NAT Gateway를 이용하면 외부로 단방향 통신(내부 => 외부 방향)만 가능하다.
2. 실습과제
1. AWS 계정 만들기
https://www.lainyzine.com/ko/article/how-to-create-an-amazon-web-services-account/
아마존 웹 서비스(AWS) 계정 생성하는 방법
AWS는 Amazon의 클라우드로 리눅스, 윈도우 컴퓨팅 자원 뿐만 아니라 다양한 서비스를 제공하고 있습니다. 이 글에서는 아마존 웹 서비스 계정 생성 방법을 소개합니다.
www.lainyzine.com
2. 웹서버 만들기
1. VPC, 퍼블릭 서브넷 만든다.
먼저 콘솔에 접속해서 상단 중앙에 있는 검색창에 vpc라고 검색한다.
웹서버가 위치할 네트워크 공간을 만드는 첫 번째 작업이다.
vpc 메뉴에서 vpc 생성 버튼을 누른다.
사실 vpc를 안 만들고 Default-VPC를 사용해도 된다..!
하지만 Default-VPC를 사용하는 방법은 실무에서 사용하는 방법이 아니다.
말 그대로 기본값이기 때문에 아무거나 다 들어갈 수 있기 때문에 관리가 되지 않기 때문이라고 한다.
여러 사람이 여기에 서비스를 만들면 모두 추적해서 확인한 후 지울 수가 없게 된다. (?)
VPC는 큰 서비스 단위로 만드는 것이 맞다.
이름 태그에 이름을 지어주고, IPv4 CIDR 블록에서 IP 대역대를 지정해준다.
(실습시에는 10.12.0.0/16로 생성하였다.) 0은 1~255까지 아무 숫자나 들어올 수 있다는 것을 의미한다.
테넌시는 예로 설정하면 VPC 안에서만 사용할 수 있게 된다. 실습에서는 '기본값'을 선택해서 VPC 밖에서도 인터넷망을 사용할 수 있게 만들어준다.
VPC는 다시 '서브넷' 단위로 쪼갤 수 있다.
VPC IP 대역대를 크게 잘 잡아놓아야 서브넷이 사용할 IP 대역대가 충분해질 것이다..!!!
고려할 사항)
VPC를 최소 2조각 이상으로 쪼개서 서브넷에도 IP를 할당해야한다.
만약 1주차 과제에서 EC2 한 대를 만들며, EC2 한 대는 2개의 IP를 필요로 한다. 따라서, 각 서브넷에 2개의 IP, 서브넷은 총 2개가 필요하므로 VPC는 4개의 IP범위가 나와야한다.
=> 다시 이해하기
VPC 생성이 완료되었다.
AWS에서는 종종 VPC-IP로 VPC를 구분하는 경우가 많다.
이 메뉴에서 VPC-IP를 확인할 수 있는 것을 기억해두면 좋다..!
Q. VPC 생성하면 해당 VPC에 대한 라우팅 테이블은 자동생성되는가?
A. VPC를 생성하면 기본 라우팅 테이블이 자동으로 생긴다. 기본 라우팅 테이블은 해당 VPC에 연결되어 있기 때문에 바로 쓸 수 있다.별도의 라우팅테이블을 만드는 경우 VPC에 직접 연결해주어야 쓸 수 있다.
VPC를 만들었으니 이제 서브넷을 만들 차례!!! 서브넷 메뉴로 이동한다.!
서브넷을 만들어줄 VPC를 선택한다.
서브넷의 이름을 지정한다.
가용영역을 지정하는데, 프리티어는 a존을 사용하므로 a존을 선택한다.
* 가용영역 = AZ = 데이터센터번호
IPv4 CIDR블록을 설정해준다. (그림에 설명과 같이 설정하여주었다.)
2. 인터넷게이트웨어를 만들고 라우팅 테이블에서 VPC와 연결시킨다.
인터넷게이트웨이를 생성한 후 연결시켜서 서브넷이 인터넷망에 접속할 수 있도록 만든다.
But, 인터넷게이트웨이는 VPC 말고도 라우팅 테이블을 통해 서브넷을 연결해야 한다.
라우팅 편집을 눌러서 0.0.0.0/0 즉, 인터넷망을 입력하고, 만들어준 인터넷게이트웨이를 선택한다.
즉, 인터넷게이트웨이가 0.0.0.0/0(어느 IP든 상관없음)으로 모든 IP에 열려있고, 라우팅테이블을 통해서 VPC와 통신할 수 있게 되었다.
=> 여기까지 네트워크 설정은 모두 끝났다!!!!
3. EC2 보안그룹을 생성한다.
웹 콘솔에서 EC2서비스에 접속한다.
4. EC2 보안그룹 인바운드 정책에 내 IP 22포트와 80포트를 허용시킨다.
EC2 메뉴에서 네트워크 및 보안>보안그룹에 들어가 보안그룹을 먼저 만들어본다.
이름은 맘대로 짓고 VPC는 우리가 만든 VPC를 선택하면 된다.
VPC가 VPC-ID로 구분하게 되어있다.
혹시 VPC를 여러 번 만들었을 경우, VPC메뉴에 들어가서 사용해야할 VPC 아이디를 확인해야한다.
보안그룹 중 인바운드(Inbound), 즉 EC2로 들어오는 방향에 제어를 설정한다.
생성한 보안그룹 체크 후 하위에 있는 인바운드 규칙탭을 본다.
=> TCP 22는 SSH, cmd 또는 터미널로 들어갈 수 있도록 설정한다.
=> TCP 80는 http 포트, 웹서버로 만들려면 80포트는 꼭 열어주어야 한다.
다른 사람에게 공개할 것이 아니기 때문에, 내 IP를 눌러서 나만 들어갈 수 있게 해준다.
* 만약 컴퓨터에 연결된 네트워크 장비(와이파이 등) 변경되어, 컴퓨터의 IP가 바뀌면 이 정보도 변경되어야 한다. 추후 EC2에 연결된 보안그룹을 수정할 수 있다. TCP 22와 TCP 80 모두 IP를 수정해줘야 잘 되었다.
아웃바운드(Outbound)는 EC2에서 나가는 방향에 제어를 설정한다.
EC2를 사용해서 데이터를 보내줘야할 것에 대한 제어인데 기본값은 모두 허용이다.
So, 모두 허용으로 두어도 상관없다.
아웃바운드는 설정하지 않고 넘어간다.
=> 사전작업이 드디어...끝났다. 이제 EC2 인스턴스를 만들어 볼 것!
5. 프리티어 EC2 한 대를 만들고 위에서 생성한 보안그룹을 적용한다.
AWS에서는 서버 하나하나를 '인스턴스'라는 이름으로 부른다.
EC2 인스턴스는 가상의 공간에 서버 하나라고 생각하면 쉽다...!
* EC2 인스턴스 == 가상의 공간에 서버 하나
인스턴스 시작 버튼을 누른다.
팝업으로 위와 같은 메시지가 나오면 Opt out to the old experience 버튼을 눌러준다.
AWS에서는 UI가 자주 변경되고 있는데,
시범적으로 새 UI를 사용하게 하고 피드백을 받고 있는 중에는 위와 같은 팝업창이 나온다.
검증된 방식으로 수행하기 위해 기존 UI로 수행하도록 한다.
1단계: 어떤 종류로 만들래?
Linux2 AMI가 가장 일반적이라 이걸 사용하도록 한다.
프리티어 표시가 있더라도 AWS계정을 만든 지 1년이 지나면 비용이 부과되지 유의해야한다.!!
AMI는 EC2를 만들어 낼 때 사용하는 OS정보가 담긴 이미지 파일이다.
Zip과 같은 압축파일처럼 OS정보를 담고 있다.
2단계: EC2의 제품 스펙을 설정하는 단계
- vCPU는 가상 CPU로, 실제 물리 CPU를 논리적으로 쪼개서 사용하는 개념이다.
즉 vCPU가 1이면 CPU 1개도 안 되는거다.. 구리지만 무료니깐 ~!
- 메모리는 우리가 알고 있는 RAM 메모리이다.
- EBS는 스토리지 종류이다. EC2는 기본적으로 EBS를 사용한다.
3단계: 인스턴스 구성 => **핵심**
4단계: 스토리지 옵션 설정
EBS를 사전에 선택했다. 다음과 같은 옵션이 있다.
- lo2: 용량 GB와 스토리지의 네트워크 IOPS를 분리하여 과금, 비쌈
- GP2: 일반적인 SSD 방식
- GP3: 업그레이드 된 SSD 방식(1TB 미만일 때도 최저네트워크성능보장)
GP2나 GP3 중 아무거나 골라쓰면 된다.
7단계에서 마지막으로 확인하고 생성 누르면 된다.
키페어 화면에서는 새 키페어 생성을 누르고 다운받으면 된다.
평생 이 EC2 인스턴스에 대해 딱 한 번만 다운로드 가능하니 잘 보관해야함!!
(*만약 다운로드 받은 pem 파일을 잃어버리면 EC2를 다시 생성해야한다. 귀찮지 않게 잘 보관!)
EC2가 실행 중 상태가 되면 체크박스에 선택하고 연결을 누른다.
관리자가 작업하기에 가장 좋은 환경은 SSH 클라이언트이다.
SSH로 EC2에 연결해야 EC2에서 할 수 있는 대부분의 작업을 수행할 수 있다.
6. EC2에 터미널 또는 CMP로 접근한다.
windows를 사용하면 기본으로 제공되는 pem파일을 바로 사용하지 못 한다.
pem파일을 ppk파일로 변환시켜줘야하는데 이 과정은 puttygen이라는 프로그램을 통해 변환시킬 수 있다.
https://iboxcomein.com/putty-install/
윈도우 에서 Putty 다운로드 및 설치 후 기본적인 사용 방법 정리 - SoEasyGuide
윈도우에서는 OpenSSH 서버를 실행 해서 접속 하는 것이 좋지만 초보 사용자의 경우 커맨드 라인 인터페이스 사용에 부담이 될 수 있습니다. 이 경우 무료로 제공 하는 PuTTY 를 사용 하면 원격 서버
iboxcomein.com
이후, putty를 통해 EC2 서버에 접속할 수 있다.
7. httpd Apache 웹서버를 설치한다.
퍼블릭 IP 주소를 통해 들어갔다면 아이디를 물어보는 화면이 뜬다.
ec2-user 를 입력해주면 로그인이 가능하다.
ec2-user는 aws linux를 사용할 대 가장 최고의 권한을 가진 사용자의 계정으로, 사용자가 변경할 수 있는 아이디가 아니다.
sudo yum install httpd -y
를 입력하여 httpd Apache 웹서버를 설치한다.
sudo service httpd start 명령어로 아파치를 시작한다.!
아파치 웹서버를 사용할 때는 꼭 같이 설정해주는게 있다.
웹 서버가 중단될 경우 다시 시작할 때 가장 먼저 아파치가 실행되어야 실제 상황에서는 장애를 조금이라도 줄이게 된다.
So, 자동시작할 수 있는 명령어!!
sudo chkconfig httpd on 명령어로 설정한다.
8. EC2 퍼블릭 IP로 접근해서 웹서버 테스트 페이지를 띄운다.
http://(EC2 퍼블릭 IP):80
로 접속하면 다음과 같은 웹페이지 뜬다. 웹서버 만드는 것에 성공!
80은 우리가 보안그룹에서 열었던 http 포트이다.
3. EC2 추가기능 사용해보기(관리자가 꼭 수행하는 업무)
첫 번째로 고정IP를 부여한다.
고정IP가 없으면 'EC2 중지 => 재시작' 했을 때 매번 IP가 변경된다.
이름이 탄력적 IP라서 변동IP일 것 같지만, 변동되는 애를 고정해준다는 의미로 생각하면 됨.
EC2가 중지 => 실행 되어도 탄력적 IP는 변하지 않는 IP로, 다른 서버와 연결할 때 이 IP를 사용하면 된다.
두 번째로 백업이 있다.
EC2 백업 = AMI + EBS 백업
AMI = OS 정보가 담겨져있는 것(EC2 만들 때 제일 위에 있던 Amazon Linux AMI)
EBS = 스토리지 백업
AMI 이미지 생성이라는 기능을 사용하면 AMI도 백업 되고 EBS도 자동적으로 같이 백업된다.
So, EC2가 백업되는 것!!
<백업을 했으면 새롭게 만들 수 있는게 인지상정!>
백업된 AMI이미지를 복원해서 새로운 EC2를 만들 수 있다.
AMI 메뉴에서 작업>시작하기를 누르면 EC2 생성 화면과 동일하게 나오고 설정하면 된다.
대부분의 옵션은 원본과 다르게 수정이 가능하지만,
스토리지 옵션은 기존 스토리지보다 작게는 못 만든다.
EBS는 용량증설만 가능하고 축소는 불가능하기 때문.
4. 리소스 삭제
=> 만드는 것만큼 삭제하는 경험이 중요하다~!
EC2 인스턴스는 인스턴스 종료를 누르면 삭제가 된다.
'종료= 삭제'
탄력적 IP는 특이하게 미사용 중일 때 요금이 부과된다.
EC2가 종료되었으니, 오히려 돈이 나간다. (쓸 땐 무료지만, 낭비하는 건 유료다! 라는 ..)
탄력적 IP 주소 릴리스를 눌러주면 된다.
연결해제는 EC2와 분리하는 것인데 EC2는 이미 종료(삭제)되었기 때문에 자동으로 끊어졌다.
그러므로 '릴리즈=삭제'이다.
Security group도 삭제한다.
EC2>보안그룹>보안그룹선택>작업>삭제 눌러 삭제하면 된다.
백업본 = AMI+EBS이기에 각각 메뉴에 들어가서 지워준다.
AMI는 'AMI 등록 취소 = 삭제'
EBS 스냅샷은 '스냅샷 삭제=삭제'
아직 만든 것 중에 안 지운 것들이 있다.....!
서브넷, 인터넷게이트웨이, 라우팅테이블, VPC이다.
이것들은 VPC에 종속되어 있기 때문에 VPC 하나만 지워주면 된다.
AWS웹콘솔>VPC메뉴검색>VPC선택>작업>VPC삭제
AWS 웹콘솔 우측 상단에 세모를 누르면 내 결제 대시보드가 있다.
청구서를 확인하고 어디서 비용이 나가고 있는건 아닌지 확인할 필요가 있다.
혹시 잘못 만드록 안 지우면 비용이 나가게 되니 확인하는 것이 좋다.
'알아두면쓸데있는신기한잡학사전 > 고군분투흔적들' 카테고리의 다른 글
[직무부트캠프] 2주차 과제(웹 서버 배포) (0) | 2022.08.01 |
---|---|
[직무부트캠프] 1주차 과제(웹페이지 기획하기) (0) | 2022.07.26 |
[직무부트캠프] 1주차 정리(현직자 직무 강의 및 Q&A) (0) | 2022.07.12 |
[CSS3] 기초 선택자와 단위 (0) | 2022.04.27 |
[HTML5] 입력 양식 태그와 구조화 태그 (0) | 2022.04.26 |