avatar RicalDocs

The Daily Stack

  • HOME
  • CATEGORIES
  • TAGS
  • ARCHIVES
  • ABOUT
  • MUSIC
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

Cara Deploy NGINX di AWS EC2 Menggunakan Docker

Pelajari cara deploy NGINX dengan Docker di AWS EC2 secara lengkap. Panduan pemula ini mencakup konfigurasi EC2 instance, instalasi Docker, implementasi Docker volumes untuk data persistence, dan p...

Nov 30, 2025

Membangun Sistem Auto-Resize Gambar dengan AWS Lambda dan S3

Pelajari cara membangun sistem resize gambar otomatis menggunakan AWS Lambda dan Amazon S3. Tutorial lengkap dengan konfigurasi IAM, environment variables, dan S3 triggers.

Nov 10, 2025

Membangun Self-Managed Database Server di AWS EC2

Panduan membangun database server mandiri di AWS EC2. Pelajari konfigurasi security group, instalasi LAMP Stack, setup MySQL/MariaDB, deployment aplikasi CRUD, dan best practices keamanan untuk env...

CalDownloader

Konfigurasi VPN Menggunakan Router di Cisco Packet Tracer

RicalNet © Some rights reserved

Last updated on November 30, 2025

Loading...

Privacy Policy • Source code

Trending Tags

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

An updated version of this content is available