Alexa erwischt mich kalt

Gestern hat mich Alexa kalt erwischt. Wenn man sie mit "guten Morgen" oder "guten Tag" begrüßt, erzählt sie einem immer etwas Interessantes über den jeweiligen Tag. Viele Menschen haben es sich deshalb zur Routine gemacht, sie morgens zu begrüßen. Gestern war "Tag des Mars", und die freundliche Blechdose hat zu diesem Anlass meinen Spiele-Skill "Marsstation" empfohlen. Darüber habe ich mich riesig gefreut, allerdings nicht geahnt, was das für Konsequenzen haben könnte.

 

Wie man an der Grafik oben links sehen kann, haben morgens innerhalb von 10 Minuten fast 1.400 Leute den Skill aktiviert, mehr als zwei pro Sekunde. Darauf war meine bei Amazon gehostete "Lambda-Funktion", in der die Spiel-Logik abgebildet wird, nicht vorbereitet. So kam es häufig zu Timeouts (grüne Linie in der mittleren Grafik) und zweitweise sank die Verfügbarkeit drastisch ab (rechte Grafik).

 

Amazon hat mich nicht vorab über diese Werbeaktion informiert, so dass ich keine Chance hatte, die Kapazität der Lambda-Funktion rechtzeitig zu erhöhen. Ich weiß aber auch nicht, ob ich das getan hätte, wenn sie mich vorher informiert hätten, denn mit so einem Ansturm hätte ich niemals gerechnet. Über den gestrigen Tag haben mehr als 16.000 User den Skill aktiviert, mehr als in den zwei Monaten zuvor.

 

Ich entschuldige mich bei allen, die gestern Probleme hatten, "Marsstation" zu spielen, und hoffe, dass heute alles wieder problemlos läuft.

Kommentar schreiben

Kommentare: 2
  • #1

    Kay Lerch (Mittwoch, 05 Dezember 2018 18:04)

    Hallo Karl,

    ich bin vom Alexa-Team in Deutschland und ein Fan deines Skills geworden. Der Grund für den Ausfall vermute ich weniger in Lambda, sondern in der DynamoDB. Ich nehme an, dass Marsstation diese Datenbank verwendet, um Spielstände zu speichern. Der Datenbank sind Schreib- und Lesekapazitäten zugeschrieben (read/write capacity). Laufen sehr viele Zugriffsanfragen auf einmal ein, werden diese Kapazitäten erschöpft. Es kommt zu einem Anfragen-Stau, der Lambda-Ausführungen auf Antwort warten lässt bis sie schlussendlich in ein Timeout führen. Mein Tipp: diese Kapazitäten hochsetzen (Achtung: cost impact) oder Autoskalierung aktivieren. Weitere Informationen dazu gibt es hier: https://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/HowItWorks.ProvisionedThroughput.html

    Weiter so mit diesem Skill.

  • #2

    Karl Olsberg (Mittwoch, 05 Dezember 2018 18:46)

    @Kay: Vielen Dank für den Hinweis und das Lob! Deine Analyse ist sicherlich korrekt. Hätte ich das vorher geahnt, hätte ich die Kapazität natürlich hochgesetzt. Nun bin ich gewarnt.