Amazon EC2 모범 사례
Amazon EC2 모범 사례
Amazon EC2를 정말 제대로 활용하려면 몇 가지 모범 사례를 따라야 해요. AWS가 공식적으로 권장하는 체크리스트를 정리해 봤는데, 보안·스토리지·리소스 관리·백업·네트워킹 순서로 하나씩 살펴볼게요.
출처: 문서
본문
보안 (Security)
- 가능하면 자격 증명 공급자(identity provider)와 IAM 역할을 이용해 AWS 리소스와 API에 대한 접근을 **자격 증명 페더레이션(identity federation)**으로 관리해요. 자세한 내용은 IAM 사용 설명서의 Identity providers and federation 문서를 참고하세요.
- 보안 그룹(security group)에는 **최소 권한 원칙(least permissive)**을 적용하세요.
- 인스턴스의 운영 체제와 애플리케이션을 정기적으로 패치·업데이트하고 보안을 유지하세요. 자세한 내용은 Update management, Windows 전용 가이드는 Security best practices for Windows instances 문서를 참고하세요.
- Amazon Inspector를 사용하면 EC2 인스턴스의 소프트웨어 취약점과 의도치 않은 네트워크 노출을 자동으로 발견하고 스캔해 줘요. 자세한 내용은 Amazon Inspector 사용 설명서를 참고하세요.
- AWS Security Hub CSPM 컨트롤을 이용해 보안 모범 사례와 보안 표준에 맞춰 EC2 리소스를 모니터링하세요. Security Hub CSPM 사용법은 AWS Security Hub CSPM 사용 설명서의 Amazon Elastic Compute Cloud controls 문서에서 확인할 수 있어요.
스토리지 (Storage)
- 루트 볼륨 유형이 데이터 영속성·백업·복구에 미치는 영향을 이해해야 해요. 자세한 내용은 Root volume type 문서를 참고하세요.
- 운영 체제용 볼륨과 데이터용 볼륨을 별도의 Amazon EBS 볼륨으로 분리하세요. 데이터가 담긴 볼륨은 인스턴스가 종료된 뒤에도 유지되도록 해야 해요. 자세한 내용은 Preserve data when an instance is terminated 문서를 참고하세요.
- 임시 데이터는 인스턴스에 제공되는 **인스턴스 스토어(instance store)**를 사용하세요. 인스턴스 스토어의 데이터는 인스턴스를 중지·최대 절전·종료하면 삭제된다는 점을 꼭 기억하세요. 인스턴스 스토어를 데이터베이스 저장소로 쓴다면 장애 허용(fault tolerance)을 보장하는 복제 계수를 가진 클러스터를 구성해야 해요.
- EBS 볼륨과 스냅샷을 암호화하세요. 자세한 내용은 Amazon EBS 사용 설명서의 Amazon EBS encryption 문서를 참고하세요.
리소스 관리 (Resource management)
- 인스턴스 메타데이터와 커스텀 리소스 태그를 사용해 AWS 리소스를 추적하고 식별하세요. 자세한 내용은 Use instance metadata to manage your EC2 instance와 Tag your Amazon EC2 resources 문서를 참고하세요.
- Amazon EC2의 현재 한도(limits)를 확인하고, 필요해지기 전에 미리 한도 증가를 요청하세요. 자세한 내용은 Amazon EC2 service quotas 문서를 참고하세요.
- AWS Trusted Advisor를 사용해 AWS 환경을 점검하고, 비용 절감·시스템 가용성과 성능 개선·보안 공백 해소 기회가 있을 때 추천을 받아보세요. 자세한 내용은 AWS Support 사용 설명서의 AWS Trusted Advisor 문서를 참고하세요.
백업과 복구 (Backup and recovery)
- Amazon EBS 스냅샷으로 EBS 볼륨을 정기적으로 백업하고, 인스턴스에서 **AMI(Amazon Machine Image)**를 만들어 향후 인스턴스 실행을 위한 템플릿으로 구성을 보존하세요. 이 사용 사례를 돕는 AWS 서비스는 AWS Backup과 Amazon Data Lifecycle Manager 문서를 참고하세요.
- 애플리케이션의 중요 구성 요소를 **여러 가용 영역(Availability Zone)**에 배포하고 데이터도 적절히 복제하세요.
- 인스턴스 재시작 시 동적 IP 주소 지정을 처리하도록 애플리케이션을 설계하세요. 자세한 내용은 Amazon EC2 instance IP addressing 문서를 참고하세요.
- 이벤트를 모니터링하고 대응하세요. 자세한 내용은 Monitor Amazon EC2 resources 문서를 참고하세요.
- **장애 조치(failover)**에 대비하세요. 기본적인 해결책으로 대체 인스턴스에 네트워크 인터페이스나 탄력적 IP 주소를 수동으로 연결할 수 있어요. 자세한 내용은 Elastic network interfaces 문서를 참고하세요. 자동화된 솔루션은 Amazon EC2 Auto Scaling을 사용하면 돼요. 자세한 내용은 Amazon EC2 Auto Scaling 사용 설명서를 참고하세요.
- 인스턴스와 EBS 볼륨을 복구하는 과정을 정기적으로 테스트해서 데이터와 서비스가 성공적으로 복원되는지 확인하세요.
네트워킹 (Networking)
- 애플리케이션의 TTL(time-to-live) 값을 IPv4와 IPv6 모두 255로 설정하세요. 더 작은 값을 쓰면 애플리케이션 트래픽이 전송 중에 TTL이 만료되어 인스턴스에 연결할 수 없는 문제가 생길 수 있어요.