처음에 아마존 클라우딩을 접했을 때 만만하게 생각했었는데 결코 호락호락하지 않았다. 적어도  개발 위주의 프로젝트를 하는 나에게는 쉽지만은 않다는 것을 알수 있었다.(저는 주로 Java 어플리케이션 설계나 개발을 하는 입장이라 아래 내용이 좀 다른 경우에서는 맞지 않을수 있습니다.) 그럼에도 불구하고 클라우딩 인프라스트럭처나 컴퓨팅은 거스를수 없는 커다란 흐름이고, 다른 많은 기회를 찾을수 있을 것 같은 강한 Feel을 준 경험이었다.


많은 도큐먼트들이 존재하기에 나는 내가 느끼고 또 시행착오를 통해 얻는 몇가지 Fact를 어쩌면 클라우딩 컴퓨팅의 핵심 서비스가 될수있는 EC2와 네트웍에대한 내용을 정리하고자 한다.



    최고의사 결정자 또는 비용 집행자와의 충분한 이해와 소통 선행

부분은 나의 경우에만 해당될 수도 있는데, 주로 처음으로 클아우딩 컴퓨팅을 도입하는 경우 새로운 기술이고 많은 스타트업 기업들이 선호한다는 정도는 누구나 알고 있지만, 실제로 완료된 경우 청구된 비용에 대해서 첫번째로 실효성에 대하여 문제를 제기하게된다.

 

따라서 스타트기업이나 컴퓨팅 인프라를 효율적으로 바꾸고자 하는경우 클라우딩이 어떠한 점에서 장점을 갖는지 그리고 차후에 이러한 인프라가 기업에 어떠한 Added valuation 가저다 것인지에 대한 설득을 미리 하고 들어가는 것이 좋겠다는 생각을 해본다.


 

    클라우딩 디자인에 대한 마인드.

필요한 경우 서버를 뚝딱 만들고 없애고 복제하고 하는 일들은 클라우딩 환경에서는 일도 아닌 처럼 보였다.

 

하지만 레거시 네트웍 시스템처럼 견고한 인프라를 만들기 위해서는 프로그래밍 패턴처럼 분야에서도 필요한 네트워킹 패턴이 있다는 것을 발견 있었다. 나는 이러한 것을 깨닫기 까지 너무 많은 길을 돌아온 같다. 수없이 네트웍을 생성했다 지우고, EC2인스턴스를 생성하고 지우고, 여러가지 방법으로 VPC환경을 만들고 서브넷을 구성하고……

 

나의 회사에 맞는 미리 정리된 네트워크 디자인 패턴에 대한 개념을 알고 접근했다면 훨씬 쉽게 구성이 가능했을 거란 생각을 한다. 또한 비로소 네트워크 엔지니어가 필요한지 수도 있었다.


 

    명확한 데이터 Flow에대한 이해와 콘트롤 능력

견고한 네트웍 구성을 위해서는 어떻게 네트웍데이터를 콘트롤 것인지 이해를 하고, 데이터  Flow 에대한 설계가 선행되어야 한다.

 

아무리 정리된 네트워크을 하는 템플릿 이용하여 구성한다고 하더라도 원하는 네트웍환경을 구축하기는 어렵다. 모든 경우의 트래픽을End to End  별로 확인하고 변경해야 하는데 네트워킹에대한 이해가 없거나 트래픽을 서버에 직접들어가 콘트롤할수 없는 능력이 없는 경우 문제를 해결하기위하여 너무 많은 시간을 보내야한다.

 

 

     각자 상황에 맞는 베스트한 솔루션 디자인

아마존 클라우딩에는 많은 서비스를 제공한다. (사용하기 쉽다고 하기보다는)  우선 해당 서비스에 대해서 사용할 있는 Approach 용이하다 보니까 생각없이 사용하는 경우가 있는데, 지나고 나서 생각해보니까 그거보다는 너무 Amazon 의존하지 않고도 좋은 솔루션이 있는데 사용했을까 하는 경우가 있다.

 

나는 서비스의 경우 처음에 아마존 서비스를 이용했지만 커스터마이징이 용이한 오픈소스를 사용하고 있으며, 프로덕션이 아닌경우 아마존 RDS 보다는 그냥 EC2인스턴스에 직접 설치해서 사용하고소스 레파지토리도 S3 처음에 사용하다 다시 Sonatype Nexus 사용한다던가하는 이러한 예를 수가있다.

 

아마존 도큐먼트를 읽다보면 첫번째로 솔루션을 아마존에서만 찾게되는데 그럴 필요는 없다는 생각을 하게된다.

 

 

아직도 개선해야할 점이 많지만 우선 회사에서 사용하는 인프라가 문제없을 정도로 만들어 보았다. 그리고 아래 네트웍이 보통 일반적인 네트웍이라고 가정하고 CloudFormation 스크립을 만들었다. 또다른 VPC 구성하고자 하는 경우 스크립스 실행시 입력 파라미터만 변경하면 된다.(로드 벨런스 기본 소프트웨서 설정이 포함되어있습니다. 자바어플리케이션이라는 가정하에…)


마스터 스크립트 


master.json


 사설네트웍 구성 스크립트

 

vpc.json


  어플리케이션 구성 스크립트

 

application.json


  데이터베이스 생성 스립트

 

database.json







 


 

단연 아마존에서 제공하는 도큐먼트가 퀄리티 면에서 좋은 정보를 제공합니다. 그리고 많은 국내 자료들이 있지만  그들 중에서는 다음 링크에서 개념을 잡는데 도움이 되었습니다.(진심 감사)

 

 

 

 

 

 

Posted by Steven J.S Min
,