Architektura bezserwerowa umożliwiająca optymalizację kosztów archiwizacji nagrań rozmów w Amazon Connect

5 lipca 2022

Architektura bezserwerowa amazon connect

Za pomocą poniższego artykułu autorzy przedstawiają rozwiązanie bezserwerowe, aby móc zoptymalizować koszty przechowywania nagrań rozmów z centrum kontaktowego. Rozwiązanie automatyzuje planowanie, dzielenie pamięci masowej i resampling plików nagrań rozmów, co skutkuje natychmiastowymi oszczędnościami kosztów. Rozwiązaniem jest asynchroniczna architektura zbudowana przy użyciu AWS Step Functions, Amazon Simple Queue Service (Amazon SQS) i AWS Lambda.

Amazon Connect zapewnia wielokanałowe centrum kontaktowe typu omnichanel z możliwością utrzymywania nagrań rozmów w celu zapewnienia zgodności i uzyskiwania praktycznych informacji za pomocą Contact Lens dla Amazon Connect i AWS Contact Center Intelligence Partners. Pamięć wymagana do nagrań rozmów może szybko wzrosnąć, ponieważ klienci spełniają wymagania dotyczące zachowania zgodności, często trwające sześć lub więcej lat. Może to prowadzić do setek terabajtów w pamięci długoterminowej.

Omówienie rozwiązania

Gdy agent zakończy rozmowę z klientem, Amazon Connect wysyła nagranie rozmowy do zasobnika Amazon Simple Storage Solution (Amazon S3) z: prefiksem daty i identyfikatora kontaktu, plikiem zapisanym w formacie .WAV i zakodowanym z szybkością transmisji 256 kb/s, pcm_s16le, 8000 Hz, dwoma kanałami i 256 kb/s. Pliki nagrań rozmów są zoptymalizowane w tempie około 2 Mb/min pod kątem przetwarzania wysokiej jakości, takiego jak analiza uczenia maszynowego (zobacz Rysunek nr 1).

Gdy nagranie rozmowy jest wysyłane do Amazon S3, często wykonywane jest przetwarzanie końcowe w celu wygenerowania raportów analitycznych dla agentów i audytorów jakości. Przetwarzanie podrzędne może obejmować usługi, które zapewniają transkrypcje, metryki jakości usług i analizę sentymentu w celu tworzenia raportów i wyzwalania zdarzeń, które można podjąć.

Chociaż ten rodzaj przetwarzania często kończy się w ciągu kilku minut, dalsze aplikacje mogą wymagać ponownych prób przetwarzania. Ze względu na to, że ponowny resampling dźwięku obniża jakość plików audio, konieczne jest opóźnienie ponownego resamplingu do czasu zakończenia przetwarzania. Jako że przetworzone nagrania rozmów są rzadko dostępne w ciągu kilku dni po zakończeniu rozmowy, a tylko niewielki procent jest dostępny dla agentów i audytorów jakości rozmów, nagrania rozmów mogą skorzystać na ponownym resamplingu i przejściu na długoterminowe warstwy pamięci masowej Amazon S3.

Na rysunku nr 2 znaczna liczba usług AWS współpracuje ze sobą, aby zapewnić kompleksowe rozwiązanie optymalizacji kosztów dla nagrań rozmów z centrum kontaktowego.

Reguła harmonogramu Amazon EventBridge uruchamia funkcję step w celu przeprowadzenia procesu ponownego resamplingu wsadowego dla wszystkich nagrań rozmów z ostatnich 7 dni. W pierwszym kroku zadanie funkcji Lambda powtarza zasobnik S3 za pomocą API ListObjectsV2, uzyskując nagrania wywołań (1000 obiektów na powtórzenie) z prefiksem daty sprzed 7 dni.

Kolejne zadanie wywołuje funkcję Lambda wprowadzającą obiekty nagrywania rozmów do kolejki Amazon SQS. Funkcja konwersji audio Lambda odbiera zdarzenia z kolejki Amazon SQS za pośrednictwem integracji mapowania źródła zdarzeń Lambda. Każde równoczesne wywołanie Lambda pobiera zapisane nagranie rozmowy z Amazon S3, ponownie dokonując resamplingu pliku .WAV za pomocą ffmpeg i oznaczając obiekt S3 znacznikiem „converted=True”.

Na koniec funkcja konwersji przesyła ponownie próbkowany plik do Amazon S3, nadpisując oryginalne nagranie rozmowy wraz z nagranym ponownie resamplingiem przy użyciu zoptymalizowanej pod względem kosztów klasy pamięci, takiej jak S3 Glacier Instant Retrieval. S3 Glacier Instant Retrieval zapewnia najniższy koszt dla danych o długim okresie wydajności, które są rzadko dostępne i wymagają odzyskiwania milisekund, na przykład jak podczas odtwarzania nagrań z centrum kontaktowego. Domyślnie Amazon Connect przechowuje nagrania rozmów z włączonym S3 Versioning, zachowując oryginalny plik jako wersję. Za pomocą zasad cyklu życia możesz usuwać wersje obiektów z zasobnika z włączoną obsługą wersji, aby trwale usunąć oryginalną wersję, ponieważ zminimalizuje to przechowywanie oryginalnego nagrania rozmów.

To rozwiązanie przechwytuje błędy w przepływie pracy „funkcji kroku” z rejestrowaniem i kolejką utraconych wiadomości, na przykład w sytuacji wystąpienia błędu podczas ponownego próbkowania pliku nagrania. Zadanie Step Function monitoruje kolejkę Amazon SQS przy użyciu integracji AWS Step Function z AWS SDK z SQS i kończy przepływ pracy po opróżnieniu kolejki. Tabela 1 przedstawia formaty domyślne i ponownie próbkowane.

Resampling

Tabela nr 1 Domyślne i próbkowane nagrania rozmów w formatach audio

Audio sampling formats File size/minute Notes
Bitrate 256 kb/s, pcm_s16le, 8000 Hz, 2 channels, 256 kb/s 2 MB The default for Amazon Connect call recordings. Sampled for audio quality and call analytics processing.
Bitrate 64 kb/s, pcm_alaw, 8000 Hz, 1 channel, 64 kb/s 0.5 MB Resampled to mono channel 8 bit. This resampling is not reversible and should only be performed after all call analytics processing has been completed.

Koszt wyceny

Aby uzyskać informacje o cenach podstawowych usług używanych w tym rozwiązaniu, odwiedź:

Koszty poniesione przez rozwiązanie są oparte na zużyciu i kwalifikują się do AWS Free Tier. Po wykorzystaniu limitu AWS Free Tier koszty użytkowania wynoszą około 0,11 USD za 1000 minut nagrań rozmów. S3 Standard zaczyna się od 0,023 USD za GB/miesiąc; a S3 Glacier Instant Retrieval to 0,004 USD za GB/miesiąc, z 0,003 USD za GB pobierania danych. Podczas 6-letniego okresu zachowania zgodności ponowny resampling oparty na harmonogramie i warstwowanie pamięci masowej skutkują znacznymi oszczędnościami kosztów.

W 6-letnim przykładzie wyszczególnionym w Tabeli nr 2 koszty pamięci masowej S3 Standard wyniosłyby około 356 664 USD za 3 miliony minut nagrywania rozmów miesięcznie. Ponowny resampling dźwięku i warstwowanie S3 Glacier Instant Retrieval zmniejsza 6-letni koszt do około 41 838 USD.

Year Total minutes (3 million/month) Total storage (TB) Cost of storage, S3 Standard (USD) Cost of running the resampling (USD) Cost of resampling solution with S3 Glacier Instant Retrieval (USD)
1 36,000,000 72 10,764 3,960 4,813
2 72,000,000 108 30,636 3,960 5,677
3 108,000,000 144 50,508 3,960 6,541
4 144,000,000 180 70,380 3,960 7,405
5 180,000,000 216 90,252 3,960 8,269
6 216,000,000 252 110,124 3,960 9,133
Total 1,008,000,000 972 356,664 23,760 41,838

Aby samodzielnie zbadać koszty PCA, użyj AWS Cost Explorer lub wybierz Szczegóły Rachunku na AWS Billing Dashboard, aby zobaczyć miesięczne wydatki według usługi.

Wdrażanie rozwiązania

Kod i dokumentacja tego rozwiązania są dostępne po sklonowaniu repozytorium git i można je wdrożyć za pomocą zestawu AWS Cloud Development Kit (AWS CDK).

Bash
# clone repository
git clone https://github.com/aws-samples/amazon-connect-call-recording-cost-optimizer.git
# navigate the project directory
cd amazon-connect-call-recording-cost-optimizer

Zmodyfikuj plik cdk.context.json za pomocą ustawień konfiguracyjnych środowiska, takich jak nazwa_zasobnika. Następnie zainstaluj zależności AWS CDK i wdróż rozwiązanie:

:# ensure you are in the root directory of the repository

./cdk-deploy.sh

Po wdrożeniu można przetestować rozwiązanie do ponownego próbkowania, czekając na wykonanie reguły harmonogramu EventBridge na podstawie zastosowanego ustawienia num_days_age. Możesz również ręcznie uruchomić AWS Step Function z określoną datą, na przykład {"specific_date":"01/01/2022"}.

Wdrożenie AWS CDK tworzy następujące zasoby:

Rozwiązanie obsługuje automatyzację przejścia warstwy pamięci masowej, na przykład S3 Glacier Instant Retrieval. Ponadto cykle życia Amazon S3 można ustawić ręcznie, aby przenieść nagrania rozmów po ponownym resamplingu do alternatywnych klas pamięci masowej Amazon S3.

Porządkowanie

Po zakończeniu eksperymentowania z tym rozwiązaniem oczyść zasoby, uruchamiając polecenie:

cdk destroy

To polecenie usuwa wdrożone zasoby AWS CDK. Jednak zasobnik S3 zawierający nagrania rozmów i grupy dzienników CloudWatch są zachowywane.

Wnioski

To rozwiązanie do resamplingu nagrań rozmów oferuje zautomatyzowaną, zoptymalizowaną pod względem kosztów i skalowalną architekturę, która zmniejsza długoterminowe koszty archiwizacji nagrań rozmów.

 

Źródło: AWS

 

 

 

Case Studies
Referencje

Bardzo profesjonalne podejście, niesamowicie szybki czas reakcji i bardzo miła obsługa sprawiły, że na pewno podejmiemy jeszcze współpracę. 

Marcin Krzaczkowski
Założyciel Automa.Net
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.