FinOps

FinOps Certified Practitioner (FOCP) -Review

바쁜 와중에 요즘 자격증 추가가 좀 뜸한거 같아서 2022년 말에 도전했다가 떨어진 FOCP를 다시 도전하였다.

FOCP의 경우에는 Practitioner 자격이라 난이도가 높지는 않다.

하지만 자격증에서 요구하는 바가 일반적인 IT의 시각이 아니다.

FinOps는 재무와의 연결도 포함하고있어서 단순히 DevOps로서의 사일로 뿐만아니라 조직에 대한 사일로 까지 없애려는 노력을 해야하기 때문이다.

https://www.finops.org/introduction/what-is-finops/: FinOps Certified Practitioner (FOCP) -Review

시험의 모든내용은 FinOps Foundation 에 공개되어있다.

그렇기에 어느정도 FinOps문화를 이해할 준비가 되었다면 시험을 볼만하다고 생각한다.

문제가 되었던 장벽은 다음과 같다.

  1. 시험가격 $300
  2. 시험가격 $300
  3. 시험가격 $300
  4. 시험가격 $300
  5. 시험가격 $300

그렇다 시험이 비싸다 할인할때 보자. 1번떨어진 나는 대략 $400 정도 썼다.

시험한번에 3번의 기회를 준다. 나처럼 뒤로가기 눌러서 마지막 시험기회를 날리는 우를 범하지 않길 바란다.

이상으로 글을 마치겠다.

AWS-FinOps-S3-incomplete-multipart-uploads-MPU

S3는 청크 단위로 파일을 잘라서 업로드 할수있는 기능을 제공한다.

이 기능의 정식명칭은 multipart upload 이다.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html

MPU라고 줄여서 부른다.

MPU는 업로드 속도를 빠르게 해줄수있는 아주 좋은 기능이지만, 업로드에 실패할 경우 완성되지 않은 청크단위의 파일들이 S3스토리지에 저장되게 된다. 업로드가 정상적으로 이루어진 경우 청크단위로 나뉜 파일을 하나의 파일로 합쳐서 객체로 보이게 되지만, 그렇지 않은 파일은 우리의 눈에 보이지 않지만 S3의 스토리지에 비용만 발생시키며, 하등 쓸모없는 상태로 저장만 되어있는다. 이런 경우를 "incomplete multipart uploads" 라 부른다.

불완전 멀티파트 업로드/완료되지 않은 멀티파트 업로드 는 Lifecycle 를 통해 삭제 할수있다. 간단한 정책을 만들어서 보여주고자 한다.

설정은 S3 버킷 에서 관리로 가면 수명주기 규칙으로 설정할수 있다.

이설정은 모든 버킷에서 통용적으로 사용할수 있는 규칙이므로 버킷을 생성할때 무조건 넣어도 좋다.

위와같이 "만료된 객체 삭제 마커 또는 완료되지 않은 멀티파트 업로드 삭제" 체크후 "불완전 멀티파트 업로드 삭제" 를 체크하면 된다. 일수는 1일이 최소값이다.

정상적으로 삭제가 동작하면 이런식으로 S3 dashboard에서 불완전한 멀티파트업로드 바이트 차트가 0B로 변경되는것을 확인할수 있다.

불완전 MPU는 대표적으로 이런경우 생성된다.

MPU 업로드 실패.
Athena 쿼리 실패
Redshift UNLOAD 실패등

AWS 서비스에서 S3로 저장하는 액션을 취하다 실패하는경우가 있다면 대부분 "불완전 MPU"가 생성될것이다.

AWS S3 대시보드를 확인하여 "불완전한 MPU" 를 확인하고 삭제해보자.

바닥에 흘리고 다니던 눈먼 동전 줍기가 될것이다.

읽어주셔서 감사하다!
앞으로도 FinOps 시리즈로 찾아 뵙겠다.

AWS FinOps - Intro

이번엔 FinOps에 대한 이야기를 할거다.

먼저 본론으로 들어가기 전에 FinOps에 대한 정의부터 이야기할까 한다.

우리가 흔히 알고있는 DevOps는 Development 과 operations 의 합성어 이다.
FinOps는 이 DevOps 에 Finance를 더한것이다. ( Finance + Development + Operations )
IT infra 상에서 발생하는 비용을 제어하고 투자하는 방식을 말하는것이다.

'투자' 라고 말하면 의아 할수도 있는데 클라우드 상의 자원은 무한하지만 사용자에게 할당된 비용은 유한하다.
그렇기에 제한된 비용내에서 적절한곳에 맞는 리소스를 투입하는것이 FinOps 에서 투자인것이다.

FinOps의 목적은 절약이 아니다.
FinOps는 제한적인 예산에서 낭비되는 비용을 줄여 리소스가 필요한곳에 투입하는것이 FinOps 목적인 것이다.
절약에서 '만' 끝난다면 지속적으로 줄여야하는 비용의 압박에 씨달릴 것이다.

또한 비용관리는 반드시 필요하나, 이 비용관리가 비즈니스의 편의성을 해치고, 확장성과 탄력성에 영향을 준다면 당신을 FinOps를 잘못이해 하고있는것이다.

예를 들어 RI를 구매 후 워크로드가 변화에도 불구하고 RI때문에 유연한 리소스를 사용하지 못한다면 잘못된 방식의 비용관리를 하고 있는 것이다. RI 때문에 서버추가에 대한 고민이나 원하는 유형의 인스턴스를 사용하지 못한다는 것은 클라우드를 사용하는 방식도 아니며, 이런경우 차라리 On-Premises로 의 회귀가 더 저렴할것이며 사용패턴도 맞을것이다.

차후 포스팅 할 내용에서는 먼저 가장 간단히 보고 절약할 부분부터 새로운 아키텍처가 필요한 부분까지 작성할 것이다.

FinOps의 세계가 얼마나 짜릿하고 즐거운 분야인지 같이 느껴보면 좋겠다.

함께 돈을 버는 엔지니어의 세계로 가보자.