소개
EC2의 웹 규칙을 제거하고 복원하여 실제 연결을 관찰하며 SSH 규칙을 유지합니다.
앞선 포트폴리오 실습을 먼저 완료하세요. 새 환경에는 앞 단계의 기능과 별도 리소스가 준비되어 있습니다. 이전 서버, 파일이나 자격 증명을 보관할 필요가 없습니다.
자격 시험과 연결
| 자격 | 시험 과제 | 실습 내용 |
|---|---|---|
| AWS Certified Cloud Practitioner (CLF-C02) | Task 3.5 | 보안 그룹으로 EC2 연결을 제어합니다. |
실습 개요

차단된 연결 관찰하기
이 단계에서는 웹사이트 규칙만 제거하고 페이지 응답과 서버 상태를 비교합니다.
이번 실습은 새 서버를 제공합니다. 변경하기 전에 현재 AWS View에서 사이트를 열고 Alex Morgan을 확인하세요. Terminal로 돌아와 프로젝트로 이동합니다.
cd /home/labex/project
앞에서처럼 source로 현재 서버의 식별자를 읽습니다. 변경할 그룹인 SECURITY_GROUP_ID를 표시하세요.
source website.env
echo "$SECURITY_GROUP_ID"
보안 그룹은 인스턴스의 네트워크 연결을 제어합니다. 인바운드 규칙은 들어오는 연결을 허용합니다. 포트는 연결을 받는 서비스를 나타냅니다. SSH는 22, 이 HTTP 사이트는 8081을 사용합니다. 다른 사이트는 보통 HTTP 80이나 HTTPS 443을 쓰지만 여기서는 이 애플리케이션의 포트를 사용합니다.
변경하기 전에 그룹을 읽어 보세요.
첫 실습에서처럼 --query는 응답의 일부를 선택합니다. 여기서는 첫 그룹의 인바운드 규칙인 SecurityGroups[0].IpPermissions만 보여 주므로 필요한 두 권한에 집중할 수 있습니다.
aws ec2 describe-security-groups \
--group-ids "$SECURITY_GROUP_ID" \
--query 'SecurityGroups[0].IpPermissions'
출력에는 인바운드 규칙만 표시됩니다. FromPort와 ToPort는 포트 범위입니다. 22와 8081의 두 규칙을 찾으세요. 출발지 198.51.100.10/32는 실습에 준비된 방문자이며 /32는 하나의 IPv4 주소를 뜻합니다. 개인 PC의 공인 주소가 아니므로 제공된 값을 유지하세요.
사이트 권한만 제거합니다. revoke-security-group-ingress는 일치하는 규칙을 제거합니다. --protocol tcp는 프로토콜, --port 8081은 웹 서비스, --cidr는 허용된 출발지를 선택합니다.
aws ec2 revoke-security-group-ingress \
--group-id "$SECURITY_GROUP_ID" \
--protocol tcp \
--port 8081 \
--cidr 198.51.100.10/32
응답으로 변경을 확인한 뒤 사이트를 새로고침하세요. Website connection unavailable이 표시되어도 AWS View의 인스턴스는 계속 running입니다.


애플리케이션을 제거하거나 서버를 멈춘 것이 아닙니다. 네트워크 규칙이 연결을 막은 것입니다. 보안 그룹은 허용된 연결을 추적하며, 이번 실습의 새 요청으로 변경한 규칙을 확인합니다. 별도의 SSH 규칙은 유지하세요.
웹사이트 접근 복원하기
이 단계에서는 필요한 권한을 복원하고 애플리케이션이 다시 응답하는지 확인합니다.
authorize-security-group-ingress는 인바운드 규칙을 추가합니다. 같은 그룹, TCP 포트, 준비된 방문자 주소를 사용하세요.
aws ec2 authorize-security-group-ingress \
--group-id "$SECURITY_GROUP_ID" \
--protocol tcp \
--port 8081 \
--cidr 198.51.100.10/32
사이트를 새로고침하면 Alex Morgan과 세 작품이 다시 표시되어야 합니다. 재설치나 서버 재시작은 필요 없습니다. 설정도 확인하도록 그룹을 다시 읽으세요.

aws ec2 describe-security-groups \
--group-ids "$SECURITY_GROUP_ID" \
--query 'SecurityGroups[0].IpPermissions'
웹사이트 8081 규칙과 변경하지 않은 SSH 22 규칙을 확인하세요. 둘 다 198.51.100.10/32를 사용합니다. 0.0.0.0/0은 모든 IPv4 출발지를 허용하므로 너무 넓습니다. 추가 권한 대신 지정 출발지를 복원하세요.
설정과 실제 결과를 모두 확인했습니다. 필요한 규칙이 있고 방문자 요청도 성공합니다. 다음 실습은 새 사이트를 제공하고 작품 자료를 위한 비공개 저장소를 다룹니다.
요약
웹사이트 규칙을 제거하고 복원하면서 실제 실패와 회복을 관찰하고 SSH를 유지했습니다. 실행 중인 서버와 접근 가능한 애플리케이션을 구분하고 권한이 지정 방문자에게만 적용되는지 확인했습니다.
공식 문서: security group rules.



