먼저 인스턴스의 뜻부터 알아보겠습니다.
인스턴스란?
- 어떠한 개념에 대하여 실질적인 값이나 개체, 객체를 형성하는 것을 아우르는 단어
- 객체 지향 프로그래밍에서는 인스턴스가 객체를 의미하거나 EC2에서는 인스턴스가 가상서버를 의미
EC2에서 인스턴스는 크게 2가지로 나뉩니다.
EBS(Amazon Elastic Block Store) 기반 인스턴스 : 중지 및 재부팅이 가능함.
인스턴스 스토어 기반 인스턴스 : 중지가 불가능하며 재부팅은 가능함.
이러한 인스턴스를 구입하는데 옵션은 여러가지가 있지만 몇가지에 대해서만 말하겠습니다.
온디맨드 인스턴스 : 시간 단위로 과금이 이루어지며 공용 인스턴스에서 자신의 할당량을 사용하는 것입니다.
예약 인스턴스 : 1년 또는 3년 단위로 예약하여 사용함으로 가격이 대폭 할인되어 장기적으로 사용하는것이 좋습니다.
스팟 인스턴스 : 경매 방식으로 과금이 이루어지며 미사용 EC2 인스턴스를 요청하면 비용을 대폭 줄일 수 있습니다.
전용 인스턴스 : 자신만이 사용할 수 있는 인스턴스로 보안이 중요시하게 여겨지는 업무에 사용하는것이 좋습니다.
시작하기전에 이번 주에 다뤄볼 서비스에 대해서 간단하게 알아보겠습니다.
VPC(Virtual Private Cloud)란?
- 자신만의 가상 클라우드를 만들어 그 안에 인스턴스를 생성해서 작동할 수 있습니다.
- VPC별로 네트워크를 구성할 수 있고 각 VPC마다 네트워크 설정을 다르게 줄 수 있습니다.
- 클라우드를 퍼블릭과 프라이빗 영역으로 분리할 수 있도록 해주기에 유용합니다.
SSH(Secure Shell)란?
- 두 컴퓨터 간 통신을 할 수 있게 해주는 하나의 데이터 양식과 규칙 즉 프로토콜입니다.
- SSH를 이용한 통신은 암호화 되어있기에 안전하다는 장점이 있습니다.
- 암호화 종류에는 대칭 암호화, 비대칭 암호화, 해시함수를 이용한 암호화 3개가 있습니다.
이제 AWS-입문(2주차)를 시작하겠습니다.
1. 콘솔에 VPC를 검색하여 서비스를 시작합니다.
2. 상단에 VPC 마법사 시작을 클릭합니다.
3. 단일 퍼블릭 서브넷이 있는 VPC를 선택합니다.
4. VPC설정을 아래와 같이 입력한후 VPC를 생성합니다.
5. 왼쪽 메뉴에서 VPC를 누르면 아래 사진처럼 SecondVPC가 만들어진 것을 볼 수 있습니다.
6. 그 후 1주차에 했던것처럼 EC2에서 인스턴스를 생성하지만 중간에 수정을 해줍니다.
7. 인스턴스 세부 정보 구성으로 들어가 3단계인 인스턴스 구성에서 네트워크를 SeconVPC로 한 후 퍼블릭 IP 자동 할당을 활성화 해줍니다.
8. 스크롤을 내려 밑에 있는 고급 세부정보에서 밑과 같이 입력해줍니다.
이 부분의 뜻은 인스턴스를 생성할 경우 자동으로 사용자 데이터에 있는 명령들을 실행한다는 의미입니다.
9. 5단계 태그추가로 들어가 키: Name, 값: WebSrv로 태그를 추가합니다.
10. 다음 보안그룹 구성에는 SSH와 HTTP를 사용할 것이기에 규칙을 만들어주고 실습을 편하게 하기위해 위치무관으로 설정해줍니다.
11. 계속해서 진행하다가 키페어 선택관련에선 1주차에 만들어놓은 키페어를 선택하고 체크칸에 체크한 후 진행합니다.
12. 이제 자신의 PC에서 SSH로 인스턴스의 퍼블릭 IP로 접속해보겠습니다.
편하게 하기 위해서 Xshell프로그램을 이용하여 접속하겠습니다.
13. Xshell7버전을 이용하면 첫 화면에서 이름을 EC2로 설정하고 호스트에는 자신이 만들었던 EC2의 퍼블릭 IP를 작성합니다.
14. 사용자 인증탭에서 사용자 이름을 ec2-user로 설정하고 퍼블릭 키를 체크한다음 생성합니다.
15. 연결이 잘 되었다면 1주차에 봤었던 밑의 사진과 유사한 화면이 나오게 됩니다.
16. 그 후 저희가 만든 EC2 서버에 파일을 전송할 때 쓸 수단은 SCP(secure copy)입니다.
SCP는 간단하게 말해 두 개의 호스트 간에 파일을 전송하는 수단이며 FileZilla를 사용하겠습니다.
17. FIleZilla를 다운받아 실행한 후 왼쪽 위의 파일메뉴에서 사이트 관리자를 클릭합니다.
18. New site로 프로토콜을 SFTP로 설정하고 호스트에는 자신이 만든 EC2의 퍼블릭 IP를 작성합니다.
사용자명은 ec2-user로 설정하고 키파일은 1주차에 만든 키페어 파일을 찾아서 넣은 후 연결합니다.
19. 그후 오른쪽 리모트 사이트에서 /home/ec2-user로 이동한 후 왼쪽 탐색기에 자신이 원하는 이미지 파일을 선택한 후 오른쪽 키를 눌러 업로드 시킵니다.
20. 자신의 EC2서버가 잘 작동하는지 확인하기 위해서는 웹 페이지 주소에 자신의 퍼블릭 IP주소를 넣으면 8번에서 작성한 문구 중 빨간 박스안의 내용이 떠야 정상으로 작동하는 것입니다.
21. 이제 FileZilla 오른쪽 리모트 사이트 /home/ec2-user안에 자신이 원하는 이미지 파일이 들어가 있다면 이제 그것을 웹 페이지에 출력해보겠습니다.
22. SSH인 Xshell에서 아래와 같이 코딩을 합니다.
(sudo) mv /home/ec2-user/파일이름 /var/www/hyml
(sudo) nano /var/www/html/index.html
편집기에서 맨 밑줄에다가 다음을 적습니다
<img src='파일이름'>
그 후 밑에 명령어에 따라 저장하고 탈출합니다.
(sudo)는 permission 에러가 났을경우 사용합니다.
23. 다시 자신의 퍼블릭 IP를 웹 주소에 넣고 들어가보면 자신의 이미지파일이 출력되는 것을 볼 수 있습니다.
24. 추가적으로 AWS CloudWatch를 간단하게 사용해보겠습니다.
25. AWS 콘솔창에서 CloudWatch 서비스를 실행한 후 왼쪽 메뉴 경부에서 경보생성버튼을 클릭합니다.
26. 밑에 지표에서 EC2 -> 인스턴스별 지표 -> 지표이름인 CPUUtilization을 검색하여 찾은 후 다음을 클릭합니다.
이때 인스턴스 ID가 자신이 만든 EC2의 인스턴스 ID가 같아야 정상적으로 작동합니다.
27. 아래에 기간은 자신이 경보를 울릴지 체크하는 간격을 말합니다.
1분부터는 비용이 청구되기에 5분으로 설정합니다.
28. 밑의 조건에서는 자신의 EC2가 어느정도 이상으로 사용되면 경보를 울릴지 결정하기에 50으로 설정합니다.
29. 다음을 클릭한 후 새로운 주제로 체크하고 주제를 아래와 같이 작성한 후 자신이 경보를 받을 이메일로 설정해주고 주제를 생성합니다.
30. 자신이 설정한 메일주소로 경보를 허가할건지에 대해한 메일이 전송됩니다. 꼭 컨펌을 누른 후 그 다음은 패스합니다.
31. 이제 아까 사용했던 SSH인 Xshell에서 아래와 같이 코드를 실행합니다.
CPU 부하 tool 설치
sudo amazon-linux-extras install -y epel
sudo yum install -y stress-ng
stress-ng -h
CPU부하 발생 코드
sudo stress-ng --cpu 1 --cpu-load 70% --timeout 10m --metrics --times --verify
32. 시간이 지나면 경보알람 메일이 전송되며 AWS CloudWatch에서도 확인할 수 있습니다.
다소 시간이 걸릴 수 있으며 gmail의 경우에는 일반 메일함이 아닌 프로모션 메일함에 전송될 수 있습니다.
33. 1주차와 마찬가지로 경보도 삭제해주고 EC2도 사용이 끝났다면 중지 후 종료하는 것을 권장하겠습니다.
이로서 1주차와는 달리 자신이 원하는 이미지 파일을 웹 페이지에 출력할 수 있고 조금 더 안전하게 데이터를 주고 받을 수 있는 SSH를 사용해보았습니다.
만약 간단하게 친구들에게 어떠한 사진을 보여주고 싶을때 카카오톡이 없다면 이런식으로 자신의 가상 서버 EC2에 이미지 파일을 올린 후 친구들에게 서버 IP를 알려주면 볼 수 있게끔 할 수 있습니다.
앞으로도 계속해서 꾸준히 작성하도록 노력하겠습니다.
'AWS > 실습(입문)' 카테고리의 다른 글
AWS-입문(6주차) 데이터베이스 서비스 (1) | 2021.07.15 |
---|---|
AWS-입문(5주차) 보안 서비스 (0) | 2021.07.12 |
AWS-입문(4주차) 스토리지 서비스 (0) | 2021.07.01 |
AWS-입문(3주차) 네트워킹 서비스 (0) | 2021.06.28 |
AWS-입문(1주차) EC2 배포 (0) | 2021.06.12 |