

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Langkah 3: Deploy dalam produksi menggunakan layanan DynamoDB
<a name="TicTacToe.Phase3"></a>

**Topics**
+ [3.1: Buat peran IAM untuk Amazon EC2](#TicTacToe.DeployInProd.IAMCreateRole)
+ [3.2: Buat tabel game di Amazon DynamoDB](#TicTacToe.DeployInProd.CreateTable)
+ [3.3: Bundel dan gunakan kode tic-tac-toe aplikasi](#TicTacToe.DeployInProd.IAMBundleDeployCode)
+ [3.4: Mengatur lingkungan AWS Elastic Beanstalk](#TicTacToe.DeployInProd.SetUpElasticBeanstalk)

Di bagian sebelumnya, Anda menerapkan dan menguji Tic-Tac-Toe aplikasi secara lokal di komputer Anda menggunakan DynamoDB lokal. Sekarang, Anda men-deploy aplikasi dalam produksi sebagai berikut:
+ Menyebarkan aplikasi menggunakan AWS Elastic Beanstalk, easy-to-use layanan untuk menyebarkan dan menskalakan aplikasi dan layanan web. Untuk informasi selengkapnya, lihat [Menerapkan aplikasi labu](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-flask.html) ke. AWS Elastic Beanstalk

  Elastic Beanstalk meluncurkan satu atau beberapa instans Amazon Elastic Compute Cloud (Amazon EC2), yang Anda konfigurasikan melalui Elastic Beanstalk, tempat aplikasi Anda akan berjalan. Tic-Tac-Toe
+ Menggunakan layanan Amazon DynamoDB, buat tabel `Games` yang ada di AWS , bukan secara lokal di komputer Anda. 

Selain itu, Anda juga harus mengonfigurasi izin. AWS Sumber daya apa pun yang Anda buat, seperti `Games` tabel di DynamoDB, bersifat pribadi secara default. Hanya pemilik sumber daya, yaitu akun AWS yang membuat tabel `Games`, yang dapat mengakses tabel ini. Dengan demikian, secara default Tic-Tac-Toe aplikasi Anda tidak dapat memperbarui `Games` tabel. 

Untuk memberikan izin yang diperlukan, Anda membuat peran AWS Identity and Access Management (IAM) dan memberikan izin peran ini untuk mengakses tabel. `Games` Instans Amazon EC2 Anda pertama-tama akan mengasumsikan peran ini. Sebagai tanggapan, AWS mengembalikan kredensi keamanan sementara yang dapat digunakan instans Amazon EC2 untuk memperbarui tabel `Games` atas nama aplikasi. Tic-Tac-Toe Jika mengonfigurasi aplikasi Elastic Beanstalk, Anda menentukan peran IAM yang dapat diasumsikan oleh instans atau instans Amazon EC2. Untuk informasi selengkapnya tentang peran IAM, lihat [peran IAM untuk amazon EC2 di Panduan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) Pengguna *Amazon* EC2.

**catatan**  
Sebelum Anda membuat instans Amazon EC2 untuk Tic-Tac-Toe aplikasi, Anda harus terlebih dahulu memutuskan AWS Wilayah tempat Anda ingin Elastic Beanstalk untuk membuat instance. Setelah Anda membuat aplikasi Elastic Beanstalk, berikan titik akhir dan nama wilayah yang sama dalam file konfigurasi. Tic-Tac-ToeAplikasi menggunakan informasi dalam file ini untuk membuat `Games` tabel dan mengirim permintaan berikutnya di AWS Wilayah tertentu. Tabel `Games` DynamoDB dan instans Amazon EC2 yang diluncurkan oleh Elastic Beanstalk harus berada di Wilayah yang sama. Untuk daftar Wilayah yang tersedia, lihat [Amazon DynamoDB ](https://docs.aws.amazon.com/general/latest/gr/rande.html#ddb_region) di *Referensi Umum Amazon Web Services*.

Singkatnya, Anda melakukan hal berikut untuk menyebarkan Tic-Tac-Toe aplikasi dalam produksi:

1. Buat peran IAM menggunakan layanan IAM. Anda melampirkan kebijakan pada peran ini yang memberi tindakan DynamoDB izin untuk mengakses `Games` tabel. 

1. Bundel kode Tic-Tac-Toe aplikasi dan file konfigurasi, dan buat `.zip` file. Anda menggunakan `.zip` file ini untuk memberikan kode Tic-Tac-Toe aplikasi ke Elastic Beanstalk untuk diletakkan di server Anda. Untuk informasi selengkapnya tentang membuat paket, lihat [Membuat paket sumber aplikasi](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deployment.source.html) di *Panduan Developer AWS Elastic Beanstalk *.

   Dalam file konfigurasi (`beanstalk.config`), berikan informasi titik akhir dan Wilayah AWS . Tic-Tac-ToeAplikasi ini menggunakan informasi ini untuk menentukan Wilayah DynamoDB mana yang akan diajak bicara. 

1. Siapkan lingkungan Elastic Beanstalk. Elastic Beanstalk meluncurkan instans atau instans Amazon EC2 dan menerapkan bundel aplikasi Anda di dalamnya. Tic-Tac-Toe Setelah lingkungan Elastic Beanstalk siap, berikan nama file konfigurasi dengan menambahkan variabel lingkungan `CONFIG_FILE`.

1. Buat tabel DynamoDB. Menggunakan layanan Amazon DynamoDB, Anda membuat `Games` tabel, bukan secara lokal AWS di komputer Anda. Perlu diingat, tabel ini memiliki kunci primer sederhana yang dibuat dari kunci partisi `GameId` jenis string. 

1. Uji game dalam produksi. 

## 3.1: Buat peran IAM untuk Amazon EC2
<a name="TicTacToe.DeployInProd.IAMCreateRole"></a>

Membuat peran IAM dari jenis **Amazon** EC2 memungkinkan instans Amazon EC2 yang menjalankan aplikasi Tic-Tac-Toe Anda untuk mengambil peran yang benar dan membuat permintaan aplikasi untuk mengakses tabel. `Games` Saat membuat peran, pilih opsi **Kebijakan Kustom** dan salin serta tempel kebijakan berikut.

------
#### [ 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/*"
         ]
      }
   ]
}
```

------

Untuk petunjuk mendetail, lihat [Membuat peran untuk layanan AWS (Konsol Manajemen AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) di *Panduan Pengguna IAM.*

## 3.2: Buat tabel game di Amazon DynamoDB
<a name="TicTacToe.DeployInProd.CreateTable"></a>

Tabel `Games` di DynamoDB menyimpan data game. Jika tabel tidak ada, aplikasi akan membuat tabel untuk Anda. Dalam hal ini, biarkan aplikasi membuat tabel `Games`.

## 3.3: Bundel dan gunakan kode tic-tac-toe aplikasi
<a name="TicTacToe.DeployInProd.IAMBundleDeployCode"></a>

Jika Anda mengikuti langkah-langkah contoh ini, maka Anda sudah mengunduh Tic-Tac-Toe aplikasi. Jika tidak, unduh aplikasi dan ekstrak semua file ke folder di komputer lokal Anda. Untuk petunjuk, lihat [Langkah 1: Deploy dan uji secara lokal](TicTacToe.Phase1.md).

Setelah mengekstrak semua file, Anda akan memiliki folder `code`. Untuk menyerahkan folder ini ke Elastic Beanstalk, gabungkan konten folder ini sebagai file `.zip`. Pertama, tambahkan file konfigurasi ke folder tersebut. Aplikasi Anda menggunakan informasi titik akhir dan Wilayah untuk membuat tabel DynamoDB di Wilayah tertentu dan membuat permintaan operasi tabel berikutnya menggunakan titik akhir yang ditentukan.

1. Beralih ke folder tempat Anda mengunduh Tic-Tac-Toe aplikasi.

1. Di folder root aplikasi, buat file teks bernama `beanstalk.config` dengan konten berikut.

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

   Misalnya, Anda dapat menggunakan konten berikut.

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

   Untuk daftar Wilayah yang tersedia, lihat [Amazon DynamoDB](https://docs.aws.amazon.com/general/latest/gr/rande.html#ddb_region) di *Referensi Umum Amazon Web Services.* 
**penting**  
Wilayah yang ditentukan dalam file konfigurasi adalah lokasi di mana Tic-Tac-Toe aplikasi membuat `Games` tabel di DynamoDB. Anda harus membuat aplikasi Elastic Beanstalk yang dibahas pada bagian berikutnya di Wilayah yang sama. 
**catatan**  
Saat membuat aplikasi Elastic Beanstalk, Anda meminta untuk meluncurkan lingkungan tempat Anda dapat memilih jenis lingkungan. Untuk menguji aplikasi Tic-Tac-Toe contoh, Anda dapat memilih jenis lingkungan **Single Instance**, lewati yang berikut ini, dan pergi ke langkah berikutnya.   
Namun, jenis lingkungan **penyeimbangan beban dan penskalaan otomatis** menyediakan lingkungan dengan ketersediaan tinggi dan dapat diskalakan, sesuatu yang harus Anda pertimbangkan saat membuat dan men-deploy aplikasi lain. Jika memilih jenis lingkungan ini, Anda juga perlu untuk menghasilkan UUID dan menambahkannya ke file konfigurasi, seperti yang ditunjukkan berikut.  

   ```
   [dynamodb]
   region=us-west-2
   endpoint=dynamodb.us-west-2.amazonaws.com
   [flask]
   secret_key= 284e784d-1a25-4a19-92bf-8eeb7a9example
   ```
Dalam komunikasi klien-server, ketika server mengirimkan respons, demi keamanan, server mengirimkan cookie bertanda tangan yang dikirim kembali oleh klien ke server pada permintaan berikutnya. Jika hanya ada satu server, server dapat secara lokal menghasilkan kunci enkripsi saat server dimulai. Jika ada banyak server, semua server perlu mengetahui kunci enkripsi yang sama; jika tidak, server tersebut tidak akan dapat membaca cookie yang ditetapkan oleh server peer. Dengan menambahkan `secret_key` ke file konfigurasi, Anda memberi tahu semua server untuk menggunakan kunci enkripsi ini.

1. Buka konten folder root aplikasi (yang mencakup file `beanstalk.config`), misalnya, `TicTacToe.zip`. 

1. Unggah file `.zip` ke bucket Amazon Simple Storage Service (Amazon S3). Di bagian berikutnya, Anda akan menyediakan file `.zip` ini ke Elastic Beanstalk untuk mengunggah di server atau di beberapa server.

   Untuk petunjuk tentang cara mengunggah bucket Amazon S3, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) dan [Menambahkan objek ke bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PuttingAnObjectInABucket.html) di *Panduan Pengguna Amazon Simple Storage Service.*

## 3.4: Mengatur lingkungan AWS Elastic Beanstalk
<a name="TicTacToe.DeployInProd.SetUpElasticBeanstalk"></a>

Pada langkah ini, Anda akan membuat aplikasi Elastic Beanstalk, yang merupakan kumpulan komponen termasuk lingkungan. Untuk contoh ini, Anda meluncurkan satu instans Amazon EC2 untuk menerapkan dan menjalankan aplikasi Anda. Tic-Tac-Toe

1. Masukkan URL kustom berikut untuk mengatur konsol Elastic Beanstalk dalam mengatur lingkungan.

   ```
   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
   ```

   Untuk informasi selengkapnya tentang kustom URLs, [lihat Membuat URL Launch Now](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/launch-now-url.html) di *Panduan AWS Elastic Beanstalk Pengembang*. Untuk URL, perhatikan berikut ini:
   + Anda harus memberikan nama AWS Wilayah (sama dengan yang Anda berikan dalam file konfigurasi), nama bucket Amazon S3, dan nama objek. 
   + Untuk pengujian, URL meminta jenis **SingleInstance**lingkungan, dan `t1.micro` sebagai tipe instance.
   + Nama aplikasi harus unik. Dengan demikian, di URL sebelumnya, kami sarankan agar Anda menambahkan nama Anda ke `applicationName`.

   Tindakan ini akan membuka konsol Elastic Beanstalk. Dalam beberapa kasus, Anda mungkin perlu masuk.

1. Di konsol Elastic Beanstalk, pilih **Tinjau dan Luncurkan**, lalu pilih **Luncurkan**. 

1. Catat URL untuk referensi di masa mendatang. URL ini membuka halaman beranda Tic-Tac-Toe aplikasi Anda.   
![Tangkapan layar aplikasi yang menampilkan pesan lingkungan sedang dibuat di halaman beranda.](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/images/tic-tac-toe-beanstalk-setup-50.png)

1. Konfigurasikan Tic-Tac-Toe aplikasi sehingga mengetahui lokasi file konfigurasi.

   Setelah Elastic Beanstalk membuat aplikasi, pilih **Konfigurasi**. 

   1. Pilih ikon roda gigi di sebelah **Konfigurasi Perangkat Lunak**, seperti yang ditunjukkan dalam gambar berikut.  
![Tic-tac-toe tangkapan layar aplikasi yang menunjukkan ikon roda gigi di sebelah konfigurasi perangkat lunak.](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/images/tic-tac-toe-beanstalk-setup-60.png)

   1. Di akhir bagian **Properti Lingkungan**, masukkan **CONFIG\_FILE** dan nilai **beanstalk.config**, lalu pilih **Simpan**.

      Mungkin diperlukan waktu beberapa menit hingga pembaruan lingkungan ini selesai.   
![Tangkapan layar aplikasi yang menampilkan bagian properti lingkungan.](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/images/tic-tac-toe-beanstalk-setup-70.png)

   Setelah pembaruan selesai, Anda bisa memainkan game.

1. Di browser, masukkan URL yang Anda salin pada langkah sebelumnya, seperti yang ditunjukkan pada contoh berikut. 

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

   Tindakan ini akan membuka halaman beranda aplikasi.  
![Tangkapan layar halaman beranda aplikasi yang memperlihatkan tombol buat, undangan, game sedang dimainkan, dan riwayat terkini.](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/images/tic-tac-toe-inprod-playgame-10.png)

1. Masuk sebagai testuser1, dan pilih **CREATE** untuk memulai game baru tic-tac-toe. 

1. Masukkan **testuser2** di kotak **Pilih Lawan**.  
![Tangkapan layar aplikasi yang menunjukkan kotak pilih lawan.](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/images/tic-tac-toe-inprod-playgame-20.png)

1. Buka jendela browser lain. 

   Pastikan Anda menghapus semua cookie di jendela browser Anda sehingga Anda tidak akan login sebagai pengguna yang sama.

1. Masukkan URL yang sama untuk membuka halaman beranda aplikasi, seperti yang ditunjukkan dalam contoh berikut.

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

1. Masuk sebagai testuser2.

1. Untuk undangan dari testuser1 dalam daftar undangan yang tertunda, pilih **terima**.  
![Tangkapan layar aplikasi yang menampilkan undangan testuser1 dalam daftar undangan.](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/images/tic-tac-toe-inprod-playgame-30.png)

1. Sekarang halaman game muncul.  
![Screenshot aplikasi menunjukkan tic-tac-toe grid kosong.](http://docs.aws.amazon.com/id_id/amazondynamodb/latest/developerguide/images/tic-tac-toe-inprod-playgame-40.png)

   Testuser1 dan testuser2 dapat memainkan game. Untuk setiap langkah, aplikasi menyimpan langkah tersebut di item yang sesuai di tabel `Games`. 