그동안 커뮤니티랑 기타 자잘한 서비스를 운영하면서 코로케이션 쿼터랙정도 임대하여 자가 서버 두고 사용했는데요,

최근에 다른 작업으로 급히 3대정도가 필요하여 기존에 코로케이션 사용하던 업체에서 서버호스팅 3대를 신청했습니다.

 

처음에야 부하가 없어서 잘 돌아갔는데, 조금 부하가 생기니(특히 디스크 IO가 조금 있는 서비스였습니다) 디스크 사용률이 100%를 찍고 큐가 잔뜩 쌓여서 서비스가 멈추는 현상이 굉장히 잦아졌더라구요

(후에 업체에 물어보니 한 7~8년된 중고 SSD 돌려막기 하는걸 보고 엄청 충격받았습니다. 것도 재생낸드 수준의 초저가형 브랜드의...)

 

조금만 멈춰도 민감했던 서비스라 이참에 눈팅하면서 봤던 오라클 클라우드로 넘어가볼까 계획하고 준비했습니다.

 

사실 오라클 말고도 Azure나 AWS도 보긴 했는데, AWS 가격은 사악하고 Azure도 3년 약정 걸어야 나올 가격이 오라클은 무약정으로도 가능하더라구요

그것 말고도 대부분 아시다시피 10TB O/B 트래픽이나 A1(Arm) 인스턴스도 덤으로 쓸 수 있는 장점이 있어 오라클로 골라 인프라 구성을 시작했습니다.

 

처음부터 유상 인스턴스를 사용할 계획이었기에 가입하자마자 Paid 계정으로 업그레이드를 시도하는데...

카드 등록이 죽어라 안됩니다. 가입할 때 인증은 되는데 계정 업그레이드시에 결제수단 등록이 안됩니다.

 

브라우저도 바꿔보고 이것저것 해봐도 안되고, 브라우저 콘솔에는 CORS 관련 이슈만 잔뜩 뜨길래 결국 2시간 삽질하고 직접 디버그...하며 결제수단 등록에 성공합니다. (window.parent.postMessage 관련 이슈여서 보내는 데이터를 그냥 직접 부모창에서 쏴줬습니다)

 

타 클라우드 업체와는 다르게 업그레이드가 바로 되는게 아니라 검증 작업이 있어 4~5시간 소요된 것 같습니다.

이 시간 사이에는 그냥 무료계정처럼의 서비스만 이용할 수 있어요.

그 와중에도 기존 서비스에선 모니터링 알림이 계속 울려대서 계속 신경쓰이고..

 

계정 업그레이드 완료되었다는 메일을 수신하고 부랴부랴 인프라 구성에 들어갑니다.

요금 계산기에서는 기본적으로 X7의 인텔 기반 인스턴스를 알려주는데, E3/E4의 AMD Epyc 기반 인스턴스가 훨씬 저렴합니다. 성능표를 참고하여 E4여도 괜찮다 판단하여 E4 인스턴스를 2개 띄우고 블록스토리지도 생성하고 이것저것 설정합니다.

 

중간에 빠뜨린게, 우선은 A1 인스턴스 무료의 달콤한 유혹이 있어 이를 사용해보고자 2일정도 열심히 생성 시도를 했었는데, 무참히 가용공간 부족으로 생성이 안되었었는데요(Korea Central), 저렇게 인스턴스 2개 띄우고 혹시? 하고 시도했는데 바로 생성이 되덥니다.

우연히 그 시간에 잠시 여유가 생겼던 것인지, 아니면 유료 계정으로 올리고 돈 좀 쓰니 풀린건지 그건 오라클만 알겠죠?

 

CPU나 메모리별로 과금하는 구조는 생각보다 마음에 들었습니다.

타 업체는 c5a.xlarge의 경우 4Core 8GB 이런식으로 미리 정형화된(물론 상품들이 그만큼 다양하게 준비는 되어있지만) 인스턴스만 구비되어 있다면, 오라클은 그냥 그때그때 필요한 코어랑 메모리만 넣으면 바로 생성됩니다.

 

다만 블록스토리지의 경우 요금 계산이 조금 힘들었습니다.

계산기에 있는 기가바이트당 성능 지표?인가 이 항목이(아마 VPU로 추정되는) 무엇인지 명확치가 않습니다.

하루 넘게 쓰고 있는 지금도 사실 잘 모르겠습니다. 그냥 청구항목 보면서 추정하고 있을 뿐입니다.

 

그런데 생성시 25k IOPS 제한이 있던 사양(1TB, 10VPU)으로 만들었는데 모니터링을 해보면 27~28k까지는 나오는 것 같습니다. 속도 제한도 480MB/s라고 되어있긴 한데 조금 더 나오는 것 같기도 하구요.

 

VCN(aws의 경우 VPC같은), 가상클라우드 네트워크의 경우 AWS의 SG와는 다르게 여기서만 포트를 열어주면 끝나는게 아니고 인스턴스 내부에서도 iptables에서 또 열어줘야 하는 문제가 있었습니다. (Ubuntu 20.04 이미지 기준)

이것도 몇 시간 삽질해서야 발견했던거라 정말... 인스턴스간 통신은 해야하는데 죽어라 안되고 머리털 다 뽑히는줄 알았네요

 

그래서 요렇게 간단히 서비스 운영할 때 필요한 정도까지 인프라 구축을 간단히 해봤습니다.

Azure나 AWS를 조금씩 깔짝거려봤던 경험이 있어서 그렇게까지 어렵진 않았지만 몇몇 부분의 모호한 표현(특히 번역 이슈가 굉장히 많습니다)과 매뉴얼이 아직 영문으로만 제공되는 것, 또 문서에는 USD 기준인데 정작 서비스엔 SGD 기준으로 여러차례 헷갈리게 만드는 것들은 아직도 적응이 안되네요

그 외 UTC 기본 표시 고정 등 편의성은 조금 불편하긴 합니다.

 

다만 그걸 뛰어넘는 유연성과 가격은 이정도 불편함은 충분히 감내할 수 있을 정도라고 생각합니다.

저처럼 유료까진 아니어도 무료에서도 충분히 양질의 인스턴스를 제공하고 있으니 아직도 안써보신 분들은 무료 인스턴스정도만 생성해서 사용해보셔도 괜찮지 않을까 싶습니다.

 

한 시간 단위로 청구된 비용을 아래에 올려보니 참고가 되셨으면 좋겠습니다.

oracle.png.jpg

 

101-104: 50GB의 부팅 볼륨 -> 상시 무료 적격 대상 (200GB까지, 마지막 행 tags/orci-cloud.free-tier-retained TRUE)

105, 108: 512GB 10VPU 블록 스토리지 Perfomance Units

106-107: 1TB 10VPU 블록 스토리지 Performance Units

109, 112: 512GB 블록 스토리지

110-111: 1TB 블록 스토리지

113-116: 상시 무료 적격 A1(Arm) 인스턴스 2개, 각 2Core 12GB, 두 개 합쳐 무료 상한 4Core 24GB

117-118: E4 인스턴스 메모리, 각 16GB, 8GB

119-120: E4 인스턴스 OCPU, 각 4Core, 2Core

121-124: 아웃바운드 트래픽, 10TB까지 상시 무료 적격

  • profile

    대기업 클라우드는 비용 계산하기가 복잡하지요. 이것저것 쓰다 보면 얼마나 비싸지는지 쉽게 알아채지 못하도록 하려고 일부러 저렇게 자잘하게 쪼개 놓은 게 아닐까 하는 생각이 들 정도입니다. 물론 미리 정확히 알아보고 사용한다면 서프라이즈는 없겠지만, 화폐 단위 자체가 다른 것은 그냥 이 양반들이 생각이 없다고밖에는...

     

    O/S 방화벽은 솔직히 왜 이중으로 세팅해 놨는지 모르겠습니다. 클라우드 UI나 API를 사용해서 포트를 열더라도 서버 내에서 자동으로 열리지 않는다면, 모든 부분을 클라우드 플랫폼에서 컨트롤할 수 있도록 한다는 가장 기본적인 원칙에 어긋나잖아요. 기본 세팅된 룰을 보면 자기네 내부 서비스용 규칙도 쓸데없이 많습니다. 그걸 그대로 유지하지 않으면 뭐가 안 될지 모르니까 건드리기 불안하지요. AWS는 서버 내에 그런 규칙들을 따로 세팅하지 않아도 잘 돌아가거든요? 그냥 오라클 클라우드 네트워크 구조가 쓸데없이 복잡한 것이 아닌가 의심이 됩니다.

     

    결론: AWS 따라쟁이는 세상에 널렸지만, AWS보다 잘 만들어진 것은 아직 본 적이 없습니다. 대부분은 가성비로 승부할 뿐이지요.

  • profile profile
    그렇죠. iptables rules 보고 깜짝 놀랐습니다... 사용성은 AWS가 최고인데 아무래도 기업도 아닌 개인이 쓰기엔 비용이 부담되는것도 사실이죠
    어느정도 타협하면서 쓰고는 있지만, 이렇게 불편하면 정작 기업 사용자들을 잡을 수 있을까 싶습니다.
  • profile profile
    오라클이 타겟으로 삼는 기업 사용자들은 말단 개발자가 불편하든 말든 신경쓰지 않지요. 경쟁사 대비 한 달에 몇억을 절약할 수 있는지가 중요할 뿐...
  • profile profile

    오라클 클라우드가 기본적으로 iSCSI 기반으로 블록스토리지가 연결되어서 작동합니다.
    오라클 클라우드에서도 다른 방법으로 설정 및 세팅도 가능하긴 하는데, iSCSI 성능이 오라클 클라우드에서 더 빠르고 기본적으로 권장됩니다.
    아마 내부적으로 오라클 클라우드는 iSCSI 기술의 장단점 고려하다가, 해당 단점을 감안하고 핵심 기술로 도입하고  타업체와 달리 iSCSI를 택한 것 같습니다.

     

    그런 이유로 오라클 클라우드에서 iptables를 그냥 끄면, 이론상 일반 유저 권한으로 root 사용자의 디스크 권한과 동등한 권한이 확보 가능한 보안 문제가 발생합니다.

  • profile profile

    음, 그런 이유라고 해도 간단한 커널 모듈을 추가하거나, 블록스토리지 연결에 사용하는 NIC를 분리해서 규칙을 단순화하거나, 그 밖의 어떤 방법으로 깔끔하게 커스텀해 줬으면 좋았을 텐데요. 아무리 다른 회사 배포판이라고는 해도, 어디 구석에다가 기본 규칙을 잔뜩 넣어놓고 그대로 쓰라고 하는 것은 자체 리눅스 배포판까지 보유한 대기업 치곤 좀 허술해 보입니다. 특히 우분투 사용자라면 iptables를 그대로 쓰기보다는 ufw 같은 프론트엔드로 컨트롤하려고 할 가능성이 있는데, 그랬다가 디스크가 맛이 가버린다면...

  • profile

    A1 인스턴스 ARM 4-CPU짜리로 Geekbench 5를 돌려봤습니다 (Ubuntu). 궁금하신 분들 참고되세요. 싱글 838, 멀티 3247 나오네요.
    https://browser.geekbench.com/v5/cpu/11358652