

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Schritt 3: Bereitstellen in Produktion mit dem DynamoDB-Service
<a name="TicTacToe.Phase3"></a>

**Topics**
+ [3.1: Erstellen einer IAM-Rolle für Amazon EC2](#TicTacToe.DeployInProd.IAMCreateRole)
+ [3.2: Erstellen der Spiele-Tabelle in Amazon DynamoDB](#TicTacToe.DeployInProd.CreateTable)
+ [3.3: Den Anwendungscode bündeln und bereitstellen tic-tac-toe](#TicTacToe.DeployInProd.IAMBundleDeployCode)
+ [3.4: Richten Sie die AWS Elastic Beanstalk Umgebung ein](#TicTacToe.DeployInProd.SetUpElasticBeanstalk)

In den vorherigen Abschnitten haben Sie die Tic-Tac-Toe Anwendung mithilfe von DynamoDB local lokal auf Ihrem Computer bereitgestellt und getestet. Jetzt können Sie die Anwendung in der Produktion wie folgt bereitstellen:
+ Stellen Sie die Anwendung mithilfe AWS Elastic Beanstalk eines easy-to-use Dienstes für die Bereitstellung und Skalierung von Webanwendungen und -diensten bereit. Weitere Informationen finden Sie unter [Bereitstellen einer Flask-Anwendung auf AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-flask.html).

  Elastic Beanstalk startet eine oder mehrere Amazon Elastic Compute Cloud (Amazon EC2) -Instances, die Sie über Elastic Beanstalk konfigurieren und auf denen Ihre Anwendung ausgeführt wird. Tic-Tac-Toe
+ Erstellen Sie mit dem Amazon-DynamoDB-Service eine `Games`Tabelle, die in AWS anstatt lokal auf Ihrem Computer existiert. 

Außerdem müssen Sie auch Berechtigungen konfigurieren. Alle AWS Ressourcen, die Sie erstellen, wie z. B. die `Games` Tabelle in DynamoDB, sind standardmäßig privat. Nur der Besitzer der Ressourcen, also das AWS-Konto, das die Tabelle `Games` erstellt hat, kann auf diese Tabelle zugreifen. Daher kann Ihre Tic-Tac-Toe Anwendung die Tabelle standardmäßig nicht aktualisieren. `Games` 

Um die erforderlichen Berechtigungen zu erteilen, erstellen Sie eine AWS Identity and Access Management (IAM-) Rolle und gewähren dieser Rolle Berechtigungen für den Zugriff auf die `Games` Tabelle. Ihre Amazon-EC2-Instance übernimmt diese Rolle zum ersten Mal. AWS Gibt als Antwort temporäre Sicherheitsanmeldedaten zurück, die die Amazon EC2 EC2-Instance verwenden kann, um die `Games` Tabelle im Namen der Tic-Tac-Toe Anwendung zu aktualisieren. Wenn Sie die Elastic-Beanstalk-Anwendung konfigurieren, geben Sie die IAM-Rolle an, die die Amazon-EC2-Instance oder Instances übernehmen können. Weitere Informationen zu IAM-Rollen finden Sie unter [IAM-Rollen für Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) im *Amazon-EC2-Benutzerhandbuch*.

**Anmerkung**  
Bevor Sie Amazon EC2 EC2-Instances für die Tic-Tac-Toe Anwendung erstellen, müssen Sie zunächst die AWS Region festlegen, in der Elastic Beanstalk die Instances erstellen soll. Nachdem Sie die Elastic-Beanstalk-Anwendung erstellen, geben Sie denselben Regionsnamen und Endpunkt in einer Konfigurationsdatei an. Die Tic-Tac-Toe Anwendung verwendet die Informationen in dieser Datei, um die `Games` Tabelle zu erstellen und nachfolgende Anfragen in einer bestimmten Region zu senden. AWS Die DynamoDB `Games`-Tabelle und die Amazon-EC2-Instances, die Elastic Beanstalk startet, müssen sich in derselben Region befinden. Eine Liste von verfügbaren Regionen finden Sie unter [Amazon DynamoDB ](https://docs.aws.amazon.com/general/latest/gr/rande.html#ddb_region) in der *Allgemeine Amazon Web Services-Referenz*.

Zusammenfassend gehen Sie wie folgt vor, um die Tic-Tac-Toe Anwendung in der Produktion bereitzustellen:

1. Erstellen Sie eine IAM-Rolle mit dem IAM-Service. Sie fügen dieser Rolle eine Richtlinie an, die Berechtigungen für DynamoDB-Aktionen erteilt, auf die Tabelle `Games` zuzugreifen. 

1. Bündeln Sie den Tic-Tac-Toe Anwendungscode und eine Konfigurationsdatei und erstellen Sie eine `.zip` Datei. Sie verwenden diese `.zip` Datei, um den Tic-Tac-Toe Anwendungscode an Elastic Beanstalk weiterzugeben, damit er ihn auf Ihren Servern platzieren kann. Weitere Informationen zur Erstellung eines Pakets finden Sie unter [Erstellen eines Anwendungsquellenbündel](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deployment.source.html) im *AWS Elastic Beanstalk -Entwicklerhandbuch*.

   In der Konfigurationsdatei (`beanstalk.config`) geben Sie Informationen zu AWS -Regionen und -Endpunkten an. Die Tic-Tac-Toe Anwendung verwendet diese Informationen, um zu bestimmen, mit welcher DynamoDB-Region kommuniziert werden soll. 

1. Einrichten der Elastic Beanstalk-Umgebung. Elastic Beanstalk startet eine oder Amazon EC2 EC2-Instances und stellt Ihr Tic-Tac-Toe Anwendungspaket darauf bereit. Nachdem die Elastic Beanstalk-Umgebung bereit ist, geben Sie den Konfigurationsdateinamen an, indem Sie die `CONFIG_FILE`-Umgebungsvariable hinzufügen.

1. Erstellen einer DynamoDB-Tabelle. Mit dem Amazon DynamoDB-Service erstellen Sie die `Games` Tabelle nicht lokal AWS, sondern auf Ihrem Computer. Denken Sie daran, dass diese Tabelle einen einfachen Primärschlüssel hat, der aus dem `GameId`-Partitionsschlüssel, des Typs Zeichenfolge, besteht. 

1. Testen Sie das Spiel in der Produktion. 

## 3.1: Erstellen einer IAM-Rolle für Amazon EC2
<a name="TicTacToe.DeployInProd.IAMCreateRole"></a>

Durch das Erstellen einer IAM-Rolle des Typs **Amazon EC2** kann die Amazon EC2 EC2-Instance, auf der Ihre Tic-Tac-Toe Anwendung ausgeführt wird, die richtige Rolle übernehmen und Anwendungsanfragen für den Zugriff auf die Tabelle stellen. `Games` Wählen Sie beim Erstellen der Rolle die Option **Custom Policy** (Benutzerdefinierte Richtlinie) aus, kopieren Sie die folgende Richtlinie und fügen Sie sie ein.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Action":[
            "dynamodb:ListTables"
         ],
         "Effect":"Allow",
         "Resource":"*"
      },
      {
         "Action":[
            "dynamodb:*"
         ],
         "Effect":"Allow",
         "Resource":[
            "arn:aws:dynamodb:us-west-2:922852403271:table/Games",
            "arn:aws:dynamodb:us-west-2:922852403271:table/Games/index/*"
         ]
      }
   ]
}
```

------

Weitere Anweisungen finden Sie unter [Erstellen einer Rolle für den AWS -Service (AWS-Managementkonsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) im *IAM-Benutzerhandbuch*.

## 3.2: Erstellen der Spiele-Tabelle in Amazon DynamoDB
<a name="TicTacToe.DeployInProd.CreateTable"></a>

Die `Games`-Tabelle in DynamoDB speichert Spieldaten. Wenn die Tabelle nicht vorhanden ist, erstellt die Anwendung die Tabelle für Sie. Lassen Sie in diesem Fall die Anwendung die `Games`-Tabelle erstellen.

## 3.3: Den Anwendungscode bündeln und bereitstellen tic-tac-toe
<a name="TicTacToe.DeployInProd.IAMBundleDeployCode"></a>

Wenn Sie die Schritte dieses Beispiels befolgt haben, haben Sie die Tic-Tac-Toe Anwendung bereits heruntergeladen. Wenn nicht, laden sie die Anwendung herunter und entpacken Sie alle Dateien in einen Ordner auf Ihrem lokalen Computer. Detaillierte Anweisungen finden Sie unter [Schritt 1: Lokales Bereitstellen und Testen](TicTacToe.Phase1.md).

Nachdem Sie alle Dateien extrahiert haben, verfügen Sie über einen `code`-Ordner. Um diesen Ordner an Elastic Beanstalk zu übergeben, bündeln Sie die Inhalte dieses Ordners als `.zip`-Datei. Zuerst müssen Sie diesem Ordner eine Konfigurationsdatei hinzufügen. Ihre Anwendung verwendet die Region- und Endpunktinformationen zum Erstellen einer DynamoDB-Tabelle in der angegebenen Region und führt nachfolgende Tabellenoperationsanforderungen mithilfe des angegebenen Endpunktes durch.

1. Wechseln Sie zu dem Ordner, in den Sie die Tic-Tac-Toe Anwendung heruntergeladen haben.

1. Erstellen Sie im Stammordner der Anwendung eine Textdatei mit dem Namen `beanstalk.config` mit folgendem Inhalt:

   ```
   [dynamodb]
   region={{<AWS region>}}
   endpoint={{<DynamoDB endpoint>}}
   ```

   Beispielsweise können Sie den folgenden Inhalt verwenden.

   ```
   [dynamodb]
   region=us-west-2
   endpoint=dynamodb.us-west-2.amazonaws.com
   ```

   Eine Liste der verfügbaren Regionen finden Sie unter [Amazon DynamoDB](https://docs.aws.amazon.com/general/latest/gr/rande.html#ddb_region) in der *Allgemeinen Amazon-Web-Services-Referenz.*. 
**Wichtig**  
Die in der Konfigurationsdatei angegebene Region ist der Ort, an dem die Tic-Tac-Toe Anwendung die `Games` Tabelle in DynamoDB erstellt. Sie müssen die Elastic-Beanstalk-Anwendung, die im nächsten Abschnitt behandelt wird, in derselben Region erstellen. 
**Anmerkung**  
Wenn Sie die Elastic-Beanstalk-Anwendung erstellen, werden Sie den Start einer Umgebung anfordern, in der Sie den Umgebungstyp auswählen können. Um die Tic-Tac-Toe Beispielanwendung zu testen, können Sie den Umgebungstyp **Single Instance** wählen, den folgenden Vorgang überspringen und mit dem nächsten Schritt fortfahren.   
Beachten Sie jedoch, dass der Umgebungstyp **Load balancing, autoscaling** eine hoch verfügbare und skalierbare Umgebung bietet. Dies sollten Sie berücksichtigen, wenn Sie andere Anwendungen erstellen und bereitstellen. Wenn Sie diesen Umgebungstyp auswählen, müssen Sie auch eine UUID generieren und diese der Konfigurationsdatei hinzufügen, wie nachfolgend gezeigt.  

   ```
   [dynamodb]
   region=us-west-2
   endpoint=dynamodb.us-west-2.amazonaws.com
   [flask]
   secret_key= 284e784d-1a25-4a19-92bf-8eeb7a9example
   ```
Wenn der Server bei der Client-Server-Kommunikation eine Antwort sendet, verwendet er aus Sicherheitsgründen ein signiertes Cookie, das der Client in der nächsten Anforderung zurück an den Server sendet. Wenn nur ein Server vorhanden ist, kann dieser beim Start lokal einen Verschlüsselungsschlüssel generieren. Wenn viele Server vorhanden sind, müssen alle den gleichen Verschlüsselungsschlüssel kennen. Andernfalls sind sie nicht in der Lage, Cookies zu lesen, die von den Peerservern festgelegt werden. Durch das Hinzufügen von `secret_key` in die Konfigurationsdatei informieren Sie alle Server darüber, dass dieser Verschlüsselungsschlüssel verwendet werden soll.

1. Zippen Sie den Inhalt des Stammordners der Anwendung (einschließlich der `beanstalk.config`-Datei) – zum Beispiel `TicTacToe.zip`. 

1. Laden Sie die `.zip`-Datei in einem Amazon-Simple-Storage-Service-(Amazon-S3)-Bucket hoch. Im nächsten Abschnitt stellen Sie diese `.zip`-Datei für Elastic Beanstalk bereit, um sie auf den oder die Server hochzuladen.

   Anleitungen zum Hochladen einer Datei in einen Amazon S3-Bucket finden Sie unter [Erstellen eines Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) und [Hinzufügen eines Objekts zu einem Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PuttingAnObjectInABucket.html) im *Amazon Simple Storage Service-Benutzerhandbuch*.

## 3.4: Richten Sie die AWS Elastic Beanstalk Umgebung ein
<a name="TicTacToe.DeployInProd.SetUpElasticBeanstalk"></a>

In diesem Schritt erstellen Sie eine Elastic-Beanstalk-Anwendung, die aus einer Sammlung von Komponenten einschließlich Umgebungen besteht. In diesem Beispiel starten Sie eine Amazon EC2 EC2-Instance, um Ihre Tic-Tac-Toe Anwendung bereitzustellen und auszuführen.

1. Geben Sie die folgende benutzerdefinierte URL ein, um eine Elastic-Beanstalk-Konsole zum Einrichten der Umgebung einzurichten.

   ```
   https://console.aws.amazon.com/elasticbeanstalk/?region={{<AWS-Region>}}#/newApplication
   ?applicationName=TicTacToe{{your-name}}
   &solutionStackName=Python
   &sourceBundleUrl=https://s3.amazonaws.com/{{<bucket-name>}}/{{TicTacToe.zip}}
   &environmentType=SingleInstance
   &instanceType=t1.micro
   ```

   Weitere Informationen zu benutzerdefinierten URLs Einstellungen finden Sie unter [Constructing a Launch Now URL](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/launch-now-url.html) im *AWS Elastic Beanstalk Developer* Guide. Bitte beachten Sie für die URL Folgendes:
   + Sie müssen einen AWS Regionsnamen (derselbe, den Sie in der Konfigurationsdatei angegeben haben), einen Amazon S3 S3-Bucket-Namen und den Objektnamen angeben. 
   + Zum Testen fordert die URL den **SingleInstance**Umgebungstyp und `t1.micro` den Instanztyp an.
   + Der Anwendungsname muss eindeutig sein. Demnach haben wir in der vorherigen URL vorgeschlagen, dass Sie Ihren Namen dem `applicationName` voranstellen.

   Dies öffnet die Elastic-Beanstalk-Konsole. In einigen Fällen müssen Sie sich möglicherweise anmelden.

1. Wählen Sie in der Elastic Beanstalk-Konsole **Review and Launch** (Überprüfen und starten) und anschließend **Launch** (Starten) aus. 

1. Notieren Sie die URL für die spätere Verwendung. Diese URL öffnet die Startseite Ihrer Tic-Tac-Toe Anwendung.   
![Screenshot der Anwendung mit der Nachricht „Umgebung wird erstellt“ auf der Homepage.](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/tic-tac-toe-beanstalk-setup-50.png)

1. Konfigurieren Sie die Tic-Tac-Toe Anwendung so, dass sie den Speicherort der Konfigurationsdatei kennt.

   Nachdem Elastic Beanstalk die Anwendung erstellt hat, wählen Sie **Configuration** (Konfiguration) aus. 

   1. Wählen Sie das Zahnradsymbol neben **Software Configuration** (Softwarekonfiguration) aus, wie in folgendem Screenshot gezeigt.  
![Tic-tac-toe Anwendungs-Screenshot mit dem Zahnradsymbol neben der Softwarekonfiguration.](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/tic-tac-toe-beanstalk-setup-60.png)

   1. Geben Sie am Ende des Abschnitts **Environment Properties** (Umgebungseigenschaften) **CONFIG\_FILE** und dafür den Wert **beanstalk.config** ein, und wählen Sie anschließend **Save** (Speichern) aus.

      Es kann ein paar Minuten dauern, bis die Aktualisierung der Umgebung abgeschlossen ist.   
![Screenshot der Anwendung mit dem Abschnitt „Umgebungseigenschaften“.](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/tic-tac-toe-beanstalk-setup-70.png)

   Nachdem die Aktualisierung abgeschlossen ist, können Sie das Spiel spielen.

1. Geben Sie im Browser die URL ein, die Sie im vorherigen Schritt kopiert haben, wie im folgenden Beispiel gezeigt. 

   ```
   http://{{<pen-name>}}.elasticbeanstalk.com
   ```

   Dadurch wird die Startseite der Anwendung geöffnet.  
![Screenshot der Startseite der Anwendung mit den Schaltflächen zum Erstellen, Einladungen, laufenden Spielen und dem jüngsten Verlauf.](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/tic-tac-toe-inprod-playgame-10.png)

1. Melde dich als testuser1 an und wähle **CREATE**, um ein neues tic-tac-toe Spiel zu starten. 

1. Geben Sie **testuser2** in das Feld **Choose an Opponent** (Gegner wählen) ein.  
![Screenshot der Anwendung mit dem Feld für das Wählen eines Gegners.](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/tic-tac-toe-inprod-playgame-20.png)

1. Öffnen Sie ein anderes Browserfenster. 

   Stellen Sie sicher, dass Sie alle Cookies in Ihrem Browser-Fenster löschen, damit Sie nicht als identischer Benutzer angemeldet werden.

1. Geben Sie dieselbe URL ein, um die Startseite der Anwendung zu öffnen, wie in dem folgenden Beispiel gezeigt.

   ```
   http://{{<env-name>}}.elasticbeanstalk.com
   ```

1. Melden Sie sich als Testbenutzer2 an.

1. Wählen Sie für die Einladung von Testbenutzer1 in der Liste der ausstehenden Einladungen **accept** (akzeptieren) aus.  
![Screenshot der Anwendung mit der Einladung testuser1 in der Einladungsliste.](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/tic-tac-toe-inprod-playgame-30.png)

1. Jetzt wird die Spielseite angezeigt..  
![Screenshot der Anwendung, der ein leeres tic-tac-toe Raster zeigt.](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/tic-tac-toe-inprod-playgame-40.png)

   Testbenutzer1 und Testbenutzer2 können das Spiel spielen. Die Anwendung speichert jeden Zug in dem entsprechenden Element in der `Games`-Tabelle. 