Foundry
동영상 스트리밍 설계
심화
핵심

전송 원가

적중률은 성능 지표가 아니라 원가 지표다

요구사항에 전송비가 가장 큰 비용 항목이라고 적혀 있습니다. 이 줄이 있으면 전송을 성능 문제가 아니라 원가 문제로 봐야 합니다. 엣지 전달 자체는 CDN 과 엣지 전달에서 다뤘고, 여기서는 원가를 봅니다.

적중률 몇 포인트가 몇 배가 된다

엣지 적중률이 조금 달라지면 원본에서 나가는 전송량이 몇 배 달라진다 적중률 90퍼센트일 때 원본에서 나가는 양 전체의 10퍼센트 적중률 99퍼센트일 때 전체의 1퍼센트. 10분의 1 적중률 9퍼센트포인트 차이가 원본 전송량 10배 차이가 된다 적중률은 성능 지표가 아니라 원가 지표다 그래서 조각 주소를 사람마다 다르게 만들면 원가가 몇 배가 된다

적중률 90퍼센트면 요청의 10퍼센트가 원본까지 옵니다. 99퍼센트면 1퍼센트가 옵니다. 9퍼센트포인트 차이가 원본 전송량 10배 차이입니다.

성능으로 보면 90퍼센트도 충분히 좋아 보입니다. 원가로 보면 전혀 다릅니다.

그래서 적중률을 떨어뜨리는 것을 찾아 없앱니다.

적중률을 떨어뜨리는 것대응
주소가 사람마다 다르다주소를 같게 하고 권한은 따로 확인한다
조각 길이를 자주 바꾼다이미 캐시된 것이 무효가 된다
캐시 수명이 짧다조각은 바뀌지 않으므로 길게 둔다

세 번째가 값싼 개선입니다. 한 번 만든 조각은 바뀌지 않습니다. 그러면 캐시 수명을 매우 길게 둘 수 있습니다. 목록 파일만 짧게 둡니다. 화질이 추가되면 그것이 바뀌기 때문입니다.

무엇을 캐시할지 고른다

엣지 저장 공간은 무한하지 않습니다. 모든 영상의 모든 조각을 둘 수는 없습니다.

조회가 상위 1퍼센트 영상이 조회의 90퍼센트로 몰려 있는 것이 여기서는 좋은 소식입니다. 상위 영상만 캐시해도 요청의 대부분을 덮습니다.

인기 영상은 엣지에 오래 머문다
안 보는 영상은 엣지에 없고 원본까지 간다

그리고 인기 영상 안에서도 앞부분 조각이 훨씬 많이 요청됩니다. 끝까지 보는 사람이 적기 때문입니다. 공간이 부족하면 뒷부분을 먼저 버리는 편이 낫습니다.

원본을 보호한다

인기 영상이 새로 올라오면 엣지에 없는 상태에서 요청이 몰립니다. 엣지가 저마다 원본에 물어보면 원본이 같은 조각을 수백 번 내보냅니다.

방법내용
같은 조각 요청을 하나로 묶는다원본에는 한 번만 간다
중간 계층을 둔다엣지들이 그 계층에서 받는다

이것은 캐시가 비었을 때 요청이 몰리는 문제이고, 영상에서는 새 인기 영상이 올라올 때마다 생깁니다. 드문 일이 아니므로 처음부터 대비합니다.

지역을 나눠 생각한다

시청자가 여러 지역에 있으면 지역마다 인기 영상이 다릅니다. 모든 지역에 같은 것을 채워 두면 쓰이지 않는 복사가 생깁니다.

지역마다 그 지역의 요청에 따라 채워지게 두는 것이 단순하고 낭비가 적습니다. 다만 처음 요청하는 사람은 느립니다. 그 지역에서 확실히 인기일 것이 예상되면 미리 밀어 넣을 수도 있습니다.

면접에서 이렇게 나옵니다

Q.엣지 적중률이 90퍼센트에서 99퍼센트로 오르면 무엇이 달라집니까

원본에서 나가는 전송량이 10분의 1이 됩니다.

90퍼센트면 요청의 10퍼센트가 원본까지 오고, 99퍼센트면 1퍼센트가 옵니다. 9퍼센트포인트 차이가 10배 차이입니다.

성능으로 보면 90퍼센트도 좋아 보이지만 전송비가 가장 큰 비용 항목이면 이야기가 다릅니다.

적중률은 성능 지표가 아니라 원가 지표입니다.

흔한 실수: 적중률 목표를 성능 관점으로 정하는 것. 90퍼센트에서 만족하면 원가를 열 배 내고 있는 것을 모릅니다. 비용 항목의 크기를 먼저 보면 어디를 얼마나 개선할지가 달라집니다.

Q.조각과 목록 파일의 캐시 수명을 어떻게 두시겠습니까

조각은 아주 길게, 목록은 짧게 둡니다.

한 번 만든 조각은 바뀌지 않습니다. 그러면 캐시 수명을 매우 길게 둘 수 있고, 그것이 가장 값싼 적중률 개선입니다.

목록 파일은 화질이 추가되면 바뀌므로 짧게 둡니다.

적중률을 떨어뜨리는 것대응
주소가 사람마다 다르다주소를 같게 한다
캐시 수명이 짧다조각은 길게 둔다

흔한 실수: 둘에 같은 수명을 주는 것. 목록에 맞춰 짧게 두면 바뀌지 않는 조각을 계속 다시 받아 원가가 오릅니다. 바뀌는 것과 바뀌지 않는 것을 나눠야 합니다.

Q.엣지 공간이 부족하면 무엇을 먼저 버리시겠습니까

인기 없는 영상, 그리고 인기 영상의 뒷부분 조각입니다.

조회가 상위 1퍼센트 영상이 조회의 90퍼센트로 몰려 있어서 상위 영상만 캐시해도 요청의 대부분을 덮습니다.

그리고 인기 영상 안에서도 앞부분 조각이 훨씬 많이 요청됩니다. 끝까지 보는 사람이 적기 때문입니다.

인기 영상은 엣지에 오래 머문다
안 보는 영상은 원본까지 간다

흔한 실수: 영상 단위로만 판단하는 것. 조각 단위로 보면 같은 영상 안에서도 요청 수가 크게 다릅니다. 앞부분과 뒷부분을 같게 다루면 쓰이지 않는 뒷부분이 공간을 차지합니다.

Q.새 인기 영상이 올라올 때 무엇을 대비해야 합니까

엣지가 저마다 원본에 물어봐서 원본이 같은 조각을 수백 번 내보내는 것입니다.

방법내용
같은 조각 요청을 하나로 묶는다원본에는 한 번만 간다
중간 계층을 둔다엣지들이 그 계층에서 받는다

캐시가 비었을 때 요청이 몰리는 문제인데, 영상에서는 새 인기 영상이 올라올 때마다 생깁니다.

흔한 실수: 드문 상황으로 보고 대비를 미루는 것. 인기 영상이 올라오는 것은 매일 일어나는 정상 동작입니다. 그리고 그 순간이 정확히 조회가 가장 많은 순간이라 피해가 큽니다.

먼저 스스로 답해보고 아래 답변과 견줘보세요. 막히는 부분은 문제로 확인할 수 있어요.

읽었으면 문제로 확인해보세요

동영상 스트리밍 설계 문제를 풀면 틀린 문제가 자동으로 노트에 쌓입니다. 가입 없이 5문제를 먼저 풀어볼 수도 있어요.