[아웃풋]졸업한 대학교에서 후배들에게 AWS에 대해서 발표했습니다.

2021.10.27

안녕하세요, 임채정입니다.
저는 이번에 졸업한 대학교에서 일본취업을 준비 중인 후배들을 대상으로 AWS 기초에 대해 발표를 했습니다.
화상 발표로 진행했지만 오랜만에 학교에 돌아간 것같아서 감회가 새로웠습니다.
이번 블로그에서는 제가 발표한 내용을 간단하게 정리하는 것과 동시에 발표에 진행했던 실습을 정리해보려고 합니다.

아젠다

  1. 발표 개요
  2. 발표 목적
  3. 발표 PPT 자료 첨부
  4. 실습 정리
  5. 참고 자료 (추천 사이트)
  6. 마무리

1. 발표 개요

발표자: 임채정
발표 주제: AWS 기초
발표 내용: AWS 기초에 대해 이해하고, 많은 서비스 중에서 먼저 공부하기 쉬운 서비스에 대해 알아본다.

2. 발표 목적

발표 주제를 AWS로 한 이유는 2가지 있습니다.

1. 먼저 후배들이 다양한 기술을 접해봤으면 좋겠다고 생각했기 때문입니다.
제가 AWS에 대해 처음 알게 된건 클래스메소드의 회사 설명회를 듣고 나서였는데 그 때 왜 이제야 알았을까 하고 아쉬워하던 기억이 있습니다.
물론 컴퓨터공학과나 IT관련 과의 학생들은 알 수 있겠지만 IT비전공인 학생들은 알기 어려울 수도 있다고 생각했습니다. 그렇게 때문에 이 발표를 듣고 AWS라는 새로운 기술에 대해 알려주고 싶었습니다.

2. 다음으로 AWS를 처음 공부할 때 어디부터 하면 될지 알려주고 싶었습니다.
저는 회사에 입사하기 전에 스스로 공부를 해보려고 책도 사고 유튜브도 보고 했지만 그 많은 서비스 중에서 뭘 먼저 해야 하는 지, 어떻게 해야하는지 등 많은 고민을 했습니다.
물론 클래스메소드에 들어와서 연수를 받으면서 다양한 멘토 분들에게 물어보거나 과제를 받으면서 AWS의 재미를 느낄 수 있었습니다.
그렇기 때문에 후배들은 처음에 헤매지 말고 공부할 수 있도록 처음에 공부하기 쉬운 서비스에 대해서 알려주고 싶었습니다.

3. 발표 PPT 자료 첨부

4. 실습 정리

제가 발표 때에 진행했던 실습을 정리했습니다.
마지막 CloudFormation은 시간이 부족해 진행하지 않았기 때문에 따로 정리하지 않았습니다.

4-1. EC2 구축

먼저 EC2구축을 해보겠습니다.

EC2 페이지에서 [인스턴스]탭을 누르면 EC2 인스턴스의 목록을 확인할 수 있습니다. 현재는 인스턴스가 아무것도 없기 때문에 새로운 인스턴스를 생성하겠습니다.
[인스턴스 시작]버튼을 누릅니다.

인스턴스를 생성하려면 총 7개의 단계가 필요합니다.
먼저 AMI를 선택해야 합니다. AMI는 인스턴스를 시작하는 데 필요한 구성이 포함되어 있는 템플렛과 같은 것 입니다. 이 AMI를 선택하는 것으로 필요한 운영체제 등을 따로 설치 할 필요없이 인스턴스를 빠르게 생성할 수 있습니다.
이번 실습에서는 Linux2를 선택해서 사용해주겠습니다.
운영체제 아이콘 밑에 프리 티어 라고 적인 AMI를 선택하면 처음 시작하는 사람들은 12개월동안 무료로 EC2 인스턴스를 사용할 수 있습니다.

다음으로 인스턴스 유형을 선택하겠습니다.
여기서는 필요한 성능에 적절한 인스턴스 유형을 선택합니다.
실습에서는 프리티어인 t2.micro를 선택해서 진행합니다. t2는 성능이 그리 뛰어나지는 않기때문에 테스트 용으로 많이 사용하는 인스턴스 유형입니다.

그 후 인스턴스 구성, 스토리지 추가, 태그 추가는 기본 구성으로 충분하기 때문에 아무런 설정을 하지 않고 다음으로 넘어가겠습니다.

다음으로는 보안 그룹 구성을 해야합니다.
사실은 보안그룹 또한 기본 구성으로 충분히 인스턴스를 생성할 수 있지만 중요한 개념이기 때문에 간단하게 설명을 하고 넘어가겠습니다.
보안그룹은 간단하게 말하면 인스턴스를 지키는 방화벽입니다.
인스턴스에 들어오는 트래픽을 허용하거나 거부합니다.
실습에서는 새로운 보안그룹의 이름을 ec2-sg로 설정하고, SSH 트래픽(22번 포트)만 허용하도록 하겠습니다. SSH 트래픽은 터미널로 접속하기 위해서 필요합니다.

이렇게 설정했을 경우 보안그룹은 다음 그림과 같은 경우처럼 SSH 트래픽만 허용하고 다른 트래픽은 모두 거부합니다.

또한 소스를 0.0.0.0/0으로 설정할 경우 모든 곳에서 트래픽을 받겠다는 뜻이기 때문에 보안상 좋지는 않지만 실습에서는 결과를 확인해보기 위해 0.0.0.0/0으로 설정하겠습니다.

마지막으로 지금까지 설정한 인스턴스의 다양한 세부 설정들을 검토하고 [시작하기] 버튼을 클릭합니다.

그러면 키 페어를 생성 혹은 선택하라고 합니다. 키 페어는 쉽게 EC2인스턴스로 접속하기 위한 열쇠라고 생각하면 됩니다.
새로운 키페어 이름을 ec2-key로 설정하고 다운로드를 받은 후에 [인스턴스 시작]을 합니다.

그리고 처음 EC2페이지의 [인스턴스] 탭으로 돌아가면 인스턴스가 성공적으로 생성된 것을 확인 할 수 있습니다.

이 것으로 EC2 인스턴스의 생성이 완료되었습니다.

4-2. 웹 배포

이번에는 웹 배포를 해보겠습니다. 웹 페이지는 간단하게 작성한 HTML파일을 깃에서 받아와서 사용하는 형식으로 진행했습니다.

EC2 인스턴스에 접속

먼저 터미널을 통해 인스턴스에 접속해보겠습니다.
참고로 저는 mac을 사용하고 있기 때문에 터미널로 진행하겠습니다.
만약 window를 사용하고 계신 분들은 Linux서버에 접속하는 방법이 다르기 때문에 구글에 window ec2 접속을 검색해서 참조하시길 바랍니다.

먼저 EC2인스턴스에 접속하기 위해서는 위에서 다운로드 했던 키페어(ec2-key)가 필요합니다.
키 페어는 보안상 아주 중요하기 때문에 중요한 파일을 보관해두는 폴더에 따로 보관하면 좋습니다.
먼저 터미널에서 키 페어가 있는 폴더로 이동합니다.
그 후 먼저 키 페어의 권한을 외부에서는 접근하지 못하도록 변경합니다.

$ chmod 400 ec2-key.pem

그리고 인스턴스에 접속하는 명령어를 입력합니다.

$ ssh -i ec2-key.pem ec2-user@퍼블릭IPv4

이 때 키 페어의 이름을 중간에 옵션으로 입력하고 마지막 (퍼블릭IP) 는 인스턴스의 정보 중 퍼블릭 IPv4에 적혀있기 때문에 확인하고 입력해줍니다.

그러면 안내문이 나오면서 접근할거냐는 질문이 나오는데 yes라고 입력해줍니다.

The authenticity of host '3.34.43.228 (3.34.43.228)' can't be established.
ECDSA key fingerprint is SHA256:QGVfF28is6wFz5o+P00hOsHoE7aeT+cWWFlU+0zBL3U.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

이것으로 인스턴스에 성공적으로 접근할 수 있게 되었습니다.

Warning: Permanently added '3.34.43.228' (ECDSA) to the list of known hosts.

__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|

https://aws.amazon.com/amazon-linux-2/
3 package(s) needed for security, out of 15 available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-172-31-11-127 ~]$

웹 배포를 위해 아파치 설치 후 시작

다음으로 웹페이지를 배포하기 위해 필요한 아파치를 설치해줍니다.

먼저 원할한 진행을 위해 루트로 이동하겠습니다. 그럼 입력칸이 변경되는 것을 확인 할 수 있습니다.

[ec2-user@ip-172-31-11-127 ~]$ sudo -s
[root@ip-172-31-11-127 ec2-user]#

루트로 변경이 됐으면 본격적으로 설치하기 전에 설치 프로그램으로 업데이트 해줍니다.

# yum update -y

그 후에 아파치를 설치합니다.

# yum install -y httpd

또한 아파치를 설치하고 페이지에 접속하기 위해서는 HTTP트래픽(80번 포트)의 허용이 필요하기 때문에 보안그룹의 설정으로 변경해야 합니다.
EC2 페이지의 [보안그룹]탭에서 앞에서 생성된 ec2-sg를 클릭해 인바운드 규칙을 편집해줍니다.

제대로 설치되었는지 확인하기 위해 아파치를 실행하고 퍼블릭 IPv4으로 접속해봅니다.

# systemctl start httpd

깃 설치 후 웹 페이지 가져오기

이렇게 하면 아파치 실행까지 완료했기 때문에 자신만의 페이지로 화면을 변경하기 위해 깃에서 파일을 가져오겠습니다.

먼저 깃을 설치하고 제대로 설치가 됐는지 확인하기 위해 버전을 확인해줍니다.

# yum install -y git
# git --version
git version 2.32.0

그 후에 깃 파일을 가져올 폴더로 이동해야 합니다. 실습에서는 아파치를 설치했기 때문에 /var/www/html/으로 이동합니다.

# cd /var/www/html/

그 후에 깃을 pull 합니다. pull 받을 때는 받고 싶은 깃 레파지토리의 주소를 괄호안에 넣어줍니다.

git init
git pull (깃 레파지토리 주소)

그 후에 파일이 제대로 받아졌는지 확인합니다.
index.html 파일이 메인 화면이 됩니다.

# ls
README.md index.html

실제로 퍼블릭 IPv4으로 접속해서 확인해보면 변경된 화면을 확인할 수 있습니다.

여기까지 하면 웹 배포는 완료입니다.

4-3. Route53

실습을 시작하기 전에 Route53는 유료 서비스입니다. 그렇기 때문에 무료로 연습만 해보고 싶은 분들에게는 추천드리지 않습니다.

먼저 Route53는 도메인을 관리하는 서비스이기 때문에 도메인이 필요합니다. 실습에서는 무료 도메인을 사용하겠습니다.
무료 도메인을 가지고 오고 Route53에 등록하는 건 아래의 블로그를 참고했습니다.

이제부터 실제로 EC2 인스턴스의 퍼블릭 IPv4와 도메인을 연결해보겠습니다.
먼저 Route53페이지에서 [호스팅 영역]탭으로 이동하면 내가 가지고 있는 도메인을 확인 할 수 있습니다.

연결할 도메인을 선택해서 들어가서 [레코드 생성]을 누르면 새로운 레코드를 만들 수 있습니다.

먼저 레코드 이름에 www
레코드 유형이 A인지 확인하고
값에 위에서 구축한 EC2 인스턴스의 퍼블릭 IPv4의 값을 넣어줍니다.
그리고 레코드를 생성해줍니다.

그러면 새로운 레코드가 생성되었습니다.
입력한 정보가 잘 적용 됐는지 확인합니다.

제대로 입력이 되었으면 이제 http://www.routetest.ml/를 누르면 위에서 구축한 인스턴스의 index.html 파일이 나와야 합니다.
실제로 접속해보면 제대로 적용된 것을 확인할 수 있습니다.

4-4. 리소스 삭제 (중요!)

가장 중요한 단계입니다. 모든 실습이 끝나면 반드시 실습에 사용한 모든 리소스를 삭제해 줍니다.
물론 좀 더 사용하고 싶다고 하면 남겨둘수는 있지만 요금이 초과되지 않도록 주의하면서 사용합시다.

이번 실습에서 삭제해야 할 리소스는 다음과 같습니다.

  • EC2 인스턴스
  • 보안그룹
  • Route53 등록 도메인

5. 참고 자료 (추천 사이트)

발표를 하면서 참고했던 사이트나 추천하고 싶은 사이트 목록입니다.

6. 마무리

약 80분이란 긴 시간동안 혼자 발표하는 게 처음이라서 걱정도 많이 됐지만 막상 발표를 할 때는 긴장이 풀려서 재미있게 했던 것같습니다.
제가 발표한 내용이 제대로 전달되었는지 잘 모르기 때문에 혹시 나중에 실제로 해보고 싶으신 분들을 위해 블로그로 정리하게 되었습니다.