ContainerLab은 리눅스 환경에서 컨테이너 기반의 네트워크 토폴로지를 손쉽게 구성하고 관리할 수 있는 툴로, 실제 장비와 유사한 환경을 제공합니다. 이번 포스팅에서는 EC2(ubuntu) 환경에 ContainerLab을 설치하고, 이를 활용해 네트워크 실습 환경을 준비하는 과정을 소개하려고 합니다.
[containerlab 공식 홈페이지] https://containerlab.dev/
containerlab을 사용하기에 앞서 실습에 사용할 cEOS-lab 이미지가 필요합니다. 이미지는 Arista 지원 포털에서 다운로드할 수 있습니다. (회원가입 후 무료 다운로드) https://www.arista.com/en/support/software-download
이미지는 구동 환경 아키텍쳐에 따라 다운로드 할 수 있습니다.
- `cEOS-lab-4.34.2F.tar.xz`: Intel/AMD CPU 기반 환경 → 일반적인 Linux 환경
- `cEOSarm-lab-4.34.2F.tar.xz`: Arm 기반 CPU 환경 → Arm 기반 Linux, Apple M 시리즈 VM

containerlab 설치하기
containerlab은 docker를 사용하여 컨테이너화된 네트워크 운영 체제를 실행합니다. containerlab을 구동하기 위해 VMware Workstation, VirtualBox 등과 같이 하이퍼바이저를 실행하는 PC의 VM 환경이나 클라우드 기반 VM이나 컨테이너를 사용할 수 있습니다.
VM에 할당되는 리소스는 랩을 실행하는 장비 유형과 컨테이너 수에 따라 달라질 수 있습니다. 8개 이상의 장비로 랩을 실습할 계획이라면 16GB 이상의 메모리를 갖춘 VM을 고려해야 합니다.
`containerlab`을 설치하기 전 실습에 필요한 관련 도구를 설치합니다.
sudo apt update && sudo apt upgrade -y
sudo apt install openssh-server curl wget git vim -y && sudo systemctl enable --now ssh
관련 도구 설치가 완료되었다면 자동화된 스크립트를 이용해 `containerlab`을 설치합니다.
curl -sL <https://containerlab.dev/setup> | sudo -E bash -s "all"
`containerlab version` 명령어를 이용해 정상 설치 여부를 확인합니다.
ubuntu@ip-172-31-7-238:~$ containerlab version
____ ___ _ _ _____ _ ___ _ _ _____ ____ _ _
/ ___/ _ \\| \\ | |_ _|/ \\ |_ _| \\ | | ____| _ \\| | __ _| |__
| | | | | | \\| | | | / _ \\ | || \\| | _| | |_) | |/ _` | '_ \\
| |__| |_| | |\\ | | |/ ___ \\ | || |\\ | |___| _ <| | (_| | |_) |
\\____\\___/|_| \\_| |_/_/ \\_\\___|_| \\_|_____|_| \\_\\_|\\__,_|_.__/
version: 0.69.3
commit: 49ee599b
date: 2025-08-06T21:02:24Z
source: <https://github.com/srl-labs/containerlab>
rel. notes: <https://containerlab.dev/rn/0.69/#0693>
container 이미지 업로드
이미지 업로드를 위해 pc에서 ec2를 sftp로 접속합니다. MacOS 환경의 경우 터미널에서 sftp 명령어로 접속할 수 있습니다. `-i` 옵션을 사용하면 접속에 필요한 키를 지정할 수 있습니다.
sftp -i "aws-ec2-key.pem" ubuntu@ec2-1-1-1-1.ap-northeast-2.compute.amazonaws.com
sftp 접속 후 put 명령어로 pc에 있는 이미지 파일을 ec2로 업로드 할 수 있습니다.
`put [Local Path] [Remote Path]`
[EC2]
sftp> put /Users/chan/Downloads/cEOS-lab-4.34.2F.tar.xz /home/ubuntu/labs/
Uploading /Users/chan/Downloads/cEOS-lab-4.34.2F.tar.xz to /home/ubuntu/labs/cEOS-lab-4.34.2F.tar.xz
cEOS-lab-4.34.2F.tar.xz 100% 526MB 11.2MB/s 00:46
업로드 받은 이미지 파일을 사용하기 위해 `docker import`를 수행합니다.
`docker import [image file name] [new image file name]`
[EC2:/home/ubuntu/labs]
$ sudo docker import cEOS-lab-4.34.2F.tar.xz ceos:4.34.2F
sha256:8b56747ef2fe1b1d9bad4acecb76c03fd911a36c7172869da07639de5f57be92
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ceos 4.34.2F 8b56747ef2fe 44 seconds ago 2.18GB
VSCode로 EC2 연결하기
vscode를 이용해 ec2에 접속 후 containerlab topology 코드를 작성하려고 합니다.
vscode 확장팩에서 Remote SSH를 설치합니다.

설치 후 vscode 좌측 하단의 `><` 모양 아이콘을 클릭합니다.

`Connect to Host` → `Add New SSH Host` → `접속 정보 입력` → `config 파일 선택`하여 ssh 접속 정보를 등록합니다.




다시 `Connect to Host` 메뉴 진입 시 등록한 host를 클릭하면 vscode를 통한 ec2 원격 접속을 수행하게 됩니다.
만약 ssh 연결 시 에러가 발생한다면 ssh key 경로가 제대로 설정되어 있는지 체크해 볼 필요가 있습니다. 특정 key 파일을 사용할 경우 `IdentityFile` 경로에 key 경로를 설정하면 됩니다.
[~/.ssh/config]
Host ec2-1-1-1-1.ap-northeast-2.compute.amazonaws.com
HostName ec2-1-1-1-1.ap-northeast-2.compute.amazonaws.com
IdentityFile ~/.ssh/aws-ec2-key.pem
User ubuntu
[Host 정보] (참고용)
ssh -i "aws-ec2-key.pem" ubuntu@ec2-1-1-1-1.ap-northeast-2.compute.amazonaws.com
연결이 완료되면 vscode 하단에 있는 터미널 창에서 실습을 위한 폴더를 생성 후 오픈합니다.
`mkdir containerlab` → `Open Folder`


'Network' 카테고리의 다른 글
| [containerlab] AWS EC2(ubuntu)에 containerlab 설치하기 - 네트워크 실습 (2) (0) | 2025.09.04 |
|---|---|
| [F5] iRules 구문 분석 (1) | 2025.03.23 |
| [Network] M3 Mac에 네트워크 시뮬레이터 eve-ng 설치하기 (2) | 2025.03.16 |
| [Zabbix] Linux snmpget, snmpwalk로 snmp 조회하기 (1) | 2024.11.10 |
| [F5] HTTP/2 헤더 개수 제한 이슈 해소 기록 (ERR_HTTP2_PROTOCOL_ERROR) (0) | 2024.10.23 |