Physical Server, Virtual Server 및 Container는 배포한 파일을 Server에서 어떻게 관리하는지에 대한 방법론이었다.
그렇다면 여기서 Server를 물리적으로 어떻게 형성하여 배포된 Application을 관리하는지도 궁금해진다.
Application Infrastructure는 우리가 흔히 말하는 "인프라"와 동일한 의미로써 어떤 방식으로 Server를 구성할 것인지에 대한 방법론, 즉 "Server 그 자체"를 형성하는 방법에 중점을 둔 개념들이라고 말할 수 있겠다.
기업 컴퓨터, Network, Storage나 기타 IT 장비가 위치하는 중앙집중식 물리적 시설이다.
이전에 Server에 대해 설명하면서 서버실 사진을 하나 첨부했는데, 사실 서버실보다는 Data Center가 더 올바른 표현일 것이다.
Data Center는 Application Service를 User에게 계속해서 제공해야 하기 때문에 24시간 365일 꾸준히 운영되어야 한다.
즉, Data Center 내부에 있는 컴퓨터들은 별다른 일이 없다면 24시간 365일 켜져 있어야 한다는 것이다.
가끔씩 게임을 할 때 업데이트 시간이 너무 짧으면 농담으로 "서버 껐다 켜기만 한 거 아니야?"라는 말을 할 때가 있다. 이때 말하는 서버가 Data Center를 의미하며, 게임 같은 경우 Resource를 많이 잡아먹기 때문에 주기적으로 컴퓨터를 재기동시켜줌으로써 쌓여가는 캐시 등을 제거해 컴퓨터의 속도를 복구시키는 과정이 필요한 것이다.
Data Center는 24시간 365일 켜져 있어야 한다. 또한 데이터 센터 내에는 많은 양의 Server 역할을 하는 컴퓨터가 존재하는데 모든 컴퓨터에 안정적으로 전력을 공급해줘야 하므로 전력의 양이 충분해야 한다.
데이터 센터는 충분한 전력 이외에도 항상 즉시 사용 가능한 예비 전력이 존재해야 한다.
만약 외부적인 요인에 의해 공급되는 전력이 끊기더라도 이를 해결하기 위한 시간을 벌거나 고객들에게 Issue를 알리고 행동 지침을 알리기 위한 시간을 벌어야 하기 때문이다.
컴퓨터로 Resource를 많이 잡아먹는 작업을 수행할 경우 컴퓨터에서는 많은 열을 발생시키게 된다.
개인 컴퓨터인 경우 냉각수나 Fan을 통해서 열을 배출하거나 식히는 방식을 활용할 수 있으나 개인용 컴퓨터보다 훨씬 HW Spec이 높고, 사용량도 비교할 수 없을 만큼 많으며, 심지어 많은 컴퓨터가 모여 있는 Data Center에서는 모여 있는 컴퓨터들에 의해 발생되는 열을 냉각하기 위한 특수 환경이 필수적이라고 볼 수 있다.
냉각 환경 구축이 생각보다 어려운 게 제대로 냉각이 되지 않을 경우 Data Center에 존재하는 컴퓨터가 최적으로 작동하지 않으며 최악의 상황에서는 HW가 녹거나 고장이 나는 등 심각한 문제를 유발할 수 있다. 그렇다고 습기가 발생할 수 있는 냉각 방법은 컴퓨터를 손상시킬 수 있어 피해야 하며, 동시에 Data Center내에 스프링쿨러를 사용할 수도 없기 때문에 화재 위험성이 큰 냉각 방법 또한 피해야 한다.
따라서 Data Center를 구축하기 위해서는 최대한 습기를 생성하지 않으며 불이 날 가능성이 적은 냉각 방법을 선택해야 하며, 혹시나 불이 났을 경우에도 전자 장비에 대한 손상이 없는 방화 시스템을 채택해야 한다.
이런 냉각시스템에 대한 고민은 대기업도 마찬가지인데, Facebook은 Data Center에서 발생하는 열에 대해 조금이라도 효율적으로 대응하기 위해서 애초에 날씨가 추운 Sweden에 Data Center를 짓기도 하였다.
Data Center는 비즈니스적으로 중요한 Application과 정보를 공유하기 때문에 보안에 큰 관심을 두고 관리되어야 한다.
Data Center에서 고객의 개인 정보 등 민감한 정보들을 보관하고 있는데 만약 기업 측의 실수로 Data Center에서 보안적 허점이 생겨 이런 민감한 정보들이 유출될 경우 최소 수십만 달러의 손해 배상이 청구될 수 있으며 회사의 브랜드 가치에도 영향을 미치게 될 것이다.
Data Center에 보안을 지키기 위해서는 물리적인 보안 조치는 물론 가상 보안 조치 또한 필수적이다.
Network나 Application을 통한 Hacker들의 공격을 막아내야 함은 물론 Data Center에 직접 들어와 HW를 빼가는 물리적 공격을 막기 위해서 잠금장치, CCTV 등을 활용한 물리적인 보안 조치도 항상 동반되어야 한다.
대부분의 Data Center은 위에 설명한 Data Center의 요구사항을 충족시킬 수 있는 특수 설계된 공간에 설치된다.
또한 Data Center는 자연재해가 잘 발생하지 않거나 자연재해가 발생하더라도 문제가 없을 만큼 안전한 장소에 설치되어야 하며 건물 벽과 하중은 HW와 지원 인프라에 대한 무게를 충분히 감당할 수 있을 만큼 튼튼해야 한다.
최근 LG 같은 대기업도 Data Center를 운영하기보다는 Cloud 환경을 사용하는 추세로 실제 데이터 센터 운영에 대해 큰 메리트를 느끼지 못하고 있는 추세인 것 같다.
LG의 IT혁신, 5년내 계열사 90% '클라우드' 전환
그렇다면 어째서 기업들이 데이터센터를 운영하는 것보다 Cloud 환경으로 전환하고 있는지에 대해 알아보자.
Data Center는 Application을 실행하고 서비스를 제공하기 위한 Infra로써 수많은 서버와 Network 장비, Storage로 구성되어 있다.
문제는 Application의 개수가 증가할수록 관리해야 하는 Infra의 개수 또한 증가하게 된다는 점이다.
Infra의 개수가 증가하는 것은 단순히 관리해야 할 대상이 많아진다는 차원이 아닌 Infra 환경 자체가 복잡해진다는 단점을 가지고 온다.
Infra 개수가 증가하더라도 모든 Infra 환경에서 안정감 있는 Service를 제공해야 한다. 따라서 Infra 개수가 늘어나더라도 안정적인 Service 제공 환경을 구성하기 위해 서버 이중화 구성, 네트워크 이중화 구성, Storage Mirroring, 롤백 메커니즘 구현 등 다양한 인프라의 안정성을 보장할 수 있는 환경을 마련해야 한다. 그리고 이런 기술을 활용할 경우 Infra 구성의 복잡도를 가중시키는 요인이 되는 것이다.
높아진 Infra의 복잡도는 당연히 높은 관리 역량을 가진 사람들만 Data Center를 관리할 수 있게 만들며, 인재 부족 및 유지보수에 드는 비용이 높아지는 문제를 초래한다. 또한 Infra가 복잡해짐으로써 시스템에 대한 가시성이 매우 떨어질 것이다.
1개의 Application에 최적화된 서버와 Storage, Networking Architecture가 다른 Application을 최적화하는 설정임이 보장되지는 않는다. 오히려, 여러 Application을 최적화하는 서버, Storage, Networking Architecture의 차이가 큰 경우가 더 많을 것이다.
이런 특징 때문에 1개의 Application을 위해 구성한 물리적 구성을 다른 Application에서도 사용하는 것은 사실상 불가능하며 이에 따라 새로운 Application을 위해서는 새로운 물리적 Infra를 준비해야 하는 것이다.
이런 인프라의 경직성은 Service를 제공하는 Application이 많아질수록 Infra의 설정 또한 다양해지는 문제를 가지게 되며 Infra를 도입하는데 많은 시간이 소요되는 문제를 가지고 온다. 이렇게 발생한 시간 낭비는 Application 개발 및 테스트에 투자할 수 있는 시간을 감소시켜 Application의 경쟁력 및 품질을 저하시키는 원인이 되기도 한다.
또한 최근 IT 환경은 빅데이터 환경을 기반으로 하기 때문에 시간이 지나면 데이터가 계속해서 증가하고, 저장 공간 부족의 문제를 해결하기 위해 서비스의 영향을 주지 않는 선에서 저장 공간을 확장해야 할 필요성이 커졌다. 하지만 인프라의 경직성은 저장 공간을 확장시키는 과정에서 심각한 결함을 발생시킬 수 있어 최근 IT의 Trend와 맞지 않는 부분이 존재한다.
Data Center를 직접 운영하는 가장 큰 장점은 아마 다른 업체의 상황과는 관계없이 안정적인 인프라 운영 환경을 제공할 수 있다는 점일 것이다.
예를 들어 AWS를 활용했을 경우 AWS를 운영하는 아마존 측에서 실수로 전체 서버에 영향을 줄만한 작업을 수행했을 때 운영자 입장에서는 잘못한 것이 아무것도 없으나 서비스는 제공되지 않는, 문제를 인지했으나 해결할 방법이 없는 어지러운 상황이 될 수 있을 것이다.
하지만 Data Center를 직접 운영할 경우 HW 또한 기업 측면에서 직접 관리하므로 빠르게 문제에 대한 해결이 가능해질 것이다.
문제는 이런 안정적인 인프라 운영 환경을 유지하기 위해 투자되는 비용이 좀 많다는 것이다.
먼저 충분한 전력이 공급되어야 하기 때문에 전기비도 많이 나올 것이며 Data Center는 냉각 시스템이 구축되어 있어야 하므로 냉각에 대한 비용도 필요할 것이다. 또한 Server, Network, Storage 등 인프라에 대한 안정성을 높이기 위해 물리적인 이중화가 필수적으로 적용되어야 하며, 이 또한 모두 투자 비용으로 이어진다.
즉 Data Center를 직접 운영함으로써 가용성이 높아진다는 장점을 가지긴 하지만 필요한 비용이 과도할 정도로 높으며 심지어 여기에 유지보수에 필요한 비용까지 추가되어야 한다.
따라서 기업 입장에서 아마존 같은 Cloud Service 제공 기업이 발생시킨 문제로 인해 생기는 손실과 Data Center를 운영하면서 발생하는 투자 비용을 비교해보았을 때 전자가 훨씬 적은 손해라고 느끼며 Cloud 환경으로 전환하게 되는 것이다.
Data Center에서 가장 중요한 점은 보안 설정이다. 즉 기업 측면에서 Data Center를 운영하기 위해서는 필수적으로 보안에 관한 인재가 필요해진다.
문제는 이 보안에 관한 인재가 하늘에 별따기라는 것이다.
당연히 업무라는 것이 처음 접할 때는 실수도 하고 많은 경험을 해보며 숙련자가 되고 자신의 경험을 다시 신입에게 알려주며 신입이 다시 숙련자가 되는 과정을 거쳐야 한다.
하지만 보안 쪽에서는 이런 과정이 조금은 어렵다.
왜냐하면 보안이라는 업무는 실수가 한 번이라도 나올 경우 바로 대규모의 손해 배상으로 인한 금전적 손실로 이어지며 브랜드 이미지의 감소라는 치명적인 실수가 되기 때문에 무조건 실수가 나와서는 안 되는 직책이다.
즉 신입이라는 이유로 실수가 용인되는 관대한 업무가 아니라는 것이다.
당연히 이런 상황에서 숙련된 보안 전문가의 몸값은 하늘을 뚫을 것이며 이는 Data Center에 가장 중요한 보안 문제 해결을 위한 초기 비용이 너무 많이 필요하다는 단점을 가지고 온다.
하지만 Cloud를 활용할 경우 이런 단점을 어느 정도 지울 수 있는데, 왜냐하면 Cloud 서비스 제공 업체 또한 보안이 얼마나 중요한지 인지하고 있으며 Cloud 회사 측에서 거액의 비용을 들여 보안 전문가를 모시고 오기 때문이다.
즉, Cloud를 활용한 운영 측 입장에서는 Cloud 업체에서 제공하는 보안 기능들을 그대로 활용만 하면 되기 때문에 보안에 필요한 초기 비용을 확 낮출 수 있다.
또한 Cloud 업체는 보안에 가장 큰 관심을 두고 있기 때문에 항상 최신 보안 기술을 파악하고 활용하여 서버에 대한 보안기술을 최신화시키려고 노력한다.
Data Center를 직접 활용하려는 업체는 최신 보안 기술을 파악하기 위해 시간을 들이고 이를 Data Center에 적용해야 하기 때문에 추가적인 비용이 들며 최신 보안 기술이 제대로 적용이 안 될 수도 있다는 위험성이 있다. 하지만 Cloud를 활용할 경우 Cloud 업체에서 알아서 최신 보안 기술로 Update 해주기 때문에 보안에 대해 크게 비용을 투자하지 않아도 된다는 메리트를 가지게 되는 것이다.
이전에 설명했던 내용들은 과거에 활용했던 기술들이 오히려 좋은 생산성을 내는 경우도 존재했지만 Infra에 있어서는 사실상 Cloud 사용이 무조건 좋지 않나라는 생각이 든다.
물론 Data Center에도 장점이 존재하겠으나 점점 발전하는 Cloud 환경과 빠르게 변화하는 IT 업계의 Trend는 Data Center의 단점만 부각하는 역할을 하지 않나라는 생각이 들었다.