AWS CLI를 사용하여 IPAM 시작하기
이 튜토리얼에서는 단일 AWS 계정을 사용하여 AWS CLI로 Amazon VPC IP Address Manager(IPAM)를 설정 및 사용하는 프로세스를 안내합니다. 이 튜토리얼을 마치면 IPAM을 생성하고, IP 주소 풀의 계층 구조를 생성하며, CIDR을 VPC에 할당하게 됩니다.
사전 조건
튜토리얼 시작 전에 확인해야 할 사항:
-
IPAM 리소스를 생성 및 관리할 수 있는 권한이 있는 AWS 계정.
-
적절한 자격 증명으로 AWS CLI 설치 및 구성. AWS CLI 설치 관련 정보는 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요. AWS CLI 구성 관련 정보는 구성 기본 사항을 참조하세요.
-
IP 주소 지정 및 CIDR 표기법에 대한 기본적인 이해.
-
Amazon VPC 개념에 대한 기본적인 지식.
-
튜토리얼 완료에는 약 30분이 소요됩니다.
IPAM 생성
첫 번째 단계는 운영 리전이 있는 IPAM을 생성하는 것입니다. IPAM을 사용하면 AWS 워크로드의 IP 주소를 계획, 추적 및 모니터링할 수 있습니다.
us-east-1 및 us-west-2의 운영 리전이 포함된 IPAM 생성:
aws ec2 create-ipam \ --description "My IPAM" \ --operating-regions RegionName=us-east-1 RegionName=us-west-2
이 명령을 실행하면 IPAM이 생성되고 지정된 리전의 IP 주소를 관리할 수 있습니다. 운영 리전은 IPAM이 IP 주소 CIDR을 관리할 수 있는 AWS 리전입니다.
IPAM 생성 확인:
aws ec2 describe-ipams
후속 단계에서 필요하므로 출력의 IPAM ID를 확인합니다.
IPAM이 완전히 생성되고 사용 가능할 때까지 기다립니다(약 20초).
sleep 20
IPAM 범위 ID 가져오기
IPAM을 생성하면 AWS에서 프라이빗 및 퍼블릭 범위를 자동으로 생성합니다. 이 튜토리얼에서는 프라이빗 범위를 사용합니다.
IPAM 세부 정보 검색 및 프라이빗 범위 ID 추출:
aws ec2 describe-ipams --ipam-id ipam-0abcd1234
ipam-0abcd1234
를 실제 IPAM ID로 바꿉니다.
출력의 PrivateDefaultScopeId
필드에서 프라이빗 범위 ID를 찾고 기록합니다. 파일은 ipam-scope-0abcd1234
와 같이 표시됩니다.
최상위 IPv4 풀 생성
이제 프라이빗 범위에서 최상위 풀을 생성합니다. 이 풀은 계층 구조에서 다른 모든 풀의 상위 역할을 합니다.
최상위 IPv4 풀 생성:
aws ec2 create-ipam-pool \ --ipam-scope-id ipam-scope-0abcd1234 \ --address-family ipv4 \ --description "Top-level pool"
ipam-scope-0abcd1234
를 실제 프라이빗 범위 ID로 바꿉니다.
풀이 완전히 생성되고 사용 가능할 때까지 대기:
aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-0abcd1234 --query 'IpamPools[0].State' --output text
ipam-pool-0abcd1234
를 실제 최상위 풀 ID로 바꿉니다. 계속하기 전에 create-complete
상태가 되어야 합니다.
풀을 사용할 수 있게 되면 CIDR 블록 프로비저닝:
aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-0abcd1234 \ --cidr 10.0.0.0/8
CIDR이 완전히 프로비저닝될 때까지 대기:
aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-0abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/8'].State" --output text
계속하기 전에 provisioned
상태가 되어야 합니다.
리전 IPv4 풀 생성
다음으로 최상위 풀 내에 리전 풀을 생성합니다. 이 풀은 특정 AWS 리전에만 해당됩니다.
리전 IPv4 풀 생성:
aws ec2 create-ipam-pool \ --ipam-scope-id ipam-scope-0abcd1234 \ --source-ipam-pool-id ipam-pool-0abcd1234 \ --locale us-east-1 \ --address-family ipv4 \ --description "Regional pool in us-east-1"
ipam-scope-0abcd1234
를 실제 프라이빗 범위 ID로 바꾸고, ipam-pool-0abcd1234
를 최상위 풀 ID로 바꿉니다.
리전 풀이 완전히 생성되고 사용 가능할 때까지 대기:
aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-1abcd1234 --query 'IpamPools[0].State' --output text
ipam-pool-1abcd1234
를 실제 리전 풀 ID로 바꿉니다. 계속하기 전에 create-complete
상태가 되어야 합니다.
풀을 사용할 수 있게 되면 CIDR 블록 프로비저닝:
aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-1abcd1234 \ --cidr 10.0.0.0/16
CIDR이 완전히 프로비저닝될 때까지 대기:
aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-1abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/16'].State" --output text
계속하기 전에 provisioned
상태가 되어야 합니다.
개발 IPv4 풀 생성
이제 리전 풀 내에 개발 풀을 생성합니다. 이 풀은 개발 환경에 사용됩니다.
개발 IPv4 풀 생성:
aws ec2 create-ipam-pool \ --ipam-scope-id ipam-scope-0abcd1234 \ --source-ipam-pool-id ipam-pool-1abcd1234 \ --locale us-east-1 \ --address-family ipv4 \ --description "Development pool"
ipam-scope-0abcd1234
를 실제 프라이빗 범위 ID로 바꾸고, ipam-pool-1abcd1234
를 리전 풀 ID로 바꿉니다.
참고: 상위 풀의 로캘과 일치하도록 --locale
파라미터를 포함해야 합니다.
개발 풀이 완전히 생성되고 사용 가능할 때까지 대기:
aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-2abcd1234 --query 'IpamPools[0].State' --output text
ipam-pool-2abcd1234
를 실제 개발 풀 ID로 바꿉니다. 계속하기 전에 create-complete
상태가 되어야 합니다.
풀을 사용할 수 있게 되면 CIDR 블록 프로비저닝:
aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-2abcd1234 \ --cidr 10.0.0.0/24
CIDR이 완전히 프로비저닝될 때까지 대기:
aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-2abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/24'].State" --output text
계속하기 전에 provisioned
상태가 되어야 합니다.
IPAM 풀 CIDR을 사용하는 VPC 생성
마지막으로 IPAM 풀의 CIDR을 사용하는 VPC를 생성합니다. IPAM을 사용하여 AWS 리소스에 IP 주소 공간을 어떻게 할당할 수 있는지 보여줍니다.
IPAM 풀 CIDR을 사용하는 VPC 생성:
aws ec2 create-vpc \ --ipv4-ipam-pool-id ipam-pool-2abcd1234 \ --ipv4-netmask-length 26 \ --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=IPAM-VPC}]'
ipam-pool-2abcd1234
를 실제 개발 풀 ID로 바꿉니다.
--ipv4-netmask-length 26
파라미터는 풀에서 /26 CIDR 블록(64개 IP 주소)을 할당하도록 지정합니다. 이 넷마스크 길이는 풀의 CIDR 블록(/24)보다 작도록 선택됩니다.
VPC 생성 확인:
aws ec2 describe-vpcs --filters "Name=tag:Name,Values=IPAM-VPC"
IPAM 풀 할당 확인
CIDR이 IPAM 풀에서 할당되었는지 확인:
aws ec2 get-ipam-pool-allocations \ --ipam-pool-id ipam-pool-2abcd1234
ipam-pool-2abcd1234
를 실제 개발 풀 ID로 바꿉니다.
이 명령을 실행하면 방금 생성한 VPC를 포함하여 지정된 IPAM 풀의 모든 할당이 표시됩니다.
문제 해결
다음은 IPAM을 사용할 때 발생할 수 있는 몇 가지 일반적인 문제입니다.
-
권한 오류: IAM 사용자 또는 역할에 IPAM 리소스를 생성 및 관리하는 데 필요한 권한이 있는지 확인하세요.
ec2:CreateIpam
,ec2:CreateIpamPool
및 기타 관련 권한이 필요할 수 있습니다. -
리소스 제한 초과: 기본적으로 계정당 하나의 IPAM만 생성할 수 있습니다. 이미 IPAM이 있는 경우 새 IPAM을 생성하거나 기존 IPAM을 사용하기 전에 IPAM을 삭제해야 합니다.
-
CIDR 할당 실패: 풀에 CIDR을 프로비저닝할 때 프로비저닝하려는 CIDR이 다른 풀의 기존 할당과 겹치지 않아야 합니다.
-
API 요청 시간 초과: "RequestExpired" 오류가 발생하는 경우 네트워크 지연 시간 또는 시간 동기화 문제가 원인일 수 있습니다. 명령을 다시 시도하세요.
-
잘못된 상태 오류: "IncorrectState" 오류가 발생하면 올바른 상태가 아닌 리소스에서 작업을 수행하려고 하는 것이 원인일 수 있습니다. 계속하기 전에 리소스가 완전히 생성되거나 프로비저닝될 때까지 기다립니다.
-
할당 크기 오류: 할당 크기와 관련하여 "InvalidParameterValue" 오류가 발생하는 경우 요청 중인 넷마스크 길이가 풀 크기에 적합한지 확인합니다. 예를 들어 /24 풀에서 /25 CIDR을 할당할 수는 없습니다.
-
종속성 위반: 리소스를 정리할 때 "DependencyViolation" 오류가 발생할 수 있습니다. 리소스가 서로 종속되어 있기 때문입니다. 풀을 삭제하기 전에 생성 역순으로 리소스를 삭제하고 CIDR 프로비저닝을 해제해야 합니다.
리소스 정리
이 튜토리얼을 완료하면 불필요한 요금이 발생하지 않도록 생성한 리소스를 정리하세요.
-
VPC를 삭제합니다.
aws ec2 delete-vpc --vpc-id vpc-0abcd1234
-
개발 풀에서 CIDR 프로비저닝 해제:
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-2abcd1234 --cidr 10.0.0.0/24
-
개발 풀 삭제:
aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-2abcd1234
-
리전 풀에서 CIDR 프로비저닝 해제:
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-1abcd1234 --cidr 10.0.0.0/16
-
리전 풀 삭제:
aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-1abcd1234
-
최상위 풀에서 CIDR 프로비저닝 해제:
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0abcd1234 --cidr 10.0.0.0/8
-
최상위 풀 삭제:
aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-0abcd1234
-
IPAM 삭제:
aws ec2 delete-ipam --ipam-id ipam-0abcd1234
모든 ID를 실제 리소스 ID로 바꿉니다.
참고
다음 단계로 진행하기 전에 리소스가 완전히 삭제되도록 작업 간에 대기해야 할 수 있습니다. 종속성 위반이 발생하면 몇 초 정도 기다린 다음 다시 시도하세요.
다음 단계
이제 AWS CLI에서 IPAM을 생성하고 사용하는 방법을 학습했으니 고급 기능을 살펴보는 것이 좋습니다.
-
IP 주소 프로비저닝 계획 - IP 주소 공간을 효과적으로 계획하는 방법 학습
-
리소스별 CIDR 사용량 모니터링 - IP 주소 사용량을 모니터링하는 방법 이해
-
AWS RAM을 사용하여 IPAM 풀 공유 - AWS 계정 간에 IPAM 풀을 공유하는 방법 학습
-
AWS Organization에서 계정과 IPAM 통합 - 조직에서 IPAM을 사용하는 방법 학습