avatar RicalDocs

The Daily Stack

  • HOME
  • CATEGORIES
  • TAGS
  • ARCHIVES
  • ABOUT
Home Docker Compose pada Lingkungan AWS
Article

Docker Compose pada Lingkungan AWS

Panduan implementasi Docker Compose untuk deployment aplikasi multi-container di Amazon Web Services.

Published Dec 6, 2024 Updated Oct 3, 2025
By Risnanda Pascal
3 min read
Docker Compose pada Lingkungan AWS
Docker Compose pada Lingkungan AWS

Pendahuluan

Docker Compose merupakan alat orkestrasi kontainer yang memungkinkan pengguna untuk mendefinisikan dan menjalankan aplikasi multi-container menggunakan file konfigurasi YAML. Dalam konteks cloud computing, ini menyederhanakan deployment aplikasi dengan mengelola dependensi antar kontainer secara terpusat.

Prasyarat Konfigurasi

  • Spesifikasi instance EC2 dan konfigurasi jaringan dapat dilihat pada dokumentasi setup instance
  • Konfigurasi dasar Docker environment dijelaskan dalam panduan konfigurasi Docker

Implementasi Docker Compose

Inisialisasi Direktori Projek

Membuat direktori kerja baru dan masuk ke dalamnya:

1
mkdir docker-compose-project && cd docker-compose-project

Konfigurasi Docker Compose

Buat file konfigurasi utama dengan editor nano:

1
nano docker-compose.yml

Format penamaan file Docker Compose bersifat case-sensitive.

Rekomendasi penulisan standar adalah docker-compose.yml dengan huruf kecil dan hyphen.

Salin konfigurasi berikut ke dalam file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: '3.7'
services:
  web:
    image: nginx:${NGINX_VERSION}
    ports:
      - "${PORT_NGINX}:80"
    volumes:
      - ./html:/usr/share/nginx/html
      - ./site-conf/site.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php
    networks:
      - app-network

  php:
    image: php:${PHP_VERSION}
    volumes:
      - ./html:/var/www/html
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

Analisis Konfigurasi:

  • Version Schema 3.7: Mendukung fitur jaringan dan volume terkelola
  • Service Dependency: Kontainer web bergantung pada kontainer php melalui depends_on
  • Environment Variables: Menggunakan variable expansion untuk fleksibilitas versi
  • Network Isolation: Konfigurasi bridge network untuk komunikasi antar kontainer

Konfigurasi Environment Variables

Buat file environment untuk mengelola konfigurasi dinamis:

1
nano .env

Konten file environment:

1
2
3
NGINX_VERSION=1.21-alpine
PORT_NGINX=8080
PHP_VERSION=7.4-fpm

Verifikasi file tersembunyi dengan:

1
ls -la

Konfigurasi Nginx

Ambil konfigurasi virtual host dari repository GitHub:

1
git clone https://github.com/sendiahmadhidayat8/site-conf.git

Deployment Aplikasi

Menjalankan Stack

Jalankan services dalam mode detached:

1
docker compose up -d

Struktur Aplikasi Web

Masuk ke direktori html dan buat file utama:

1
2
cd html/
touch index.php about.php contact.php style.css

index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Situs Docker Compose</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <header>
        <h1>Deployment Berhasil dengan Docker Compose</h1>
        <nav>
            <a href="index.php">Beranda</a>
            <a href="about.php">Tentang</a>
            <a href="contact.php">Kontak</a>
        </nav>
    </header>
    <main>
        <h2>Halaman Utama</h2>
        <p>Aplikasi ini dijalankan menggunakan stack Nginx + PHP-FPM pada lingkungan Docker Compose</p>
        <?php echo '<p>Status PHP: ' . phpversion() . '</p>'; ?>
    </main>
    <footer>
        <p>&copy; 2024 Cloud Computing Lab</p>
    </footer>
</body>
</html>

about.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>About Us</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <header>
    <h1>About Us</h1>
    <nav>
      <a href="index.php">Home</a>
      <a href="about.php">About</a>
      <a href="contact.php">Contact</a>
    </nav>
  </header>
  <main>
    <h2>About Us</h2>
    <p>This page contains information about our website and team.</p>
  </main>
  <footer>
    <p>&copy; 2024 My Website</p>
  </footer>
</body>
</html>

contact.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Contact Us</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <header>
    <h1>Contact Us</h1>
    <nav>
      <a href="index.php">Home</a>
      <a href="about.php">About</a>
      <a href="contact.php">Contact</a>
    </nav>
  </header>
  <main>
    <h2>Contact Information</h2>
    <form action="#" method="POST">
      <label for="name">Name:</label>
      <input type="text" id="name" name="name" required>
      <br><br>
      <label for="email">Email:</label>
      <input type="email" id="email" name="email" required>
      <br><br>
      <label for="message">Message:</label>
      <textarea id="message" name="message" rows="5" required></textarea>
      <br><br>
      <button type="submit">Submit</button>
    </form>
  </main>
  <footer>
    <p>&copy; 2024 My Website</p>
  </footer>
</body>
</html>

style.css

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
:root {
  --primary-color: #2c3e50;
  --secondary-color: #34495e;
}

body {
  font-family: 'Segoe UI', system-ui, sans-serif;
  margin: 0;
  padding: 0;
  line-height: 1.6;
}

header {
  background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
  color: white;
  padding: 2rem 0;
  text-align: center;
}

nav a {
  color: #ecf0f1;
  margin: 0 15px;
  text-decoration: none;
  transition: color 0.3s;
}

Validasi Deployment

  1. Akses public IP instance AWS melalui browser
  2. Verifikasi semua halaman dapat diakses
  3. Periksa log kontainer dengan docker compose logs

Keuntungan Implementasi

  • Setiap service berjalan dalam kontainer terpisah
  • Konfigurasi dapat digunakan di berbagai environment
  • Mudah untuk menambah replika service

Troubleshooting

  • Pastikan security group mengizinkan akses ke port yang digunakan
  • Verifikasi konfigurasi path volume mounting
  • Periksa resource utilization instance EC2

Pranala Menarik

  • Docker on AWS
  • Docker Command Reference
Cloud Computing, AWS
docker cloud computing
This content is licensed under CC BY 4.0 by the author.
Share
External Links
  • RicalNet

Table of Contents

Related Articles

Nov 15, 2024

Docker on AWS

Eksperimen penerapan NGINX dalam lingkungan kontainer Docker menggunakan AWS Sandbox Environment.

Sep 23, 2025

Membangun Infrastruktur Cloud AWS dengan Keamanan Berlapis

Implementasi praktis Amazon VPC, segmentasi subnet, Bastion Host untuk akses terjamin, NAT Gateway untuk koneksi internet terbatas, serta konfigurasi NACL, Security Group, VPC Peering, dan IPv6.

Sep 22, 2025

Membuat dan Mengelola Database Amazon RDS

Panduan proses pembuatan, konfigurasi, dan pengelolaan dasar sebuah instance database menggunakan layanan Amazon Relational Database Service (RDS).

CalDownloader

Konfigurasi VPN Menggunakan Router di Cisco Packet Tracer

RicalNet © Some rights reserved

This site was last updated on October 11, 2025

Privacy Policy • Source code

Trending Tags

linux cloud computing privacy docker self-hosted cryptography android cisco packet tracer telecommunications tools

An updated version of this content is available