Advent of SysAdmin 2025
(sadservers.com)-
시스템 관리자를 위한 어드벤트 캘린더 2025는 12월 1일부터 12일까지 진행되는 12일간의 Linux 및 DevOps 챌린지 시리즈
- 각 날짜별로 매일 서로 다른 난이도의 새로운 시나리오 과제가 공개됨
- 참가자는 무료 계정 등록을 통해 자신의 진행 상황을 추적 가능(계정이 있어야 점수 및 순위 관리가 가능함)
- 회원가입 없이도 체험 가능한 시나리오가 하나 제공되어, 누구나 바로 실행 가능
- 실무형 DevOps 환경에서의 문제 해결 및 시스템 관리 역량 강화에 초점을 둠
예시 시나리오: “Auderghem: containers miscommunication”
-
시나리오명: “Auderghem: containers miscommunication”
- 난이도: Easy
- 유형: Fix
- 접근 방식: 이메일 인증 필요
- 시간 제한: 30분
-
문제 설명:
- nginx Docker 컨테이너가 포트 80에서 트래픽을 수신하여 두 개의 다른 컨테이너(statichtml1, statichtml2)로 리디렉션해야 하지만 작동하지 않음
- 참가자는 이 문제를 수정해야 함
- 모든 컨테이너는 재시작은 가능하지만 중지나 삭제는 금지됨
-
테스트 조건:
-
curl http://localhost→ “Welcome to nginx” -
curl http://localhost/1→ “HelloWorld;1” -
curl http://localhost/2→ “HelloWorld;2” - “Check My Solution” 버튼은
/home/admin/agent/check.sh스크립트를 실행하여 결과를 검증함
-
SadServers 플랫폼 정보
- 제공사인 SadServers는 Linux 및 DevOps 환경에서의 문제 해결 인터뷰 및 실습 시나리오를 제공하는 플랫폼
Hacker News 의견
-
직장에서 겪는 실제 12가지 Sysadmin/DevOps 도전 과제를 정리했음
1. 사용자가 root로 로그인하지 않게 하기
2. 모든 사용자가 모든 서버에 하나의 계정·비밀번호를 공유하는 관행을 끝내게 만들기
3. 누군가의 애플리케이션 의존성을 2010년 이후 버전으로 업데이트하게 만들기
4. 설정 파일을 노트북에서 서버로 scp로 던져 넣는 대신, 구성 관리 툴을 쓰게 만들기
5. 구성 관리 대신 **설정이 들어간 불변 이미지(immutable image)**를 만들어 쓰게 만들기
6. Jenkins를 버리고 GitHub Actions로 갈아타게 만들기
7. S3에 프로덕션 비밀 키가 한 파일로 몰려 있는 상황을 끝내고, 비밀 관리 시스템을 쓰게 만들기
8. “수년 동안 아무 문제 없었는데 왜 새 서버가 필요하냐”는 경영진과 사용자를 설득해,
사실 모든 장비가 파워·디스크·NIC·RAM이 다 망가지기 직전이며 부품도 없다며 신규 서버 구매를 승인받기
9. 무려 8년 동안 안 바뀐 AWS 액세스 키를 강제로 회전시키기 위한 권한을 경영진에게 얻어내기
10. 애플리케이션이 AWS 루트 계정의 액세스 키를 사용하는 미친 상황을 멈추게 만들기
11. 사용자가 애플리케이션을 컨테이너로 빌드하도록 만들기
12. 사용자가 당신 도움 없이 스스로 배포하도록 만들기
각 과제를 완료할 때마다 스카치 한 잔을 마시면 됨. 해피 홀리데이!- 6번 GitHub Actions 관련해서 말하자면, 인증된 worker가 5일 정도 비활성화되면 풀에서 사라지는 문제가 있었음
복잡한 PR 워크플로우를 구성했는데, 며칠간 PR이 없으면 갑자기 깨져버림
GitHub에서 이에 대한 안내나 대안도 없었음. CI로는 다른 솔루션이 훨씬 낫다고 생각함 - 이런 문제들의 첫 단계는, 왜 중요한지를 구체적이고 문서화된 방식으로 설명하는 것임
대부분은 명확하지만, 모두에게 자명한 건 아님 - Jenkins에서 GitHub Actions로 바꾸라니… 정말 왜 그래야 하는지 모르겠음
- “Sysadmin/DevOps는 이제 동의어다”라는 말에 농담으로 당국에 신고했다고 함
- 5번과 6번은 취향과 트레이드오프의 문제지만, 나머지는 전적으로 공감함
- 6번 GitHub Actions 관련해서 말하자면, 인증된 worker가 5일 정도 비활성화되면 풀에서 사라지는 문제가 있었음
-
우리 회사는 DevOps/SRE 후보자 평가에 Sad Servers를 사용하고 있음
인터뷰 중에는 약간 긴장된다는 피드백이 있지만, 끝나고 나면 다들 좋은 경험이었다고 함
Zoom 채팅으로 링크를 보내고 화면 공유만 하면 바로 작동해서 인터뷰 효율이 매우 높음- 이 얘기를 들으니 반갑고, 나도 오늘부터 Sad Servers의 데일리 챌린지를 시작하려 함
홈랩과 소규모 회사에서 tech lead로 일한 경험은 있지만, 대규모 환경에서는 아직임
현재는 지식 공백 메우기와 자격증 준비에 집중 중임
- 이 얘기를 들으니 반갑고, 나도 오늘부터 Sad Servers의 데일리 챌린지를 시작하려 함
-
우울할 때 세상에 할 일이 없으면, Sad Server 문제를 해킹하듯 푸는 게 재미있을 것 같음
-
터미널에서 단어를 지우려고 Ctrl+w를 눌렀는데, 사실 브라우저 창이라 창이 닫혀버리는 상황을 상상해보라… 슬픔 그 자체임
- 예전에 gotty를 이용해 브라우저에서 터미널을 띄웠는데, 팀 전체가 Ctrl+w를 Ctrl+`로 리매핑했음
1년 반 동안 이 환경에서 개발했더니, 지금도 Ctrl+w를 누를 때마다 진짜 터미널이 닫힐까 두려움 - 그래서 macOS의 Command 키 분리 설계가 얼마나 고마운지 새삼 느낌
- 그래도 Ctrl+Shift+T로 최근에 닫은 탭을 다시 열 수 있음
- (제작자) 미안함. “Open the Server Terminal in a New Window” 버튼을 다시 클릭하면 됨
- 그 마음 이해함. 나도 KVM 쓸 때 종종 당함
- 예전에 gotty를 이용해 브라우저에서 터미널을 띄웠는데, 팀 전체가 Ctrl+w를 Ctrl+`로 리매핑했음
-
요즘은 이걸 SRE라고 부르는 것 같음
괜히 이름만 바꿔서 버즈워드 만드는 게 싫음- 내가 좋아하는 정의는 “운영을 소프트웨어 문제로 다루는 것이 SRE다”였음
- 나도 버즈워드는 싫지만, SRE는 확실히 다른 역할임
- SRE는 플랫폼 위에서 애플리케이션이 계속 돌아가게 하는 역할임
메트릭 수집, 배포 자동화 등 다양한 도구를 다룸
작은 회사에서는 Sysadmin이 SRE 역할을 겸하지만, 규모가 커지면 명확히 분리됨
-
진행 상황이 저장되지 않는 것 같음
- (제작자) 대시보드를 확인해보고, 그래도 안 되면 이메일이나 웹사이트 폼으로 연락해달라고 함
-
Sad Servers를 정말 좋아함, Windows 버전이 나오길 기다리고 있음
- (제작자) 고맙고, 언젠가 Windows 버전도 고려 중이라고 함
-
이런 플랫폼이 k8s나 Docker 같은 컨테이너 생태계에도 있으면 좋겠다고 생각함
- (SadServers 제작자) 이미 k8s 기반 시나리오가 있음
단일 VM에서 실행되는 버전도 있고, PoC용 k8s 클러스터에서 pod 단위로 돌리는 실험도 진행 중임
앞으로 podman 시나리오도 추가할 예정임
- (SadServers 제작자) 이미 k8s 기반 시나리오가 있음
-
스포일러는 피하지만, 문제를 해결했는데 체크 스크립트가 통과하지 않음
curl은 잘 작동했지만, 스크립트가 특정 설정 방식을 강제했음
이런 건 CTF처럼 결과만 확인하는 방식이 더 낫다고 생각함- (제작자) 피드백 고맙고, 이제는 목표만 검사하도록 새 이미지를 배포했음
완벽한 체크는 어렵지만, false negative 최소화를 위해 계속 개선 중임
- (제작자) 피드백 고맙고, 이제는 목표만 검사하도록 새 이미지를 배포했음
-
(삭제된 댓글에 대한 대화)
- Advent of Code도 계정이 필요하다는 언급이 있었음
- (제작자) 플랫폼은 홈 → “give me a server” 두 번 클릭이면 바로 VM을 제공함
등록 없이 VM을 주는 SaaS는 거의 없다고 생각함
피드백 고맙고,/advent페이지에 명확한 버튼을 추가했다고 함 - “그럼 어떻게 작동하길 바라는 거냐, 진짜 sysadmin 맞냐?”라는 농담 섞인 반응도 있었음