Linux

클라우드를 이용해서 어플리케이션 개발시 알아두면 편리한 것들

hongiiv 2012. 11. 8. 18:35
반응형
클라우드의 내부를 알아야 한다. 즉, KT 클라우드를 사용해서 뭔가를 해보고 싶다면 OpenStack에 대해서 좀 알아야 한다. 그래서 넌 좀 뭘 아냐고, 잘 모른다. 내가 클라우드를 구축할 것도 아니기에 기본적으로 클라우드를 이용해서 어플리케이션을 개발시 필요한 사항들만 알면 된다는 의미다.

클라우드스택이 사용자에게 VM을 만들어 주면 우리는 그것을 그냥 쓰면 되는 거지만, 클라우드 스택 자체가 나에게 VM을 만들어주면서 가진 정보를 내가 가져올 수 있는데, 바로 user-data와 meta-data이다. (다음은 KT의 ucloud (즉, OpenStack)에 해당하는 이야기이다.)

맨처음 VM을 만들면 사용자는 다음의 스크립트를 통해 RVM이라는 가상의 서버(내가 만든 VM을 관리하는...)가 있는데, 바로 요놈에게 몇가지 질문을 하면 대답을 해준다.

1. RVM 서버의 주소를 일단 알아보자.
생성된 VM의 쉘에서 다음의 명령을 통해서 RVM 주소를 확인한다. 

# server_ip=$(grep 'option dhcp-server-identifier' /var/lib/dhcp3/dhclient.eth0.leases | tail -1 | awk '{print $NF}' | tr '\;' ' ' | tr -d ' ')
# echo $server_ip
172.27.20.244


2. 이제 질문을 몇가지 수행해 보도록 하자. 질문의 종류(즉, 대답할 수 있는것들)는 앞서 이야기 한바와 같이 user-data, meta-data로 user-data는 vm을 생성하는 시점에서 해당 vm에 전달할 내용에 대한 부분이고,  meta-data는 vm의 온갖 잡다한 정보들이다. 하나씩 보도록 하자.

3. VM의 사양

curl http://172.27.20.244/latest/meta-data/service-offering
tier2 4core 8GB Instance. Virtual Networking

내가 만든 VM은 tier2라는 서비스의 4코어 8GB를 가진 서버임 :)

4. VM의 물리적 위치

curl http://172.27.20.244/latest/meta-data/availability-zone
kr-1 

클라우드는 실제로 데이터센터에 존재하는 실제 물리적인 서버이다. 절대 구름위에 있지 않다. 따라서 이러한 데이터센터의 위치를 zone과 region으로 구분하여 실제 물리적인 서버의 위치를 판단한다. 따라서 추후 서비스를 고려할때 가용성을 위해서 이러한 물리적인 위치는 중요한 정보가 된다. 하지만, KT는 오로지 kr-1 하나라는 점!!!

zone은 서울, 대구, 부산, LA, 뉴욕
region은 아시아(서울, 대구), 북아메리카노(LA, 뉴욕)

위와 같이 region이 좀 더 큰 의미로 쓰인다. zone이 하나의 데이터센터를 의미한다면, 이 하나의 zone안에서도 여러 용도에 따라 클라우드 서버들을 논리적으로 나눌 수 있는데 이때 쓰이는 개념이 바로 domain되겠다. 예를 들어 대기업 사용자를 위한 big-company 도메인과 개인 사용자를 위한 small-company라는 도메인으로 하나의 데이터센터내부의 서버를 구분하여 관리할 수 있겠다. 정리하면 domain < zone < region 이러한 개념은 클라우드 사업자가 마음대로 정의해서 사용할 수 있지만, 암튼 그렇다는 점.

5. 호스트네임
# curl http://172.27.20.244/latest/meta-data/local-hostname
208969e0-9318-4ea4-b44b-7caa80e06e6b

서버에 할당된 호스트네임을 반환하는데, 얼마전 업그레이드 후로 hostname을 비롯한 온갖 값들이 uuid 형태로 변경되었다. 물론 disk 정보도 uuid 형태로 변경!

6. IP 주소
# curl http://172.27.20.244/latest/meta-data/local-ipv4
172.27.209.145

# curl http://172.27.20.244/latest/meta-data/public-ipv4
14.63.216.219

내부 주소와 실제 주소를 각각 반환

위의 내용들은 실제 서버에서 명령을 통해 알 수도 있는 것도 있지만, 위의 정보는 추후 클라우드를 이용해 어플리케이션을 만들때 유용한것들이 알고 있으면 좋음.
 다음번에 user-data~~~ 오늘은 생략 
 
반응형