

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

# Menggunakan Bucket Amazon S3
<a name="gettingstarted.walkthrough.photoapp"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Aplikasi sering menggunakan bucket Amazon Simple Storage Service (Amazon S3) untuk menyimpan item besar seperti gambar atau file media lainnya. Meskipun OpsWorks Stacks tidak menyediakan dukungan terintegrasi untuk Amazon S3, Anda dapat dengan mudah menyesuaikan tumpukan untuk memungkinkan aplikasi Anda menggunakan penyimpanan Amazon S3. Topik ini memandu Anda melalui proses dasar menyediakan akses Amazon S3 ke aplikasi, menggunakan tumpukan Linux dengan server aplikasi PHP sebagai contoh. Prinsip dasar juga berlaku untuk tumpukan Windows.

Konten yang dikirimkan ke bucket Amazon S3 mungkin berisi konten pelanggan. Untuk informasi selengkapnya tentang menghapus data sensitif, lihat [Bagaimana Cara Mengosongkan Bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) atau [Bagaimana Saya Menghapus Bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) .

**Topics**
+ [Langkah 1: Buat Bucket Amazon S3](using-s3-bucket.md)
+ [Langkah 2: Buat Tumpukan Server Aplikasi PHP](using-s3-stack.md)
+ [Langkah 3: Buat dan Terapkan Buku Masak Kustom](using-s3-cookbook.md)
+ [Langkah 4: Tetapkan Resep ke Acara LifeCycle](using-s3-events.md)
+ [Langkah 5: Tambahkan Informasi Akses ke Konfigurasi Stack dan Atribut Deployment](using-s3-json.md)
+ [Langkah 6: Menyebarkan dan Jalankan PhotoApp](using-s3-run.md)

# Langkah 1: Buat Bucket Amazon S3
<a name="using-s3-bucket"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Anda harus terlebih dahulu membuat bucket Amazon S3. Anda dapat melakukan ini secara langsung dengan menggunakan konsol Amazon S3, API, atau CLI, tetapi cara yang lebih sederhana untuk membuat sumber daya sering menggunakan template. CloudFormation Template berikut membuat bucket Amazon S3 untuk contoh ini dan menyiapkan [profil instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html) dengan [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html) yang memberikan akses tak terbatas ke bucket. Anda kemudian dapat menggunakan pengaturan lapisan untuk melampirkan profil instance ke instance server aplikasi stack, yang memungkinkan aplikasi mengakses bucket, seperti yang dijelaskan nanti. Kegunaan profil instans tidak terbatas pada Amazon S3; mereka berharga untuk mengintegrasikan berbagai layanan AWS. 

```
{
   "AWSTemplateFormatVersion" : "2010-09-09",
   "Resources" : {
      "AppServerRootRole": {
         "Type": "AWS::IAM::Role",
         "Properties": {
            "AssumeRolePolicyDocument": {
               "Statement": [ {
                  "Effect": "Allow",
                  "Principal": {
                     "Service": [ "ec2.amazonaws.com" ]
                  },
                  "Action": [ "sts:AssumeRole" ]
               } ]
            },
            "Path": "/"
         }
      },
      "AppServerRolePolicies": {
         "Type": "AWS::IAM::Policy",
         "Properties": {
            "PolicyName": "AppServerS3Perms",
            "PolicyDocument": {
               "Statement": [ {
                  "Effect": "Allow",
                  "Action": "s3:*",
                  "Resource": { "Fn::Join" : ["", [ "arn:aws:s3:::", { "Ref" : "AppBucket" } , "/*" ]
                  ] }
               } ]
            },
            "Roles": [ { "Ref": "AppServerRootRole" } ]
         }
      },
      "AppServerInstanceProfile": {
         "Type": "AWS::IAM::InstanceProfile",
         "Properties": {
            "Path": "/",
            "Roles": [ { "Ref": "AppServerRootRole" } ]
         }
      },
     "AppBucket" : {
      "Type" : "AWS::S3::Bucket"
      }
   },
   "Outputs" : {
       "BucketName" : {
           "Value" : { "Ref" : "AppBucket" }
       },
       "InstanceProfileName" : {
           "Value" : { "Ref" : "AppServerInstanceProfile" }
       }
   }
}
```

Beberapa hal terjadi ketika Anda meluncurkan template:
+ Sumber `[AWS::S3::Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html)` daya membuat bucket Amazon S3.
+ `[AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)`Sumber daya membuat profil instance yang akan ditugaskan ke instance server aplikasi.
+ `[AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)`Sumber daya menciptakan peran profil instance.
+ Sumber `[AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)` daya menetapkan izin peran untuk mengizinkan akses tidak terbatas ke bucket Amazon S3.
+ `Outputs`Bagian ini menampilkan nama profil bucket dan instance di CloudFormation konsol setelah Anda meluncurkan template.

  Anda akan memerlukan nilai-nilai ini untuk mengatur tumpukan dan aplikasi Anda.

Untuk informasi selengkapnya tentang cara membuat CloudFormation templat, lihat [Pelajari Dasar-Dasar Template](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html).

**Untuk membuat bucket Amazon S3**

1. Salin contoh template ke file teks di sistem Anda.

   Contoh ini mengasumsikan bahwa file tersebut diberi nama`appserver.template`.

1. Buka [CloudFormation](https://console.aws.amazon.com/cloudformation/)konsol dan pilih **Create Stack**.

1. Di kotak **Stack Name**, masukkan nama tumpukan.

   Contoh ini mengasumsikan bahwa namanya adalah**AppServer**.

1. Pilih **Unggah file templat**, pilih **Jelajahi**, pilih `appserver.template` file yang Anda buat di Langkah 1, lalu pilih **Langkah Berikutnya**.

1. Pada halaman **Tentukan Parameter**, pilih **Saya mengakui bahwa templat ini dapat membuat sumber daya IAM**, lalu pilih **Langkah Berikutnya** pada setiap halaman wizard hingga Anda mencapai akhir. Pilih **Buat**. 

1. **Setelah **AppServer**tumpukan mencapai status **CREATE\$1COMPLETE**, pilih dan pilih tab Output.**

   Anda mungkin perlu menyegarkan beberapa kali untuk memperbarui status.

1. Pada tab **Output**, catat **BucketName**dan **InstanceProfileName**nilai untuk digunakan nanti.

**catatan**  
CloudFormation menggunakan istilah *tumpukan* untuk merujuk pada kumpulan sumber daya yang dibuat dari template; itu tidak sama dengan tumpukan OpsWorks Stacks.

# Langkah 2: Buat Tumpukan Server Aplikasi PHP
<a name="using-s3-stack"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Tumpukan terdiri dari dua lapisan, PHP App Server dan MySQL, masing-masing dengan satu instance. Aplikasi ini menyimpan foto di bucket Amazon S3, tetapi menggunakan instance MySQL sebagai penyimpanan data back-end untuk menyimpan metadata untuk setiap foto.

Konten yang dikirimkan ke bucket Amazon S3 mungkin berisi konten pelanggan. Untuk informasi selengkapnya tentang menghapus data sensitif, lihat [Bagaimana Cara Mengosongkan Bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) atau [Bagaimana Saya Menghapus Bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) .

**Untuk membuat tumpukan**

1. Buat tumpukan baru—dinamai **PhotoSite** untuk contoh ini—dan tambahkan lapisan PHP App Server. Anda dapat menggunakan pengaturan default untuk keduanya. Untuk informasi selengkapnya, lihat [Buat Stack Baru](workingstacks-creating.md) dan [Membuat OpsWorks Layer](workinglayers-basics-create.md).

1. Pada halaman **Layers**, untuk PHP App Server, pilih **Security** dan kemudian pilih **Edit**.

1. Di bagian **Layer Profile**, pilih nama profil instance yang Anda rekam sebelumnya, setelah meluncurkan AppServer CloudFormation tumpukan. Ini akan menjadi sesuatu seperti`AppServer-AppServerInstanceProfile-1Q3KD0DNMGB90`. OpsWorks Stacks menetapkan profil ini ke semua EC2 instance Amazon layer, yang memberikan izin untuk mengakses bucket Amazon S3 Anda ke aplikasi yang berjalan pada instance layer.  
![\[IAM Instance Profile dropdown showing available profiles, including a custom AppServer profile.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/photoapp_profile.png)

1. Tambahkan instance ke lapisan PHP App Server dan mulai. Untuk informasi selengkapnya tentang cara menambahkan dan memulai instance, lihat[Menambahkan Instance ke Layer](workinginstances-add.md).

1. Tambahkan layer MySQL ke tumpukan, tambahkan instance, dan mulai. Anda dapat menggunakan pengaturan default untuk layer dan instance. Secara khusus, instance MySQL tidak perlu mengakses bucket Amazon S3, sehingga dapat menggunakan profil instans Stacks OpsWorks standar, yang dipilih secara default.

# Langkah 3: Buat dan Terapkan Buku Masak Kustom
<a name="using-s3-cookbook"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Tumpukan belum cukup siap:
+ Aplikasi Anda memerlukan beberapa informasi untuk mengakses ke server database MySQL dan bucket Amazon S3, seperti nama host database dan nama bucket Amazon S3.
+ Anda perlu menyiapkan database di server database MySQL dan membuat tabel untuk menyimpan metadata foto.

Anda dapat menangani tugas-tugas ini secara manual, tetapi pendekatan yang lebih baik adalah menerapkan *resep* Chef dan meminta OpsWorks Stacks menjalankan resep secara otomatis pada instance yang sesuai. Resep koki adalah aplikasi Ruby khusus yang digunakan OpsWorks Stacks untuk melakukan tugas pada instance seperti menginstal paket atau membuat file konfigurasi. Mereka dikemas dalam *buku masak*, yang dapat berisi beberapa resep dan file terkait seperti template untuk file konfigurasi. Buku masak ditempatkan di repositori seperti GitHub, dan harus memiliki struktur direktori standar. Jika Anda belum memiliki repositori buku masak khusus, lihat [Repositori Buku Masak](workingcookbook-installingcustom-repo.md) untuk informasi tentang cara mengaturnya.

Untuk contoh ini, buku masak telah diimplementasikan untuk Anda dan disimpan dalam [ GitHub repositori publik](https://github.com/amazonwebservices/opsworks-example-cookbooks/tree/master/photoapp). Buku masak berisi dua resep, `appsetup.rb` dan`dbsetup.rb`, dan file templat,`db-connect.php.erb`.

`appsetup.rb`Resep membuat file konfigurasi yang berisi informasi yang dibutuhkan aplikasi untuk mengakses database dan bucket Amazon S3. Ini pada dasarnya adalah versi `appsetup.rb` resep yang dimodifikasi ringan yang dijelaskan dalam[Connect Aplikasi ke Database](gettingstarted-db-recipes.md#gettingstarted-db-recipes-appsetup). Perbedaan utama adalah variabel yang diteruskan ke template, yang mewakili informasi akses.

Empat atribut pertama menentukan pengaturan koneksi database, dan secara otomatis ditentukan oleh OpsWorks Stacks ketika Anda membuat instance MySQL.

Ada dua perbedaan antara variabel-variabel ini dan yang ada di resep aslinya:
+ Seperti resep asli, `table` variabel mewakili nama tabel database yang dibuat oleh`dbsetup.rb`, dan diatur ke nilai atribut yang didefinisikan dalam file atribut buku masak.

  Namun, atribut memiliki nama yang berbeda:`[:photoapp][:dbtable]`.
+ `s3bucket`Variabel khusus untuk contoh ini dan disetel ke nilai atribut yang mewakili nama bucket Amazon S3,. `[:photobucket]`

   `[:photobucket]`didefinisikan dengan menggunakan JSON kustom, seperti yang dijelaskan nanti. Untuk informasi lebih lanjut tentang atribut, lihat [Atribut](workingcookbook-installingcustom-components-attributes.md)

Untuk informasi lebih lanjut tentang atribut, lihat[Atribut](workingcookbook-installingcustom-components-attributes.md).

`dbsetup.rb`Resep menyiapkan tabel database untuk menyimpan metadata setiap foto. Ini pada dasarnya adalah versi `dbsetup.rb` resep yang dimodifikasi ringan yang dijelaskan dalam[Mengatur Database](gettingstarted-db-recipes.md#gettingstarted-db-recipes-dbsetup); lihat topik itu untuk deskripsi rinci. 

Satu-satunya perbedaan antara contoh ini dan resep asli adalah skema database, yang memiliki tiga kolom yang berisi ID, URL, dan keterangan dari setiap foto yang disimpan di bucket Amazon S3.

Resep sudah diimplementasikan, jadi yang perlu Anda lakukan hanyalah menyebarkan buku masak photoapp ke cache buku masak setiap instance. OpsWorks Stacks kemudian menjalankan resep cache ketika peristiwa siklus hidup yang sesuai terjadi, seperti yang dijelaskan nanti.

**Untuk menyebarkan buku masak photoapp**

1. Pada halaman OpsWorks Stacks **Stack**, pilih **Stack Settings** dan kemudian pilih **Edit**.

1. Di bagian **Manajemen Konfigurasi**:
   + Atur **Gunakan buku masak Chef khusus** ke **Ya**.
   + Atur **jenis Repositori** ke Git.
   + Setel **URL Repositori ke**. **git://github.com/amazonwebservices/opsworks-example-cookbooks.git**

1. Pada halaman **Stack**, pilih **Run Command, pilih perintah** **Update Custom Cookbooks** stack, dan kemudian pilih **Update Custom Cookbooks** untuk menginstal buku masak baru di cache buku masak contoh.   
![\[Run Command interface showing Update Custom Cookbooks option and instance selection.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/redis_walkthrough_command.png)

# Langkah 4: Tetapkan Resep ke Acara LifeCycle
<a name="using-s3-events"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Anda dapat menjalankan resep khusus [secara manual](workingcookbook-manual.md), tetapi pendekatan terbaik biasanya adalah memiliki OpsWorks Stacks menjalankannya secara otomatis. Setiap lapisan memiliki satu set resep bawaan yang ditetapkan untuk masing-masing dari lima [peristiwa siklus hidup](workingcookbook-events.md) —Setup, Configure, Deploy, Undeploy, dan Shutdown—. Setiap kali peristiwa terjadi pada sebuah instance, OpsWorks Stacks menjalankan resep terkait untuk setiap lapisan instance, yang menangani tugas yang diperlukan. Misalnya, ketika sebuah instance selesai booting, OpsWorks Stacks memicu peristiwa Setup untuk menjalankan resep Setup, yang biasanya menangani tugas-tugas seperti menginstal dan mengonfigurasi paket.

Anda dapat meminta OpsWorks Stacks menjalankan resep khusus pada instance layer dengan menetapkan setiap resep ke peristiwa siklus hidup yang sesuai. OpsWorks Tumpukan akan menjalankan resep khusus apa pun setelah resep bawaan lapisan selesai. Untuk contoh ini, tetapkan `appsetup.rb` ke event Deploy layer PHP App Server dan `dbsetup.rb` ke event Deploy layer MySQL. OpsWorks Tumpukan kemudian akan menjalankan resep pada instance lapisan terkait selama startup, setelah resep Pengaturan bawaan selesai, dan setiap kali Anda menerapkan aplikasi, setelah resep Deploy yang dibuat selesai. Untuk informasi selengkapnya, lihat [Resep Menjalankan Secara Otomatis](workingcookbook-assigningcustom.md).

**Untuk menetapkan resep kustom ke acara Deploy layer**

1. Pada halaman OpsWorks Stacks **Layers**, untuk PHP App Server pilih **Resep** dan kemudian pilih **Edit**. 

1. Di bawah **Resep Koki Kustom**, tambahkan nama resep ke acara penerapan dan pilih **\$1**. Nama harus dalam `cookbookname::recipename` format Chef, di mana `recipename` tidak termasuk `.rb` ekstensi. Untuk contoh ini, Anda masuk`photoapp::appsetup`. Kemudian pilih **Simpan** untuk memperbarui konfigurasi lapisan.  
![\[Custom Chef Recipes configuration with Repository URL and lifecycle events.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/psb6a.png)

1. **Pada halaman **Layers**, pilih **edit** di kolom Actions layer MySQL.**

1. Tambahkan `photoapp::dbsetup` ke acara Deploy layer dan simpan konfigurasi baru.

# Langkah 5: Tambahkan Informasi Akses ke Konfigurasi Stack dan Atribut Deployment
<a name="using-s3-json"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

`appsetup.rb`Resepnya bergantung pada data dari [konfigurasi tumpukan OpsWorks Stacks dan atribut penerapan](workingcookbook-json.md), yang diinstal pada setiap instance dan berisi informasi terperinci tentang tumpukan dan aplikasi apa pun yang diterapkan. `deploy`Atribut objek memiliki struktur berikut, yang ditampilkan untuk kenyamanan sebagai JSON:

```
{
   ...
  "deploy": {
    "app1": {
      "application" : "short_name",
      ...
    }
    "app2": {
      ...
    }
    ...
  }
}
```

Node deploy berisi atribut untuk setiap aplikasi yang di-deploy yang diberi nama dengan nama pendek aplikasi. Setiap atribut aplikasi berisi sekumpulan atribut yang menentukan konfigurasi aplikasi, seperti root dokumen dan jenis aplikasi. Untuk daftar `deploy` atribut, lihat[menyebarkan Atribut](attributes-json-deploy.md). Anda dapat merepresentasikan konfigurasi tumpukan dan nilai atribut deployment dalam resep Anda dengan menggunakan sintaks atribut Chef. Misalnya, `[:deploy][:app1][:application]` mewakili nama pendek aplikasi app1. 

Resep kustom bergantung pada beberapa konfigurasi tumpukan dan atribut penerapan yang mewakili database dan informasi akses Amazon S3:
+ Atribut koneksi database, seperti`[:deploy][:database][:host]`, didefinisikan oleh OpsWorks Stacks ketika menciptakan lapisan MySQL.
+ Atribut nama tabel`[:photoapp][:dbtable]`,, didefinisikan dalam file atribut buku masak kustom, dan diatur ke`foto`.
+ Anda harus menentukan atribut nama bucket`[:photobucket]`, dengan menggunakan JSON khusus untuk menambahkan atribut ke konfigurasi tumpukan dan atribut penerapan.

**Untuk menentukan atribut nama bucket Amazon S3**

1. Pada halaman OpsWorks Stacks **Stack**, pilih **Stack Settings** dan kemudian **Edit**.

1. Di bagian **Manajemen Konfigurasi**, tambahkan informasi akses ke kotak **Custom Chef JSON**. Seharusnya terlihat seperti berikut:

   ```
   {
     "photobucket" : "yourbucketname"
   }
   ```

   Ganti *yourbucketname* dengan nama bucket yang Anda rekam[Langkah 1: Buat Bucket Amazon S3](using-s3-bucket.md).  
![\[Custom Chef cookbook configuration with Git repository and JSON settings.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/photoapp_walkthrough_json.png)

OpsWorks Stacks menggabungkan JSON kustom ke dalam konfigurasi tumpukan dan atribut penerapan sebelum menginstalnya pada instance tumpukan; kemudian `appsetup.rb` dapat memperoleh nama bucket dari atribut. `[:photobucket]` Jika Anda ingin mengubah bucket, Anda tidak perlu menyentuh resepnya; Anda bisa [mengganti atribut](workingcookbook-attributes.md) untuk memberikan nama bucket baru.

# Langkah 6: Menyebarkan dan Jalankan PhotoApp
<a name="using-s3-run"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Untuk contoh ini, aplikasi juga telah diterapkan untuk Anda dan disimpan dalam [ GitHub repositori publik](https://github.com/amazonwebservices/opsworks-demo-php-photo-share-app). Anda hanya perlu menambahkan aplikasi ke tumpukan, menyebarkannya ke server aplikasi, dan menjalankannya. 

**Untuk menambahkan aplikasi ke tumpukan dan menerapkannya ke server aplikasi**

1. Buka halaman **Aplikasi** dan pilih **Tambahkan aplikasi**.

1. Pada halaman **Add App**, lakukan hal berikut:
   + Setel **Nama** ke**PhotoApp**.
   + Atur **jenis Aplikasi** ke **PHP**.
   + Setel **root Dokumen** ke**web**.
   + **Atur **jenis Repositori** ke Git.**
   + Setel **URL Repositori ke**. **git://github.com/awslabs/opsworks-demo-php-photo-share-app.git**
   + Pilih **Tambah Aplikasi** untuk menerima default untuk pengaturan lainnya.  
![\[Form to add an app with fields for name, type, document root, and repository details.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/photoapp_walkthrough_app.png)

1. Pada halaman **Aplikasi**, pilih **deploy** di kolom **Tindakan PhotoApp ** aplikasi.  
![\[Apps page showing PhotoApp with deploy, edit, and delete options in the Actions column.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/photoapp_walkthrough_deploy.png)

1. Terima default dan pilih **Deploy untuk menyebarkan aplikasi** ke server.

Untuk menjalankan PhotoApp, buka halaman **Instances** dan pilih alamat IP publik instance PHP App Server.

![\[PHP App Server instance details showing hostname, status, and public IP address.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/photoapp_walkthrough_run.png)


Anda akan melihat antarmuka pengguna berikut. Pilih **Tambahkan Foto** untuk menyimpan foto di bucket Amazon S3 dan metadata di penyimpanan data back-end.

![\[User interface section titled "My Photos" with an "Add a Photo" button.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/photoapp_walkthrough_ui.png)
