Architektura bezserwerowa umożliwiająca optymalizację kosztów archiwizacji nagrań rozmów w 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ź:
- Amazon S3 pricing;
- AWS Step Functions Pricing;
- AWS Lambda Pricing;
- Amazon SQS Pricing;
- Amazon CloudWatch pricing.
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:
- AWS Step Function;
- AWS Lambda function;
- Amazon SQS queues;
- Amazon EventBridge rule.
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