Code.presso Java 웹 개발 트랙 체험단 활동 5주차 두번째 코스로 수강한 강의는 클라우드 컴퓨팅에 관한 내용이다.
지난 포스팅에 이어 이번 포스팅에서는 AWS 서버를 생성하는 과정을 정리해보았다.
강의 제목은 "클라우드 컴퓨팅 첫 걸음"으로, 자세한 정보는 👇🏻아래👇🏻 링크를 통해 확인할 수 있다.
✋🏻 포스팅 내 사용된 사진 파일들의 저작권은 모두 코드프레소에 있으며, 강의자료 공유 및 업로드는 불가능합니다.
본격적으로 AWS 서비스를 이용하기 전에, 불필요한 과금이 되는 것을 막기 위해 예산 설정을 할 것이다.
예산 설정에 들어가 예산 작성을 한다.
예산 유형은 비용 예산
으로 설정하고,
알맞은 예산 이름을 설정한다.
본 과정에서는 프리티어로 사용중이기 때문에 조금이라도 과금이되면 alert을 받기 위해 예산 금액 입력
에 1달러를 설정했다.
임계값
은 우리가 설정한 금액의 몇 퍼센트가 됐을 때 알림을 받을 것인지를 나타낸다.
이메일 수신자
부분에는 알림을 받을 이메일을 적는다.
다음
을 눌러 설정한 예산 정보가 맞는지 확인한다.
성공적으로 예산 설정이 마무리되었다!
EC2란 Elastic Cloud Compute의 약자로, AWS의 가장 기본적인 자원이다.
리눅스/윈도우 서버와 같은 서버 자원을 생성하는데 기본적으로 가상 머신 상에 OS가 설치되어 있는 형태이다.
EC2 인스턴스란 EC2가 실행된, 하나의 서버가 만들어진 상태를 의미한다.
인스턴스는 다양한 종류를 가지고 타입과 사용 유형에 따라 가격도 다양하다.
AMI는 Amazon Machine Image의 약자이다.
가상머신은 이미지를 활용하여 생성이되는데 여기서 이미지는 OS, 설치된 프로그램, 설정 등이 포함된 파일을 의미한다.
이미지를 가상 서버에 적용함으로써 동일한 환경을 구성할 수 있다.
Security Group은 EC2 인스턴스에 대한 보안을 생성한다.
default로 EC2는 모든 포트가 막혀있는데, 이를 Inbound/Outbound 규칙을 통해 접속 허용 설정을 할 수 있다.
Key Pair는 EC2 인스턴스에 접속하기 위한 암호화된 파일이다.
AWS 처음 사용시 새로운 Key Pair를 생성해야 하고, 이 Key Pair를 타인과 공유해서는 안된다.
Mac 환경에서는
.pem
사용 가능, 윈도우 환경에서는.ppk
로 변환이 필요하다.
처음 EC2 인스턴스를 생성하면 "실행" 상태에 있게 된다.
이 인스턴스를 "중지" 할 수도 있고 이를 다시 "실행" 상태로 만들 수 있다.
다만, 인스턴스를 "종료" 하면 인스턴스가 삭제되기 때문에 주의해서 필요한 상황에만 종료하도록 해야한다.
EC2 인스턴스는 Private IP 와 Public IP 를 보유하고 있다.
기본적으로 할당되는 Public IP 는 인스턴스를 재실행하고 나면 변경된다.
영구적인 Public IP 를 설정하기 위해 사용하는 것이 Elastic IP 이다.
Elastic IP 는 실행 중인 인스턴스에 연동하여 사용하면 무료이지만, 생성 후 사용하지 않는 경우 비용이 발생한다.
이제 본격적으로 EC2 인스턴스를 만들어보자!
💡 본 실습은 모두 Mac 환경에서 진행되었다.
인스턴스 시작
을 눌러 인스턴스를 만든다.
AMI 를 선택해야 하는데, 본 과정에서는 프리 티어 사용 가능한 Ubuntu Server 18.04 LTS (HVM)
을 선택했다.
인스턴스 유형 또한 프리 티어 사용 가능한 t2.micro
를 선택하고 다음
을 누른다.
인스턴스의 세부 정보를 구성하는 부분인데, 모두 default로 두고 다음
으로 넘어간다.
스토리지 추가도 default로 두고 다음
으로 넘어간다.
태그를 위와 같이 자유롭게 설정한다.
이러한 태그를 붙이는 이유는 관리를 하기 위함이다.
인스턴스가 하나일 때는 문제가 없지만, 개수가 많아질수록 태그 없이는 인스턴스의 목적이나 용도를 알아보기 힘들어지기 때문이다.
보안 그룹을 설정해보자.
외부에서 인스턴스를 접속하는 것과 관련된 보안을 허용/설정하는 과정이다.
새 보안 그룹 작성
을 눌러 위와 같이 알맞게 이름을 작성한다.
기본적을 22번 포트가 허용이 되어있고, 본 과정에서는 HTTP
접속을 위한 80번 포트도 추가했다.
검토 및 시작
을 눌러 다음 단계로 간다.
인스턴스를 시작하기 전 지금까지 설정했던 정보를 다시 한 번 검토하고, 이상이 없다면 시작하기
를 누른다.
키 페어를 생성하는 창이 뜬다.
본 과정에서는 새로운 키 페어를 생성할 것이기 때문에 새 키 페어 생성
을 선택하고 알맞은 이름을 설정한 뒤 키 페어 다운로드
를 눌러 .pem
파일을 보관한다.
키 페어 파일을 다운받으면 인스턴스 시작
을 눌러 인스턴스를 생성한다.
우리가 만들었던 EC2 인스턴스는, 인스턴스를 중지한 후 다시 실행시키면 Public IP
가 바뀌게 된다.
일반적으로 서버를 사용할 때 이렇게 주소가 바뀌게 되면 문제가 생기는 경우가 많다🤔
서버를 중지했다 다시 실행시켜도 같은 IP를 유지할 수 있게 해주는 탄력적 IP(Elastic IP)를 할당해주자!
네트워크 및 보안
카테고리 안의 탄력적 IP
를 찾아서, 탄력적 IP 주소 할당
을 누른다.
기본적인 옵션을 유지한채 맨 아래 할당
을 누른다.
이 과정까지는 탄력적 IP 주소를 생성한 것이다.(아직 연결된 것은 아님!)
연결하기 위해서는 생성했던 인스턴스를 체크하고 작업
의 탄력적 IP 주소 연결
을 눌러야한다!
이제 다시 인스턴스 목록
페이지로 가보면 원래의 인스턴스 주소가 바뀐 것을 확인할 수 있다👍🏻
이제 서버에 접속해보자!
Mac 기준으로, 터미널을 실행한 뒤 키 페어 .pem
파일을 저장해둔 위치로 가서
➡️ chmod 400 [파일이름].pem
➡️ ssh -i [파일이름].pem ubuntu@[탄력적IP주소]
명령어를 입력해 접속 확인을 한다.
중간에 연결을 계속할 것이냐는 질문에는 yes
를 입력해 계속 진행하면 된다.
이제 본 과정에서 사용할 서버인 Nginx
를 설치해보자!
Nginx
는 HTTP 프로토콜을 사용하여 웹 서버의 기능을 한다.
➡️ sudo apt-get update
,
➡️ sudo apt-get upgrade
명령어 실행 후
➡️ sudo apt-get install nginx
명령어를 통해 nginx
를 설치한다.
/var/www/html
디렉토리의 내용을 보면 index.nginx-debian.html
이라는 파일이 있다.
nginx
는 이러한 정적 파일과 같이 서버 안에 저장되어있는 파일을 네트워크를 통해 우리가 받아볼 수 있도록 전달해주는 역할을 한다.
새로운 파일을 만들어 확인해보기 위해 default 페이지인 index.nginx-debian.html
파일은 삭제하자.
그리고 index.html
이라는, 간단히 이름을 출력하는 html
파일을 만들어보자.
브라우저를 열어 주소창에 탄력적 IP 주소를 입력하면 위와 같이 우리의 서버에 있던 html
파일이 네트워크를 통해 브라우저로 보이게 된다.
정리하자면, 이 브라우저가 클라이언트로서 우분투 서버에 IP 주소를 통해 요청을 했고
nginx
는 그 요청을 받아 해당 html
파일을 응답으로 제공을 한 것이다.
이렇게 이번 포스팅에서는 AWS를 활용해 클라우드 컴퓨팅 실습을 진행해보았다!
코드프레소 홈페이지(https://www.codepresso.kr/)에는 오늘 포스팅한 클라우드 컴퓨팅 관련 강의뿐만 아니라 다양한 강의들이 개설되어 있으니 모두 한번 씩 살펴보고 수강해보면 좋을 것 같다😃