EFS 유지보수 후 NFS I/O 멈춤 현상, Security Group 설정 확인하세요!

by DD
1개월 전
조회수 14

Amazon EFS 유지보수 시, Security Group Outbound 규칙 부재로 인해 NFS I/O가 수 분간 hang되는 문제 발생

TCP RST 패킷 차단이 원인이며, 기본 Outbound 규칙(Allow All) 제거 환경에서만 나타남

tcpdump를 활용한 진단 방법 제시, VPC Flow Logs로는 문제 파악 불가

해결책: EC2 인스턴스 Security Group으로의 All TCP Outbound 규칙 추가

EFS NFS I/O Hang의 기술적 원리

본문은 Amazon EFS 유지보수 시 발생하는 NFS I/O hang 문제의 근본 원인을 TCP 연결(TCP Connection)과 Security Group(Security Group)의 stateful 특성으로 분석한다.

EFS 백엔드 서버 교체 시, 새로운 서버가 클라이언트에 TCP RST 패킷(TCP RST Packet)을 전송하여 재연결을 유도

Security Group의 기본 Outbound 규칙(Allow All)이 제거된 경우, RST 패킷이 차단되어 클라이언트에 도달하지 못함

클라이언트는 연결이 끊긴 것을 인지하지 못하고 재전송을 반복하며, 결국 TCP Keep Alive failure로 I/O hang 발생

결과적으로, Outbound 규칙 부재는 EFS 유지보수 시 예상치 못한 장애(Unexpected Failure)를 유발할 수 있다.

tcpdump를 활용한 문제 진단 방법

본문은 Amazon VPC Flow Logs(VPC Flow Logs)로는 진단이 불가능하며, EC2 클라이언트에서 tcpdump(tcpdump)를 활용한 캡처가 필수적이라고 강조한다.

EFS mount helper + TLS 환경에서는 로컬 트래픽까지 캡처하도록 -i any -z gzip -Z root 'port 2049 or (src 127.0.0.1 and dst 127.0.0.1)' 옵션 사용

비-TLS 환경에서는 mount target IP로 필터링하여 'host and port 2049' 옵션 사용

RST 패킷만 실시간으로 확인하려면 'port 2049 and tcp[tcpflags] & (tcp-rst) != 0' 옵션 사용

실제 캡처 데이터 분석을 통해, 정상 환경과 문제 환경의 RST 패킷 유무(RST Packet Presence)를 비교하여 문제 상황을 명확히 파악할 수 있다.

Security Group Outbound 규칙 설정별 동작 비교

본문은 EFS mount target의 Security Group Outbound 규칙 설정에 따른 동작 차이를 상세히 설명한다.

규칙 없음: RST 패킷 차단으로 1~2분 I/O hang 발생

NFS 2049 → EC2 인스턴스 Security Group: 차단으로 1~2분 I/O hang 발생

All TCP → EC2 인스턴스 Security Group (권장): 즉시 재연결 (밀리초 단위)

Allow All (기본): 즉시 재연결 (밀리초 단위)

결론적으로, All TCP Outbound 규칙을 EC2 인스턴스 Security Group으로 설정하는 것이 가장 안전하고 권장되는 해결 방법이다.

AWS 공식 문서와의 관계 및 주의사항

본문은 AWS 공식 문서(AWS Official Documentation)의 내용과 실제 운영 환경의 차이점을 지적하며, 주의를 당부한다.

AWS 공식 문서에서는 기본 Outbound 규칙(Allow All)을 전제로 설명하고 있으나, 보안 강화를 위해 기본 규칙을 제거한 환경에서는 해당되지 않음

NFS 2049 포트만 허용하는 Outbound 규칙으로는 문제를 해결할 수 없으며, All TCP 범위가 필요

All TCP 범위를 설정하더라도, Destination을 EC2 Client Security Group으로 제한하면 인터넷이나 다른 리소스로의 접근은 차단되므로 안전

결과적으로, AWS 공식 문서의 내용을 맹신하기 전에, 자신의 환경 설정을 정확히 파악(Environment Awareness)하고, 보안 설정과 운영 안정성 간의 균형을 고려해야 한다.

EFS I/O Hang 문제 해결 및 예방을 위한 Best Practice

본문은 EFS NFS I/O hang 문제 해결을 위해, All TCP Outbound 규칙 추가를 권장하며, 추가적으로 고려해야 할 사항들을 제시한다.

EFS mount helper + TLS 사용: noresvport가 기본 적용되어 재연결 안정성 향상

NFS 2049 포트만으로는 부족: All TCP 범위 설정 필요

모니터링 강화: dmesg -w | grep -i nfs 명령어를 통해 NFS 관련 메시지 모니터링

결론적으로, Security Group Outbound 규칙 확인, EFS mount helper 사용, All TCP 범위 설정을 통해 EFS I/O hang 문제를 예방하고, 안정적인 운영 환경을 구축할 수 있다.

Amazon EFS 트러블슈팅, NFS I/O Hang 과 Security Group Outbound 규칙의 상관관계