Serverless는 정말 모든 사람들이 공언한 것처럼 그렇게 싸요?
7470 단어 devopsjavascriptproductivity
Summary: Unless you are operating at massive scale, Serverless is not just cheap, it's a steal. You should get started today.
사람들이 자주 제시하는 서버가 없는 가장 믿을 만한 이유 중 하나는 비용이다.
서버가 없는 프로그램에서는 프로그램이 실행될 때만 돈을 지불합니다.듣기에 대단히 좋다!만약 당신이 바쁠 때만 비용을 지불하면 된다면, 왜 계속 실행 중인 응용 프로그램에 비용을 지불해야 합니까?
내 말은, 너는 물을 너의 집에서 흐르게 해서는 안 된다는 것이다.네가 필요할 때 열고, 필요 없을 때 닫아라. 네가 내 아이가 아니라면.그리고 손을 씻고 물을 계속 흐르게 하세요. 3초의 주의력이 있기 때문에 MINECRAFT를 타러 갑시다!
서버가 없는 것은 물건을 훔치는 것처럼 들린다.예를 들어 어떤 사람이 무슨 일이 일어났는지 깨닫고 규칙을 바꾸기 전에 거래를 시작한다.그런데 서버가 없는 게 얼마나 싸요?
내 말은, 오너라.뭐가 문제야?
Azure 기능의 비용 절감
서버가 없는 비용을 볼 때, 그것은 틀림없이 매우 싸 보일 것이다.예를 들면, 누가 이 싸구려에서 돈을 벌 수 있겠는가.예를 들어 Azure 기능 소비 프로그램은 매달 귀하께 three things의 비용을 받습니다.
장기적으로 볼 때, 당신의 함수는 매일 32258번 운행할 수 있는데, 이것은 당신에게 많은 돈을 들일 것이다.분당 22회.만약 당신이 매일 1초에 한 번씩 함수를 집행한다면, 그것은 2.628e+6회, 또는 2628000회이다.40센트도 안 돼.
하지만 처결은 네가 유일하게 고발된 일이 아니다.너는 집행 시간의 비용을 더 지불해야 한다.
집행 시간은 너의 머릿속에서 더욱 계량화하기 어렵다.그것은 기본적으로 함수를 실행할 때 얼마나 많은 자원을 사용하고 얼마나 오래 사용하는지에 대한 비용이다.이를 GB-s 또는'기가바이트 초'라고 합니다.
그것의 작업 원리는 다음과 같다. 함수가 실행될 때마다 Azure는 가장 가까운 128MB까지 메모리를 반올림한다.따라서 함수가 25MB의 메모리만 사용한다면 128메가바이트가 된다.그것은 또한 그것의 운행 시간을 계산해서 가장 가까운 100밀리초까지 반올림한다.
따라서 만약에 매우 간단한'Hello World'가 서버 함수가 없다면 매번 실행할 때마다 메모리는 128MB에 달하거나, 즉, 125메가바이트에 달할 것이다.실행 원가를 계산하려면 실행의 총 횟수를 계산하고 함수 실행에 필요한 시간을 곱해야 한다.'Hello World'에 대해 100밀리초가 될 것이다. 왜냐하면 이것은 그가 도달할 수 있는 최소치이기 때문이다.
지금 당신이 매일 매초 이 함수를 운행한다고 가정해 보세요.우리는 이미 2628000번을 말했다.이 수를 취하고 함수가 운행하는 밀리초수(100ms)를 곱하세요.
2,628,000 * .100
이것은 우리에게 262280을 주었다.우리는 지금 이 숫자를 함수에 곱해서 매번 운행할 때 사용하는 메모리량을 사용해야 한다. 우리는 이미 125라고 말했다.262,800 * .125
32850에 해당한다.네, 그럼 총 집행시간은 32850GB-s입니다. 얼마예요?아무것도 아니에요.첫 40만 GB-s를 무료로 받을 수 있기 때문이다.
네.그래.그래서 이 모든 처결은 우리에게 40센트를 썼지만 처결 시간은 아무런 대가도 쓰지 않았다.이것은 마치 완전한 윈윈인 것 같다.누가 이런 상업 모델을 통합시켰습니까?
저장이란 코드가 차지하는 저장 공간을 가리킨다.막후에Azure는 코드, 트리거 논리, 쓰기 가능한 대기열을 배치하기 위해 Azure Storage 계정을 사용합니다.
코드만 저장하면 기본적으로 아무것도 아니다.Azure 스토리지 비용은 첫 번째 기가바이트에 도달하기 전까지도 상승하지 않습니다.만약 당신이 대기열에 대량의 데이터를 저장하려고 한다면, 그것은 상승하기 시작할 수도 있지만, 그래도 대량의 데이터를 사용해야 한다.저장은 공짜가 아니지만 거의 공짜라는 것을 명심하세요.
이런 규모에서, Serverless는 거의 돈을 지불해서 우리로 하여금 그것을 사용하게 한다.그러나 우리가 규모를 늘릴 때 무슨 일이 일어날까?위로 올라가는 것 같은데?
페이스북 크기
페이스북 크기의 데이터를 처리하고 있다고 가정해 봅시다.이는 확정하기 어려운 숫자였지만Facebook reports 초당 510K건의 댓글이 올라왔고 293K건의 상태 업데이트가 올라왔으며 136K장의 사진이 올라왔다.모든 트래픽은 아니지만 이 세 가지 요소만 고려하면 초당 939K회 실행됩니다.
한 달에 몇 명이 처형됩니까?
939,000 * 60 (seconds in a minute) * 60 (minutes in an hour) * 24 (hours in a day) * 30 (days in a month)
이것은 우리에게 2.43389e12를 주었다.나는 지금 이 숫자를 어떻게 말해야 할지 모르겠다.백만 명당 20센트 처형(첫 번째 백만 원은 무료)...(2.43389e12 - 1,000,000 free executions ) / 1,000,000 ) * .20 cents per execution
준비되셨습니까$486,777.40. 그 40센트를 잊지 마라.이것은 단지 집행 원가일 뿐이다.이제 집행 시간에 합류합시다.
이 점을 하려면 이 조작들이 얼마나 걸릴지 알아야 한다.댓글을 올리는 데 1초도 안 걸릴 수도 있지만 사진을 올리는 데 몇 초가 걸릴 수도 있다.939K가 실행하는 모든 좋은, 둥근, 임의의 숫자로 1초를 사용하자.매달 몇 명이 처형되는지 계산해 보자.
2.43389e12 * 1
너는 머릿속에서 생각해 낼 수 있다.나는 거의 할 수 있다.현재 이 조작들은 메모리를 얼마나 소모했습니까?이것은 서버 메모리에 얼마나 많은 코드를 불러왔는지에 달려 있다.이것은 말하기 어렵지만, 우리는 그래도 그것을 128MB로 설정하자.이것은 마치 매우 큰 숫자인 것 같다.나는 네가 이렇게 큰 함수를 탑재할 수 있다고 생각한다.
그래서 우리의 마지막 등식은...
2.43389e12 * .125
이것은 우리에게 3.04236e11GB-s를 제공했다. 우리는 첫 번째 40만GB-s를 무료로 얻었다.다음은 0.000016/GB-s.(3.04236e11 - 400,000 free GB-s) * 0.000016 per GB-s
따라서 집행 시간 비용은 4867769.60달러다.그래서 계산서 총액은...486,777.40 execution cost + 4,867,769.60 execution time
모두 53547달러입니다.매달매달우리는 심지어 페이스북의 실제 기능에 접근하지 않았다.그럼 한 달에 500만 넘게?이게 다야?
아니오, 이뿐만이 아니에요.
대역폭 정보
대역폭 비용은 당신이 구름 속에서 하는 모든 것에 적용된다.여기에는 서버 기능이 없습니다.만약 당신이 자신의 데이터 센터를 가지고 있다면, 대역폭을 위해 비용을 지불해야 한다.만약 네가 구름 속에서 그것을 운행한다면, 너는 대역폭을 위해 비용을 지불해야 한다.어쨌든 대역폭.
그럼 대역폭은 얼마예요?Azure는 대역폭 비용을 비례적으로 받습니다.네가 많이 쓸수록 그것은 더욱 싸진다.첫 번째 5GB를 무료로 받을 수 있습니다.그리고 5GB-10TB의 GB당 대역폭 비용은 8.7센트입니다.그리고 다음 40TB에서 8.3센트로 150TB를 넘어섰다가 GB당 5센트로 떨어졌다.
페이스북이 bandwith를 얼마나 사용했다고 생각합니까?아이고.나는 이 계산조차도 할 수 없다고 생각한다.나는 심지어 어디서부터 시작해야 할지조차 모른다.하지만 이는 월 530만 위안의 집행 원가를 훨씬 초과할 것이라고 나는 확신한다.
이것이 바로 페이스북이 자신의 데이터 센터를 가지고 있는 이유다.어느 순간, 당신이 이렇게 거대해져서 자신의 구름이 되는 것은 일리가 있다.
하지만 너는 너의 구름이 아닐 수도 있으니 현실로 돌아가라."전형적인"응용 프로그램에 대해 말하자면, 서버가 없는 비용이 도대체 얼마나 높은지, 우리는 아직 이 문제에 대답하지 않았다.우리 하자.
일반적인 서버 비용 없음
내 친구와 나는 얼마 전에 프로그램을 썼는데, 일부 사람들에게 사용되지만, 전체적으로 보면 대량으로 사용되는 프로그램은 아니다.그것은 매달 약 2만 개의 요청을 처리한다.
심지어 한 번도 보지 않아도 우리는 처결 비용이 무료라는 것을 안다.우리는 백만 관문에서 아직 멀었다.
이것은 우리가 지난 30일 동안의 원가 계기판이다.
사실 우리는 이 프로그램을 위탁 관리하고 실행하기 위해 Zlich를 지불하고 있다.아무것도 아니에요.그것은 완전히 무료다.
우리가 감당하고 있는 대역폭 비용.이는 서버가 없는 애플리케이션이 API이기 때문에 Azure에서 데이터를 전송합니다.만약 이것이 Azure의 같은 구역 내에서 데이터를 이동하는 마이크로 서비스라면, 우리의 대역폭 비용도 0이 될 것이다.이것이 바로 서버가 없는 것이 정말 사람을 놀라게 하는 곳이다.
진정한 거래
그렇다면 서버가 없는 비용이 과대화되었을까?
아니오, 이것은 정말이에요.네가 상당히 큰 규모에 도달할 때까지, 너는 아주 적은 돈을 지불할 것이다. 만약 있다면.서버가 없는 것은 앞으로 상당한 시간 동안 가장 주목할 기술 중의 하나다.게다가 자동 무한 확장에다가 운행할 때도 처리할 필요가 없다는 사실까지 겹치면 머리를 쓸 필요가 없는 문제다.
Reference
이 문제에 관하여(Serverless는 정말 모든 사람들이 공언한 것처럼 그렇게 싸요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/azure/is-serverless-really-as-cheap-as-everyone-claims-4i9n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)