나에게도 생소했던 시스템 엔지니어로써의 1년을 정리한다
2017년 1월 2일 나는 IT인프라 직군으로 입사를 하였고, 현재는 시스템 엔지니어라는 역할을 가지고 일을 하고 있다.
지난 1년동안 나에게도 생소했던 시스템 엔지니어로써의 1년을 정리해보려고 한다.
입사하면서..
그동안 학교에서 배운 것 그리고 활동한 것은 개발에 대한 것이었다. 개발자들과 생활하였고 개발에 대한 문화를 배우고 경험해왔다.
하지만 내가 앞으로 지낼 곳은 인프라를 다루는 곳이다. 평소에 IT인프라에 대해 많은 호기심이 있었다. 쉽게 접할 수 없는 분야이기도 하고 시설과 장비 또한 쉽게 접할 수 없어서 나에겐 우주와 같이 선망의 대상이었다.
인프라에 대해 잘 몰랐던 나는 입사하면서 시스템 아키텍처를 설계하고(예를 들면 MQ는 무엇을 쓰고 어떻게 구성할 것이며.. 디비들은 어떻게 구성할 것인가 등..) 테스트하고 서비스의 인프라를 구축/운영하는 업무를 하게 되지 않을까? 라는 생각을 가졌다.
하지만, 실무에서의 인프라는 내가 처음에 생각했던 것과는 약간 다른 세상이었고, 더 큰 매력을 가지고 있었다.
신입 사원 교육
회사에서 자체적으로 진행하는 신입 사원 교육은 건너뛰고, 팀에 배정받은 다음에 진행한 교육이다. 처음 신입 사원 교육에 진행할 때 이용한 도서는 “인프라 엔지니어의 교과서” 이다.
책은 매우 얇았지만 IT인프라에 대한 모든 내용의 엑기스를 정말 잘 담아냈다. 이 책을 읽고 구두 시험을 보고, 책에서 설명하는 내용이 실제 회사 인프라에 어떻게 적용되어 있는지를 배웠다. IT인프라에 대해 맛을 보고 싶은 분에게 추천한다.
이 책을 시작으로 “서버/인프라를 지탱하는 기술” 과 “서버 부하분산 입문” 을 읽고 세미나를 하면서 시스템 엔지니어로서 기본 역량을 다져나갔다.
동시에 회사 인프라에 대한 교육도 진행되었다. 대충 아래와 같은 내용으로 교육을 받았다.
- IDC 에 대한 이해
- 공조, 전력, 화재예방, 입/출고 처리, 라벨링, 하드웨어 파트 관리
- 케이블링, IDC 모니터링 등..
- IDC 네트워크 장비에 대한 이해
- 네트워크 ACL 및 보안 정책
- 서비스 별 IP 대역 및 IP 할당/관리 정책
- 다양한 인프라 운영도구
- CMDB 포함
- 표준 서버 스펙 및 OS 설정
- 장애 대응 방법
- 등…
적어놓으니 엄청 많다. 저것들이 시스템 엔지니어로써 업무를 하기 위한 기본 지식이고 서비스별로 특화된 지식들도 더 필요하게 된다.
- DNS
- CDN
- GSLB
- Storage
- Backup
- VMWare ESXi
- Windows Hyper-V
- 등등…
배워야할 것들이 매우 많기에 지금도 나는 업무를 받으면서 계속해서 공부하고 배워나가고 있다.
IDC에 대한 이야기
나에게 IDC는 환상의 나라 에버랜드와 같은 곳이었다. 고등학생 때 친구들과 서버를 구매하여 가지고 놀았기에 몇 번 IDC에 가본적은 있지만, 갈 때 마다 IDC는 신비로운 공간이었고 그 내부를 더 알고 싶었다. 심심할 때면 Youtube 에서 데이터센터, IDC로 검색해서 나오는 데이터센터 소개 영상을 보면서 꿈을 꾸곤 했었다.
이제 나에게 IDC는 더 이상 환상의 나라 에버랜드와 같은 곳이 아니다. IDC에서 직접 일 하는 것은 아니지만 IDC에 있는 서버들과 인프라 요소 하나하나가 나의 삶의 터전이 되었다. 하지만 난 아직도 IDC에 가면 눈이 휘둥그래져서 구경하곤한다.
내가 다니는 회사는 국내에 몇 안되는 자사가 직접 설립한 IDC를 보유한 회사이다. 이것은 주니어 시스템/인프라 엔지니에게 엄청난 복지(?)이다. IDC이용자가 아닌 제공자이기에 IDC에 대한 정말 모든 것들을 생생하게 경험하고 보고 들을 수 있기 때문이다. 상세한 네트워크 구조와 그에 쓰이는 장비들..처음에 IDC에 갔을 때, 통신사와 연결되어있는 코어 라우터를 정말 한동안 바라보곤 했었다.. IDC의 다양한 시설(공조, 전력 등)을 관리하는 방법, 모니터링 대시보드.. 네트워크 현황 등..정말 신기한 것들로 가득차있는 곳이다.
요즘은 클라우드를 많이 쓰기에 많은 주니어 개발자들이 IDC를 경험하진 못할 것 같다. 클라우드라고 부르는 것도 결국 물리적인 장비들로 이루어져있고 IDC가 없으면 안된다는 것을 알고나면 IDC가 궁금해질 것이다. 살면서 꼭! 한번쯤은 IDC에 가보는 것을 추천한다.
무엇을 공부하였나?
지금까지 내가 경험한(직접/간접) 시스템 엔지니어의 주요 업무는 아래와 같다.
- 인프라 용량 산정을 통해 선정된 스펙에 맞는 서버 공급
- 디스크, CPU, 메모리 등등.. 상황에 맞게 재조립해서 쓴다
- 그리고 운영체제를 설치한다.
- 서비스에 맞는 시스템 설계 및 구축
- 네트워크에 대한 내용은 네트워크팀에서 해준다.
- 서비스에 맞는 시스템 설정 및 관리
- DNS/CDN 설정 및 모니터링
- 장애 시 1차적 대응 및 원인 분석
이 외에도 시스템 엔지니어의 업무영역은 매우 넓다. (아직 1년차라서 모르는게 많을 뿐이다)
1년동안 지내면서 내가 느낀 시스템 엔지니어에게 가장 필요한 스킬은 ‘리눅스‘ 이다. 회사의 대부분 시스템은 리눅스로 구축이 되어있다. 리눅스에 대한 깊은 이해가 없이는 업무를 절대로 진행할 수 없다. 사소한 설정 하나하나가 어떤 것을 의미하는지, 여러 시스템 로그들은 어떻게 분석하는지, 시스템 설정은 어떻게 해야하는지(예: bonding), 파티션 잡는 방법 등등 리눅스라는 운영체제에 대해 아주 깊은 지식이 필요로 한다. 이 지식을 기반으로 더 고급진(Docker라던지 Openstack 이라던지, HAProxy 라던지..) 기술들을 익히고 연마해 나가는 것이다.
그리고! 또 제일 중요한 것이 하나 있었다. HP, DELL, IBM 등 다양한 벤더에서 나오는 제품에 대한 이해. 어차피 엔지니어들은 물리적인 장비를 직접적으로 다루고 그에 대한 이해가 반드시 필요하다는 것을 알게 되었다. 모델별로 어떤 특징을 가지고 있는지, 설정은 어떻게 바뀌는지.. 하나하나가 업무를 하는데 정말 필요한 지식들이었다.
앞으로도 나는 공부할게 너무 많아서 하하 행복하다…..
앞으로 나는 어떻게 할 것인가?
아직 못 배운 기술들이 너무 많다.
우선은 장비에 대한 이해를 먼저 하고 싶다. 선배 엔지니어들을 보면 다양한 벤더사들의 모델별로 어떤 특징이 있고 무슨 문제점이 있는지 정말 콕 찌르면 술술술술 나온다. 물론 경험적인 면이 많이 차지하겠지만 회사에 예비로 되어있는 장비들을 가지고 메뉴얼과 함께 공부를 해야할 듯 하다.
리눅스… 리눅스를 쓴지는 어느덧 8년이 지나가고 있지만, 시스템 엔지니어로써 일하면서 정말 나는 아무것도 모르고 있었구나를 다시 한번 느끼고 있다. 서점에 가면 볼 수 있는 리눅스 관리하기 같은 책들을 사서 달달 외워야겠다. 업무하는데 리눅스를 몰라서 해맸던 적이 한둘이 아니다…
최신 기술. 요즘 Ansible이니 DevOps 니 여러 최신 기술들이 나오고 적용하는 사례가 나오고 있다. 지난 1년을 돌이켜보면 난 기존 인프라를 익히는데 모든 리소스를 사용하였고 최신 기술은 쳐다볼 엄두도 나지 않았다. 2018년에는 최신 기술이라 불리는 것들을 조금 들여다볼 수 있지 않을까?
마무리하며
간단하게 만 정리한다는 것이 엄청 많이 써버렸다. 두서 없이 써서 빠뜨린 내용도 있겠지만 지금의 나의 생각을 정리하기엔 충분했다. (만족?)
대다수의 또래 전공자들이 선택하지 않은 IT인프라, 시스템 엔지니어로서의 길을 선택했다.
아직은 모르겠다. 1년쯤 더 해보면 이 분야가 어떤지 조금은 알 수 있지 않을까? 아직은 모든게 새롭고 신기하고 흥미진진하다.
많은 사람들이 개발에 관심을 가지고 있다. 인프라에 관심을 가지고 있는 사람도 많아졌으면 좋겠다. 혼자서 놀기엔 심심하다.
2018년에도 열심히 일하는 주니어 일개미가 되어야겠다.
끝!