본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

Amazon Web Services

원문 보기 위키 갱신

AWS에서 Calico를 운영할 때의 네트워킹 모드, src/dst 검사 비활성화 요건, VPC 서브넷 경계 처리 방식을 정리한 레퍼런스예요. 오버레이 없는 고성능 네트워킹과 50노드 제한 회피 같은 Calico만의 장점도 함께 소개해요.

출처: 문서

본문

Calico는 Amazon Web Services(AWS)에서 실행될 때 다음과 같은 장점을 제공해요:

  • 컨테이너를 위한 네트워크 정책: Calico는 개별 컨테이너를 위한 세밀한 네트워크 보안 정책을 제공해요.
  • 오버레이 없음: 각 VPC 서브넷 안에서는 Calico가 오버레이를 필요로 하지 않아요. 즉 컨테이너를 위한 고성능 네트워킹이 가능해요.
  • 50노드 제한 없음: Calico를 사용하면 50노드 제한을 넘을 수 있어요. 이 제한은 VPC 라우팅 테이블을 사용할 때 AWS 50 라우트 제한에서 생기는 것이에요.

단일 VPC 서브넷 안에서 트래픽 라우팅하기

Calico는 AWS가 EC2 인스턴스에 사용하는 범위 밖의 IP 주소를 할당하기 때문에, 클러스터의 각 EC2 인스턴스에서 AWS 문서에 설명된 대로 AWS src/dst 검사를 비활성화해야 해요. 이렇게 하면 Calico가 오버레이나 한정된 VPC 라우팅 테이블 엔트리를 사용하지 않고도 단일 VPC 서브넷 안에서 트래픽을 네이티브하게 라우팅할 수 있어요.

서로 다른 VPC 서브넷 / VPC 사이에서 트래픽 라우팅하기

고가용성을 위해 배포를 여러 AZ로 나눠야 한다면, 각 AZ는 자신의 VPC 서브넷을 갖게 돼요. 여러 다른 VPC 서브넷 또는 피어링된 VPC에 걸쳐 Calico를 사용하려면, 위에서 설명한 대로 src/dst 검사를 비활성화하는 것에 더해, Calico IP 풀에서 IPIP 캡슐화와 아웃바운드 NAT도 켜야 해요.

Calico IP 풀 설정 방법은 IP 풀 설정 레퍼런스를 참고하세요.

기본적으로 Calico의 IPIP 캡슐화는 모든 컨테이너 간 트래픽에 적용돼요. 하지만 캡슐화가 실제로 필요한 것은 VPC 서브넷 경계를 넘는 컨테이너 트래픽뿐이에요. 더 나은 성능을 위해, Calico가 VPC 서브넷 경계를 넘을 때만 IPIP 캡슐화를 수행하도록 설정할 수 있어요.

"CrossSubnet" IPIP 기능을 켜려면, Calico IP 풀 리소스에서 IPIP를 활성화하고 모드를 "CrossSubnet"으로 설정하세요.

참고: 이 기능은 Calico v2.1에서 도입됐어요. 배포가 더 오래된 Calico 버전으로 만들어졌거나, 배포가 올바르게 설정되었는지 확신이 없다면 이를 더 자세히 다루는 IP-in-IP 구성 가이드를 따르세요.

다음 calicoctl 명령은 IPIP 모드 CrossSubnet을 사용하는 CIDR 192.168.0.0/16의 IPv4 풀을 만들거나 수정해요. 배포에 맞게 풀 CIDR을 조정하세요.

calicoctl apply -f - <<EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: ippool-cs-1
spec:
  cidr: 192.168.0.0/16
  ipipMode: CrossSubnet
EOF

워크로드에서 WAN으로 가는 트래픽 활성화하기

Calico 네트워크에 연결된 컨테이너가 AWS 밖의 리소스에 도달하게 하려면, Calico IP 풀에서 아웃바운드 NAT를 설정해야 해요.

AWS는 소스 주소가 EC2 가상 머신 인스턴스인 모든 트래픽에 아웃바운드 NAT를 수행해요. Calico IP 풀에서 아웃바운드 NAT를 켜면, Calico가 EC2 가상 머신 인스턴스에서 호스팅되는 컨테이너의 모든 아웃바운드 트래픽을 NAT해요.

다음 calicoctl 명령은 IPIP 모드 CrossSubnet을 사용하고 아웃바운드 NAT를 켠, CIDR 192.168.0.0/16의 IPv4 풀을 만들거나 수정해요. 배포에 맞게 풀 CIDR을 조정하세요.

calicoctl apply -f - <<EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
  name: ippool-1
spec:
  cidr: 192.168.0.0/16
  ipipMode: CrossSubnet
  natOutgoing: true
EOF

더 알아보기 (Learn more)

AWS에서는 src/dst 검사 비활성화가 필수 전제예요. 여러 서브넷/VPC로 확장할 때는 CrossSubnet IPIP 모드와 natOutgoing을 함께 고려하세요. 풀 CIDR은 반드시 여러분 배포에 맞게 조정해서 쓰세요.