Amazon EC2는 클라우드에서 컴퓨팅 용량을 자유자재로 변경할 수 있는 웹 서비스입니다. 이 서비스는 웹 규모의 클라우드 컴퓨팅 사용을 직관적으로 간소화하도록 설계되었습니다. Amazon EC2는 새로운 서버 인스턴스에 빠르게 액세스하고 컴퓨팅 요구 사항의 변화에 따라 용량의 크기를 신속하게 조정할 수 있습니다.
목표
- 종료 방지 기능이 활성화된 웹 서버를 시작합니다.
- EC2 인스턴스를 모니터링합니다.
- 웹 서버가 HTTP 액세스를 허용할 때 사용하는 보안 그룹을 수정합니다.
- 규모에 맞게 Amazon EC2 인스턴스의 크기를 조정합니다.
- 종료 방지 기능을 테스트합니다.
- EC2 인스턴스를 종료합니다.
과제 1. EC2 인스턴스 시작
이 태스크에서는 종료 방지 기능을 갖춘 EC2 인스턴스를 시작합니다. 종료 방지 기능은 EC2 인스턴스를 실수로 종료하는 것을 방지합니다. 간단한 웹 서버를 배포하는 사용자 데이터 스크립트를 사용하여 인스턴스를 배포할 수도 있습니다.
1단계: EC2 인스턴스의 이름 지정
태그를 사용하면 용도, 소유자 또는 환경 등을 기준으로 AWS 리소스를 다양한 방식으로 분류할 수 있습니다. 이러한 범주화는 동일한 유형의 많은 리소스를 가지고 있을 때 유용합니다. 리소스에 할당한 태그를 기반으로 특정한 리소스를 신속하게 식별할 수 있습니다. 각 태그는 사용자가 정의한 키와 값으로 구성됩니다.
인스턴스의 이름을 지정할 때 AWS는 키-값 페어를 생성합니다.
이러한 페어의 키는 Name이며, 값은 EC2 인스턴스에 입력하는 이름입니다.
1. Name and tags 창의 Name 텍스트 상자에 Web-Server라고 입력.
2. Add additional tags 링크를 선택합니다.
3. Resource types 드롭다운 목록에서, Instances가 기본값으로 선택됩니다. 선택된 인스턴스를 종료하고 Volumes를 선택합니다.
2단계: AMI 선택
Amazon Machine Image(AMI)는 클라우드의 가상 서버인 인스턴스를 시작하는 데 필요한 정보를 제공합니다.
AMI에는 다음이 포함됩니다.
- 인스턴스를 시작하기 위해 AMI를 사용할 수 있는 AWS 계정을 제어하는 시작 권한
- 인스턴스의 루트 볼륨에 대한 템플릿(예: 확실히 설치된 운영 체제 또는 사전 구성 운영 체제)
- 시작될 때 인스턴스에 연결할 볼륨을 지정하는 블록 디바이스 매핑
Quick Start 목록에는 가장 일반적으로 사용되는 AMI가 포함됩니다. 자체 AMI를 생성하거나, AWS에서 실행되는 소프트웨어를 판매 또는 구매할 수 있는 온라인 저장소인 AWS Marketplace에서 AMI를 선택할 수도 있습니다.
4. Application and OS Images(Amazon Machine Image) 섹션에서 검색 상자에서 Windows Server 2019 Base를 검색 후
선택합니다.
3단계: 인스턴스 유형 선택
Amazon EC2는 각 사용 사례에 맞게 최적화된 다양한 인스턴스 유형을 제공합니다. 인스턴스 유형은 CPU, 메모리, 스토리지 및 네트워킹 용량의 다양한 조합으로 구성되며, 애플리케이션에 따라 적합한 리소스 조합을 선택할 수 있는 유연성을 제공합니다. 각 인스턴스 유형은 하나 이상의 인스턴스 크기를 포함하고 있어 대상 워크로드의 요구 사항에 따라 리소스의 크기를 조정할 수 있습니다.
이 단계에서 t2.micro 인스턴스(가상 CPU 1개와 1GiB 메모리)를 선택합니다.
4단계: 키 페어 구성
Amazon EC2는 퍼블릭 키 암호화 기법을 사용하여 로그인 정보를 암호화하고 복호화합니다. 이 인스턴스에 로그인하려면 키 페어를 생성하고, 인스턴스를 시작할 때 키 페어의 이름을 지정하고, 인스턴스에 연결할 때 프라이빗 키를 제공합니다.
5. Key pair(login) 섹션의 드롭다운 목록에서 Proceed without a key pair(not recommended)를 선택합니다.
5단계: 네트워크 설정 구성
Virtual Private Cloud(VPC)는 사용자가 인스턴스를 시작할 때 사용하려는 VPC를 나타냅니다. 개발, 테스트 및 프로덕션을 위한 서로 다른 네트워크를 포함하여 여러 개의 VPC를 사용할 수 있습니다.
*VPC : 자체 데이터 센터에서 운영하는 기존 네트워크와 아주 유사한 가상 네트워크. VPC를 생성한 후 서브넷을 추가할 수 있음
6. Network settings 섹션에서 Edit.
7. VPC - required 드롭다운 목록에서 Lab VPC를 선택합니다.
Lab VPC는 시뮬레이션의 설정 도중에 AWS CloudFormation 템플릿을 사용하여 생성되었습니다. 이 VPC에는 서로 다른 두 가용 영역에 있는 퍼블릭 서브넷 2개가 포함되어 있습니다.
*AWS CloudFormation : AWS 리소스를 모델링하고 설정하여 리소스 관리 시간을 줄이고 AWS에서 실행되는 애플리케이션에 더 많은 시간을 사용하도록 해 주는 서비스
8. Firewall(security groups)에서 Select existing security group을 선택합니다.
9. Common security groups에서, Web Server security group을 선택합니다.
보안 그룹은 하나 이상의 인스턴스에 대한 트래픽을 제어하는 가상 방화벽 역할을 합니다. 인스턴스를 시작할 때 1개 이상의 보안 그룹을 인스턴스와 연결합니다. 연결된 인스턴스와 트래픽을 주고받을 수 있게 하는 규칙을 각 보안 그룹에 추가합니다. 언제든지 보안 그룹에 대한 규칙을 수정할 수 있습니다. 새 규칙은 보안 그룹과 연결된 모든 인스턴스에 자동으로 적용됩니다.
6단계: 스토리지 추가
Amazon EC2는 Amazon Elastic Block Store(Amazon EBS)라고 하는 네트워크 연결 가상 디스크에 데이터를 저장합니다. 기본 30GiB 디스크 볼륨을 사용하여 EC2 인스턴스를 시작합니다. 이 저장공간이 루트 볼륨(부트 볼륨)입니다.
7단계: 고급 세부 정보 구성
10. Advanced Details 섹션을 확장합니다.
11. IAM instance profile에서 LabStack으로 시작하는 이름의 역할을 선택합니다.
EC2 인스턴스가 더 이상 필요하지 않으면 인스턴스를 종료할 수 있습니다. 즉, 인스턴스가 중지되고 Amazon EC2 인스턴스의 리소스를 해제합니다. 종료된 인스턴스는 다시 시작할 수 없습니다. 사용자가 실수로 인스턴스를 종료하지 못하도록 하려면 인스턴스에 종료 방지 기능을 활성화하여 인스턴스가 종료되지 않도록 하면 됩니다.
12. Termination protection 드롭다운 목록에서 Enable을 선택합니다.
Amazon EC2 인스턴스를 시작할 때 사용자 데이터를 인스턴스에 전달하는 옵션이 있습니다. 이러한 명령은 일반적인 자동화 태스크를 수행하는 데 사용할 수 있으며 심지어 인스턴스가 시작된 후 스크립트를 실행할 수도 있습니다.
13. 다음 명령을 복사하고 User data 텍스트 상자에 붙여 넣습니다.
- Microsoft Internet Information Services(IIS) 웹 서버 설치
- 간단한 웹 사이트 생성
- 관리자 사용자용 암호 설정
8단계: EC2 인스턴스 시작
14. Launch instance를 눌러 인스턴스를 시작합니다
15. Web-Server 옆에 있는 체크박스를 선택하면 Details 탭이 표시됩니다. 인스턴스의 세부 정보가 표시되는 Details 탭을 검토합니다. 인스턴스에서 수신하는 퍼블릭 DNS 이름은 사용자가 인터넷에서 해당 인스턴스에 접속할 때 사용됩니다.
22. Security, Networking 탭을 선택하고 확인할 수 있는 정보를 검토합니다.
인스턴스에는 다음이 표시되어야 합니다.
• Instance State: Running
• Status Checks: 2/2 checks passed
과제 2: 인스턴스 모니터링
모니터링은 EC2 인스턴스 및 AWS 솔루션의 신뢰성, 가용성 및 성능을 유지하는 데 있어서 중요한 부분입니다.
1. Status and alarms를 선택하면 확인할 수 있는 정보를 검토할 수 있습니다.
인스턴스 상태를 모니터링하면 Amazon EC2에서 인스턴스가 애플리케이션이 실행되지 못하도록 막는 문제를 감지했는지 빠르게 확인할 수 있습니다. Amazon EC2는 실행 중인 모든 EC2 인스턴스에 대해 자동 검사를 수행하여 하드웨어 및 소프트웨어 문제를 파악합니다.
System reachability 및 Instance reachability 검사를 모두 통과했다는 것을 확인할 수 있습니다.
2. Monitoring 탭
이 탭에는 인스턴스에 대한 Amazon CloudWatch 지표가 표시됩니다. Amazon EC2는 지표를 EC2 인스턴스에 대한 Amazon CloudWatch로 전송합니다. 기본(5분) 모니터링이 기본값으로 활성화되고 이는 무료입니다. 세부(1분) 모니터링을 활성화할 수도 있습니다. 세부 모니터링을 사용하면 CloudWatch로 전송하는 지표당 요금이 부과됩니다.
* Amazon CloudWatch : AWS 리소스와 AWS에서 실행되는 애플리케이션을 실시간으로 모니터링합니다.
CloudWatch를 사용하여 리소스 및 애플리케이션에 대해 측정할 수 있는 변수인 배열을 수집하고 추적할 수 있습니다.
3. 페이지 상단에서 Actions에서 Monitor and troubleshoot, Get system log를 선택
시스템 로그에는 문제 진단에 유용한 도구인 인스턴스의 콘솔 출력이 표시됩니다. 이는 인스턴스가 종료되거나 연결에 실패하는 서비스 구성 문제를 해결하는 데 특히 유용합니다. 시스템 로그를 볼 수 없는 경우 몇 분 기다린 뒤에 다시 시도합니다.
4. Web-Server를 선택한 상태에서 Actions 드롭다운 목록을 선택하고 Monitor and troubleshoot, Get instance screenshot을 선택
이 옵션은 화면이 연결될 경우 표시되는 EC2 인스턴스 콘솔의 모습을 보여줍니다. Windows 인스턴스이기 때문에 스크린샷은 로그인 화면을 보여줍니다.
SSH 또는 RDP를 통해 인스턴스에 연결할 수 없는 경우 인스턴스의 스크린샷을 캡처하여 이미지로 볼 수 있습니다. 이 옵션을 사용하면 인스턴스 상태에 관한 가시성을 확보하여 더 빠르게 문제를 해결할 수 있습니다.
SSH : 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜
RDP : 원격 데스크톱 프로토콜, 네트워크를 통해 한 컴퓨터에서 다른 컴퓨터의 데스크톱 환경을 원격으로 제어할 수 있게 한다.
과제 3: 보안 그룹 업데이트 및 웹 서버 액세스
EC2 인스턴스를 시작할 때 웹 서버를 설치하고 간단한 웹 페이지를 생성한 스크립트를 제공했습니다. 이 과정에서는 웹 서버의 콘텐츠에 액세스합니다.
보안 그룹이 HTTP 웹 요청에 사용되는 포트 80에서 인바운드 트래픽을 허용하지 않기 때문에 현재로서는 웹 서버에 액세스할 수 없습니다. 이 다음 단계는 보안 그룹을 방화벽으로 사용하여 인스턴스 안과 밖에서 허용되는 네트워크 트래픽을 제한하는 방법을 안내합니다.
이 문제를 해결하기 위해 이제 포트 80에서 웹 트래픽을 허용하도록 보안 그룹을 업데이트하겠습니다.
1. 왼쪽 탐색 창에서 Security groups를 선택, Web Server security group 옆에 있는 확인란을 선택
2. Inbound rules 탭을 선택합니다.
3. Edit inbound rules, Add rule을 차례로 선택하여 다음과 같이 구성합니다.
- Type: HTTP
- Source: Anywhere-IPv4
라이브 환경에서는 퍼블릭 IPv4 주소를 복사하여 브라우저에 붙여넣어 SG 및 사용자 데이터 스크립트가 배포되도록 할 수 있습니다.
과제 4: AWS Systems Manager의 Fleet Manager를 사용하여 인스턴스에 연결
AWS Systems Manager의 Fleet Manager 기능을 사용하면 관리형 노드를 원격으로 관리 및 구성할 수 있습니다. 관리형 노드는 Systems Manager용으로 구성된 모든 시스템입니다.
Fleet Manager의 한 가지 편리한 기능은 브라우저를 사용하여 EC2 인스턴스에 연결하는 기능입니다. 이 태스크에서는 Fleet Manager를 사용하여 Windows 데스크톱에 연결합니다.
1. Systems Manager를 검색 후 왼쪽 탐색 창에서 Fleet Manager를 선택
2. Web-Server EC2 인스턴스를 선택 후 노드 작업 드롭다운 목록에서 Connect를 선택하고, Connect with Remote Desktop을 선택합니다.
3. 유저 이름과 비밀번호 설정후 연결
몇 초 후 창에 Windows 데스크톱이 표시됩니다. 로컬 컴퓨터와 같이 이 데스크톱을 탐색할 수 있습니다. Amazon EC2를 사용하면 신속하게 컴퓨팅 리소스를 액세스할 수 있습니다. 물리적인 하드웨어를 구매하여 운영 체제를 구성하는 대신 EC2 인스턴스를 시작하기만 하면 되고, 이 모든 작업이 몇 분 내에 자동으로 이루어집니다.
과제 5: 인스턴스 크기 조정
요구 사항의 변경에 따라 인스턴스의 사용률이 과도하게 높거나(과소 인스턴스) 현저히 낮은(과대 인스턴스)
경우가 있습니다. 이런 경우 인스턴스 유형을 변경할 수 있습니다.
인스턴스 중지
인스턴스 크기를 조정하려면 먼저 인스턴스를 중지해야 합니다. 중지하는 인스턴스는 종료됩니다. 중지된 EC2 인스턴스에는 요금이 부과되지 않지만, EBS 볼륨에 연결된 스토리지 비용은 그대로 청구됩니다.
1. EC2 Management Console의 왼쪽 탐색 창에서 Instances를 선택합니다.
2. Web-Server 인스턴스 옆에 있는 확인란을 선택합니다. 페이지 상단에서 Instance state 드롭다운 목록을 선택하고 Stop instance를 선택합니다.
인스턴스가 정상적으로 종료되어 실행이 중지됩니다.
3. Instance State에 Stopped가 표시될 때까지 기다립니다.
인스턴스 유형 변경
Web-Server 옆에 있는 확인란을 선택합니다. Actions 드롭다운 목록에서 Instance settings, Change instance type을 선택하고, 인스턴스 타입을 t2.nano로 변경합니다
크기가 조정된 인스턴스 시작
인스턴스를 다시 시작하면 t2.nano 인스턴스가 사용됩니다. 이제 인스턴스를 다시 시작합니다. 이 인스턴스는 메모리는 더 적지만, 디스크 공간은 더 넓습니다.
'Web-Server' 선택하고 Instance state 에서 Start instance를 선택
인스턴스를 다시 시작하면 Instance state가 Running으로 표시됩니다.
과정 6: 종료 방지 테스트
더 이상 필요하지 않은 인스턴스는 삭제할 수 있습니다. 이것을 인스턴스의 영구 종료라고 합니다. 인스턴스기 종료된 후에는 인스턴스에 다시 연결하거나 재시작할 수 없습니다. 처음 EC2를 사용할 때 중지를 종료로 잘 못 눌러서 실습을 처음부터 한 기억이 있습니다.
1. Web-Server 인스턴스 옆에 있는 확인란을 선택합니다. Instance state 드롭다운 목록에서 Terminate instance를 선택합니다.
종료 방지 기능이 활성화되어 있습니다. 이는 인스턴스가 의도치 않게 종료되는 것을 방지하는 보호 장치입니다. 인스턴스를 종료하려면 종료 방지 기능을 비활성화해야 합니다.
2. Actions 드롭다운 목록에서 Instance settings를 선택한 다음, Change termination protection을 선택하여 체크박스를 해제합니다.
3. 종료 방지 기능을 해제하여 인스턴스 종료 가능하게 되었고, 다시 인스턴스 시작할 수 없습니다.
Amazon EC2의 장점
1. 확장성:
- 자동 확장: 사용자의 수요에 맞추어 자동으로 인스턴스를 추가하거나 제거할 수 있습니다.
- 탄력적 크기 조정: 필요에 따라 인스턴스 크기를 쉽게 조정할 수 있습니다.
2. 비용 효율성:
- 종량제 요금: 사용한 만큼만 비용을 지불하는 구조로, 초기 투자 비용이 없습니다.
- 절약 계획: 예약 인스턴스와 스팟 인스턴스를 통해 비용을 절감할 수 있습니다.
3. 유연성:
- 다양한 인스턴스 유형: 다양한 용도의 인스턴스 유형을 제공하여, 컴퓨팅, 메모리, 스토리지, 네트워크 요구사항에 맞게 선택할 수 있습니다.
- 다양한 운영체제 지원: Windows, Linux, macOS 등 여러 운영체제를 지원합니다.
4. 글로벌 인프라:
- 다양한 리전과 가용 영역: 전 세계 여러 리전과 가용 영역을 통해 높은 가용성과 낮은 지연 시간을 제공합니다.
5. 보안:
- 강력한 보안 기능: VPC, 보안 그룹, IAM 등을 통해 네트워크 보안 및 사용자 접근 제어가 가능합니다.
- 컴플라이언스: 다양한 글로벌 규제 및 산업 표준에 대한 컴플라이언스를 제공합니다.
6. 통합 서비스:
- AWS 서비스와 통합: Amazon S3, RDS, Lambda 등 다른 AWS 서비스와 쉽게 통합하여 사용할 수 있습니다.
Amazon EC2의 단점
1. 비용 관리:
- 비용 예측 어려움: 사용량이 변동하는 경우 비용을 예측하고 관리하는 것이 어려울 수 있습니다.
- 스팟 인스턴스의 불안정성: 스팟 인스턴스는 저렴하지만, 언제든 종료될 수 있는 불확실성이 있습니다.
2. 복잡성:
- 초기 설정 및 관리 복잡성: 처음 사용 시 인프라 설정과 관리가 복잡할 수 있습니다.
- 학습 곡선: AWS 환경과 다양한 서비스에 익숙해지기 위해 학습 시간이 필요합니다.
3. 의존성:
- 클라우드 종속성: 특정 클라우드 서비스에 종속될 경우 벤더 락인(Vendor Lock-in) 문제가 발생할 수 있습니다.
- 인터넷 의존성: 인터넷 연결 상태에 따라 서비스의 접근성과 성능이 영향을 받을 수 있습니다.
4. 성능 문제:
- 다른 사용자와의 자원 공유: 멀티 테넌트 환경에서는 다른 사용자와 자원을 공유하기 때문에 예기치 못한 성능 저하가 발생할 수 있습니다.
5. 지원 비용:
- 추가 지원 비용: AWS의 기본 지원 외에 추가적인 지원을 받으려면 비용이 발생할 수 있습니다.
Amazon EC2는 강력한 확장성과 유연성, 다양한 기능을 제공하지만, 비용 관리와 복잡성, 성능 문제 등도 함께 고려해야 합니다. 적절한 관리와 모니터링을 통해 이러한 단점을 최소화하고, 필요한 컴퓨팅 자원을 효율적으로 활용할 수 있습니다.
'AWS' 카테고리의 다른 글
Introduction to Amazon EC2 (Korean) 실습 및 느낀점 (0) | 2024.05.22 |
---|---|
AWS - 01 AWS 웹 서비스 정리 (0) | 2024.05.01 |