본문 바로가기
알아두면쓸데있는신기한잡학사전/고군분투흔적들

[직무부트캠프] 1주차 과제(AWS 계정 만들기, 웹 서버 만들기, EC2 추가기능 사용, 리소스 삭제, 웹 페이지 기획)

by 대범하게 2022. 7. 22.
반응형

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 생성 버튼 누.르.기

vpc 메뉴에서 vpc 생성 버튼을 누른다.

사실 vpc를 안 만들고 Default-VPC를 사용해도 된다..!

하지만 Default-VPC를 사용하는 방법은 실무에서 사용하는 방법이 아니다.

말 그대로 기본값이기 때문에 아무거나 다 들어갈 수 있기 때문에 관리가 되지 않기 때문이라고 한다.

 

여러 사람이 여기에 서비스를 만들면 모두 추적해서 확인한 후 지울 수가 없게 된다. (?)

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 생성을 완료해따!!

VPC 생성이 완료되었다.

AWS에서는 종종 VPC-IP로 VPC를 구분하는 경우가 많다.

이 메뉴에서 VPC-IP를 확인할 수 있는 것을 기억해두면 좋다..!


Q. VPC 생성하면 해당 VPC에 대한 라우팅 테이블은 자동생성되는가?

A. VPC를 생성하면 기본 라우팅 테이블이 자동으로 생긴다. 기본 라우팅 테이블은 해당 VPC에 연결되어 있기 때문에 바로 쓸 수 있다.별도의 라우팅테이블을 만드는 경우 VPC에 직접 연결해주어야 쓸 수 있다.


VPC를 만들었으니 이제 서브넷을 만들 차례!!! 서브넷 메뉴로 이동한다.!

서브넷 생성과정에 대한 과정과 설명

서브넷을 만들어줄 VPC를 선택한다.

서브넷의 이름을 지정한다.

가용영역을 지정하는데, 프리티어는 a존을 사용하므로 a존을 선택한다.

* 가용영역 =  AZ = 데이터센터번호

IPv4 CIDR블록을 설정해준다. (그림에 설명과 같이 설정하여주었다.)

 

2. 인터넷게이트웨어를 만들고 라우팅 테이블에서 VPC와 연결시킨다.

인터넷게이트웨이 생성은 easy~

인터넷게이트웨이를 생성한 후 연결시켜서 서브넷이 인터넷망에 접속할 수 있도록 만든다.

 

작업버튼 누르기 => VPC에 연결 누르기 => 인터넷게이트웨이 만든거 누르기
인터넷게이트웨이를 VPC에 연결하여 인터넷 통신을 활성화한다~
But, 인터넷게이트웨이는 VPC 말고도 라우팅 테이블을 통해 서브넷을 연결해야 한다.

But, 인터넷게이트웨이는 VPC 말고도 라우팅 테이블을 통해 서브넷을 연결해야 한다.

라우팅 편집을 눌러서 0.0.0.0/0 즉, 인터넷망을 입력하고, 만들어준 인터넷게이트웨이를 선택한다.

즉, 인터넷게이트웨이가 0.0.0.0/0(어느 IP든 상관없음)으로 모든 IP에 열려있고, 라우팅테이블을 통해서 VPC와 통신할 수 있게 되었다.

 

=> 여기까지 네트워크 설정은 모두 끝났다!!!!

 

3. EC2 보안그룹을 생성한다.

앞에 VPC와 마찬가지로 검색하여 찾으면 빠르게 찾을 수 있다.

웹 콘솔에서 EC2서비스에 접속한다.

 

4. EC2 보안그룹 인바운드 정책에 내 IP 22포트와 80포트를 허용시킨다.

우리가 만든 VPC 선택 잘하고 보안그룹 생성ㅎㅏ기

 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단계: 어떤 종류로 만들래?

1단계: 어떤 종류로 만들래? => Linux2 AMI 선택

Linux2 AMI가 가장 일반적이라 이걸 사용하도록 한다.

프리티어 표시가 있더라도 AWS계정을 만든 지 1년이 지나면 비용이 부과되지 유의해야한다.!!

 

AMIEC2를 만들어 낼 때 사용하는 OS정보가 담긴 이미지 파일이다.

Zip과 같은 압축파일처럼 OS정보를 담고 있다.

 

 

2단계: EC2의 제품 스펙을 설정하는 단계

2단계: EC2의 제품 스펙을 설정하는 단계 => 프리티어 선택된 것을 사용하면 된당

- vCPU 가상 CPU로, 실제 물리 CPU를 논리적으로 쪼개서 사용하는 개념이다.

  즉 vCPU가 1이면 CPU 1개도 안 되는거다.. 구리지만 무료니깐 ~!

- 메모리는 우리가 알고 있는 RAM 메모리이다.

- EBS스토리지 종류이다. EC2는 기본적으로 EBS를 사용한다.

 

3단계: 인스턴스 구성 => **핵심**

3단계: 인스턴스 구성 에서 인스턴스 개수, VPC, 서브넷 설정 등 세부 구성을 설정한다.

 

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 서버에 접속할 수 있다.

Session에서 인스턴스의 퍼블릭 IPv4 주소를 복사해서 넣어줌. open에서 접속
변환시킨 ppk파일을 Connection>SSH>Auth에서 Browse..를 통해 불러온다.

 

7. httpd Apache 웹서버를 설치한다.

퍼블릭 IP 주소를 통해 들어갔다면 아이디를 물어보는 화면이 뜬다.

ec2-user 를 입력해주면 로그인이 가능하다.

ec2-user는 aws linux를 사용할 대 가장 최고의 권한을 가진 사용자의 계정으로, 사용자가 변경할 수 있는 아이디가 아니다.

 

sudo yum install httpd -y

를 입력하여 httpd Apache 웹서버를 설치한다. 

로그인: ec2-user,  httpd Apache 웹서버 설치:  sudo yum install httpd -y

 

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일 것 같지만, 변동되는 애를 고정해준다는 의미로 생각하면 됨.

탄력적 IP 주소를 할당해준다.
탄력적 IP주소와 우리가 만든 EC2를 연결해주면 다음과 같이 탄력적 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 웹콘솔 우측 상단에 세모를 누르면 내 결제 대시보드가 있다.

청구서를 확인하고 어디서 비용이 나가고 있는건 아닌지 확인할 필요가 있다.

혹시 잘못 만드록 안 지우면 비용이 나가게 되니 확인하는 것이 좋다.

 

반응형