[LG CNS AM Inspire Camp 1기] Cloud Native 한번에 이해하기

정성엽·2024년 12월 25일
2

LG CNS AM Inspire 1기

목록 보기
1/53
post-thumbnail

INTRO

최근 많은 기업들이 On Promise 환경에서 클라우드 네이티브 환경으로 전환하고 있다.

이는 단순히 물리적 서버를 클라우드로 옮기는 것이 아닌, 클라우드 환경에 최적화된 애플리케이션을 개발하고 운영하는 것을 의미한다.

이러한 변화를 우리는 Application Modernization(AM) 이라고 부른다.

이번 글에서는 클라우드 네이티브 환경으로 전환하는 과정과 그 안에 숨겨진 핵심 기술들을 최대한 쉽게 작성해보려고 한다!


1. On Promise -> Cloud Native

전통적으로 기업들은 온 프로미스(On-Premise) 방식으로 전산실의 물리적 서버를 하드웨어 단위로 직접 관리했다. 하지만, 이는 다음과 같은 문제점들이 존재했다:

  • 높은 초기 구축 비용
  • 지속적인 유지보수 비용
  • 전문 인력 관리의 부담
  • 확장성의 한계

💡 클라우드 컴퓨팅의 등장

이러한 문제를 해결하기 위해 기업들은 데이터 센터 위탁 방식을 거쳐 클라우드 컴퓨팅 방식을 도입하기 시작했다.

이렇게 전환하게 되는 이유는 바로 클라우드 방식은 필요한 만큼의 IT 자원을 빌려 사용하는 On-Demand 방식으로, 다음과 같은 장점을 제공하기 때문이다.

On Demand 장점

  • 사용량 기반 과금으로 비용 효율성 향상
  • 인터넷을 통한 클라우드 자원의 손쉬운 접근
  • 유연한 자원 확장과 축소 가능

그렇다면 클라우드는 무엇을 의미할까?

이를 이해하기 위해서는 우선 가상화라는 개념을 이해해야 한다.

💡 가상화와 IaC (Infrastructure as Code)

만약 독자는 가상화에 대해서 설명해보라는 질문이 들어온다면, 곧바로 대답할 수 있는가?

필자는 해당 질문을 처음 들었을 때, 머릿속으로는 이해하고 있지만 한 문장으로 설명하기는 꽤 힘들었던 경험이 있다.

그래서 이번 기회에 가상화에 대한 개념을 한번 정리해보고자 한다.

LG CNS AM Inspire 수업에서 설명해주신 가상화의 개념은 아래와 같다.

가상화란 하드웨어를 소프트웨어로 변경하는 것이다.

이 설명을 듣자마자 가상화의 개념을 바로 이해할 수 있었다.
(개인적으로는 아주 명쾌한 설명이라고 생각한다!)

그 이유는 바로 하드웨어와 소프트웨어의 가장 큰 차이점을 먼저 생각해봤기 때문이다.

하드웨어는 물리적으로 존재하는 실체이기 때문에 관리와 변경이 어렵고, 한번 구성하면 쉽게 수정하기 힘든 특징이 있다.

반면, 소프트웨어는 파일 형태로 존재하기 때문에 복사와 수정이 자유롭고 관리가 훨씬 용이하다.

따라서 '하드웨어를 소프트웨어로 변경하는 것' 이라는 설명은 가상화의 핵심을 정확하게 담고 있다고 생각한다!

💡 파일 형태로 관리하는게 왜 필요할까?

그 이유는 아래와 같다.

유연한 자원 관리

  • 필요에 따라 쉽게 자원을 할당하고 회수할 수 있다.
  • 파일 형태로 관리되므로 백업과 복제가 간단하다.

효율적인 운영

  • 복사/붙여넣기만으로도 서비스 배포가 가능하다.
  • 시스템 검토(inspection)가 용이하다.

안정적인 서비스 제공

  • 버전 관리를 통해 시스템의 상태를 추적할 수 있다
  • 문제 발생 시 이전 버전으로 쉽게 롤백할 수 있다

이러한 이점을 가진 가상화 기술의 장점을 더욱 극대화한 것이 바로 IaC(Infrastructure as Code) 이다.

IaC는 인프라 구성을 코드로 작성하고 관리할 수 있게 해준다.

즉, 프로그래밍 방식으로 하드웨어(인프라)를 구축하고 관리할 수 있게 된 것이다.
이는 가상화된 환경이기에 가능한 새로운 방법이다.

하지만, 여기서 주목해야 할 점은 IaC는 클라우드 네이티브 환경을 구성하는 여러 기술 중 하나일 뿐이라는 것이다.

클라우드 네이티브는 단순히 인프라를 자동화하는 것을 넘어서, 클라우드 환경에 최적화된 애플리케이션을 개발하고 운영하는 더 넓은 개념이라는 걸 알아줬으면 좋겠다!

💡 참고

코드로 인프라를 구성하는 것을 IaC라고 설명했다.

하지만, 아마 이 내용만 읽고서는 어떻게 가능한지 이해가 되지 않을 수 있다.

쿠버네티스 Vagrant Github 에 접속해보면 Vagrantfile을 찾을 수 있다.

이 파일이 바로 코드로 쿠버네티스 환경을 설정하는 파일이다.

즉, SRE(Site Reliability Engineer)라는 개념을 만족시키기 위해서는 사람이 직접 설치하는 것을 지양한다.

왜냐하면 Human Mistake가 발생할 수 있기 때문이다.

따라서, 위처럼 Vagrantfile과 같이 쿠버네티스 세팅을 위한 명세를 코드로 작성하여 Cloud 환경을 구축할 수 있다!


OUTRO

기존의 On Promise 방식이 가진 비용과 확장성의 한계를 극복하기 위해 등장한 클라우드 컴퓨팅, 그리고 이를 가능하게 만든 가상화 기술에 대해 살펴봤다.

특히 가상화 기술이 단순히 하드웨어를 소프트웨어로 변경하는 것을 넘어서, 파일 형태의 관리를 통해 유연성과 효율성을 제공하고, 이를 바탕으로 IaC와 같은 기술이 등장하게 되었다는 점을 이해할 수 있었다.

다음 포스팅에서는 클라우드 네이티브 환경의 또 다른 핵심 요소인 MSA(Microservice Architecture)에 대해서도 정리해보고자 한다!


참고

온프레미스 VS 클라우드 차이점과 앞으로의 발전방향은?

profile
코린이

0개의 댓글

관련 채용 정보