Neuer AWS-Service: Amazon Elastic Transcoder (Video-Konvertierung)

Seit heute gibt es (für mich völlig überraschend) einen brandneuen Video-Konvertierungs-Service in der Amazon Cloud.

Dieser Service kann Videos von einem S3-Bucket automatisiert von vielen Eingangsformaten (flv,3gp, mp4, etc.) nach MP4 basierend auf unterschiedlichsten Profiles konvertieren und dabei auch ein Thumbnail erzeugen. Der Preis wird pro Video-Minute berechnet:

  • Standard Definition – SD (Resolution of less than 720p) $0.017 per minute in EU Region
  • High Definition – HD (Resolution of 720p or above) $0.034 per minute in EU Region

CloudFront Caching

CloudFront ermöglichkeit das weltweite verteilte lokale Caching, damit auf Daten in S3-Buckets oder von Custom HTTP Origins (externe URLs soder Elastic Load Balancer) schneller zugegriffen werden kann.

CloudFront Daten werden standardmäßig 24h in den lokalen Edges gecached. Übersteuern kann man diese, wenn man entsprechende HTTP-Header setzt.

Gerade bei S3-Daten ist wichtig, das jede S3-Datei den HTTP-Header “Cache-Control” = “max-age=Wert in Sekunden” bekommt. Besonders gemein ist, dass man bei den Behaviors der Cloudfron-Distribution

beim Object Caching “customize” einstellen kann und man dann eine Minimum TTL definieren kann. Man schliesst dann folgerichtig (auch beim Lesen der ?-Hilfe), das damit ein fehlender Cache-Control Header bei S3-Dateien gesetzt wird. Nein, es wird nur ein vorhandener überschrieben … also immer auf “use Origin Cache Headers” lassen und dann bei den S3-Dateien die Cache-Header richtig setzten. Kann man mit Tools wie Cloudberry auch einfach für ganz viele Dateien machen …

 

IAM User Rechte einschränken

In vielen Unternehmen müssen Mitarbeiter selbst bei geringsten Beschaffungen sich eine Unterschrift von ihrem Chef holen … in der Amazon Cloud hingegen kann ein Mitarbeiter oft viele tausend Euro auf Knopfdruck ausgeben … sofern man dieses nicht explizit über Rechte in IAM unterbindet.

Viele Unternehmen definieren für Ihre Admins eine IAM-Gruppe “Operators”, die dann mit Rechten aus dem Policy Template “Power User Access” versehen wird. Dadurch haben Mitglieder dieser Gruppe dann Rechte auf alle Module aber nicht auf IAM.

Wenn diese Operators aber in EC2 z.B. keine Reserved Instances kaufen dürfen, dann muss dieses noch durch weitere Policies unterbunden werden. Hier ein Beispiel, wie man den Kauf von EC2 Reserved Instances unterbindet:

1. Für die Gruppe Operators eine weitere Policy hinzufügen:

(mehr …)

falsche Amazon AWS EC2 Reserved Instances gekauft … was tun?

Auch Profis machen Fehler … ;-)

Heute habe ich für einen Kunden eine Reserved Instance gekauft, leider hatte ich bei der Auswahl nicht darauf geachtet, das ich eine Reserved Instance für Linux/VPC brauche und habe statt dessen eine Reserved Instanz Linux M1.Large für 1 Jahr ohne VPC gekauft … und zack waren 780 US$ gebucht.

Allerdings kann man, wenn man so wie wir, Amazon AWS Enterprise Support hat … sofort dort anrufen und das stornieren lassen. Dann wird die irrtümlich gebuchte Reserved Instance als “retired” gebucht und man bekommt eine entsprechende Abbuchung und sofortige Gutschrift über die 780 US$ auf der Kreditkarte und kann dann die Reserved Instance erneut buchen.

 

 

Amazon AWS RDS Datenbank im VPC aus dem Internet erreichbar machen …

Eigentlich will man das genau nicht. Eine Amazon RDS Datenbank im VPC soll eigentlich ja nur aus dem VPC heraus erreichbar sein … aber gerade beim Import von Daten möchte man gerne die Tools auf seinem Arbeitsplatz Rechner nutzen und am liebsten temporär direkt gegen die Datenbank konnektieren ….

Nun, das geht über einen kleinen Trick. Eine Amazon RDS Datenbank im VPC bekommt ein eigenes Network-Interface mit einer lokalen IP-Adresse aus einem entsprechenden Subnets. Kann man sich in der AWS Consule unter EC2 / Network Interfaces ansehen:

Nun kann man diesem RDSNetwork-Interface auch eine Public IP Adresse zuweisen. Man mmacht diese wie folgt:

  • EC2 / Elastic IPs –> Allocate New Address –> in der ComboBox VPC auswählen
  • EC2 / Elastic IPs –> neue IP anklicken –> Associate Address  –> in der Dialog Box dann unter Network Interface die ID des Network Interfaces der RDS Instanz auswählen.
  • Danach unter EC2 / Network Interfaces schauen, ob die Public IP korrekt unserem RDS Network Interface zugewiesen wurde.

Jetzt muss nur noch in der entsprechenden RDS-Security Group der Port für einen ZUgriff aus dem Internet geöffnet werden:

  • EC2 / Security Groups –> In der ComboBox “VPC Security Groups” auswählen –> und dann in der entsprechenden RDS-Security Group den Datenbank-Port (z.B. 3306 oder 1433) für 0.0.0.0/0 öffnen.  Am besten das Ganze auf eine öffentliche IP beschränken und das Ganze sowieso nur TEMPORÄR für Admin-Zwecke machen!