• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

A Simple AWS-Powered Clinic Appointment System App Using Docker and SNS

Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
Deploying full-stack applications on AWS doesn’t have to be overwhelming.

In this article, I’ll show how I built a basic Clinic Appointment Management System using Docker, FastAPI, and a few core AWS services. The app lets patients book appointments online, sends real-time notifications, and provides a secure way for admins to manage data - all in a lightweight and scalable setup.

If you're looking to get hands-on experience with deploying microservices on AWS, this beginner-friendly project is a great place to start!

Project Overview


This system enables:

  • Patients to book appointments via a simple web UI.
  • Real-time SMS/email notifications using AWS SNS.
  • Admins to access the backend securely through OpenVPN.

With its lightweight and modular setup, this architecture is well-suited for beginners and rapid prototyping.


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



AWS Architecture Overview

1. VPC Setup

  • CIDR Block: 12.0.0.0/16
  • Split into Public and Private subnets for better isolation and control.
  • Internet Gateway for public services.
  • NAT Gateway to allow private instances to access the internet securely (for updates, etc.).
2. Public Subnet Components

Application Load Balancer (ALB)

  • Routes incoming traffic (HTTP/HTTPS) to backend services.
  • Secured via security groups that limit access to only web ports.
OpenVPN Server

  • Deployed on an EC2 instance with an Elastic IP.
  • Allows secure, encrypted access to internal services.
  • Only accessible on UDP Port 1194.
3. Private Subnet Components


This is where the core application logic lives - isolated from the internet.

Dockerized Microservices


Deployed on an EC2 instance using Docker Compose, the system includes:

ServicePortDescription
Frontend8000Public-facing web UI
Patient Service8001Manages patient registration/data
Doctor Service8002Manages doctors and schedules
Appointment Service8003Handles bookings and availability
Notification Service8004Sends confirmations via SNS

Each service uses a lightweight python3.12-slim base with FastAPI + Uvicorn for rapid performance.

PostgreSQL Database

  • Dockerized inside the private subnet.
  • Stores patient, doctor, and appointment records.
  • Only accessible from within the VPC.
4. Admin Access with OpenVPN

  • Admins connect via a VPN client to access the private network.
  • Once authenticated, the admin accesses the PostgreSQL instance within the private subnet using a SQL client.
  • No direct database exposure to the internet - ever.
5. DNS & Multi-AZ Load Balancing

  • The Application Load Balancer provides a DNS endpoint for the frontend.
  • Services are deployed across multiple Availability Zones (us-east-1a & us-east-1b) to increase resilience.
6. Real-Time Notifications with AWS SNS


  • The Notification Service integrates with AWS SNS to send:
    • SMS messages
    • Email confirmations

  • SNS scales automatically and ensures reliable message delivery.
7. Security Practices


Security is built-in, not bolted on:

  • IAM Roles & Policies: Restrict and manage AWS access.
  • Security Groups: Only necessary ports are open.
  • Private Subnets: Critical services are not internet-facing.
  • OpenVPN: Admins can only access internal systems after authentication.
8. Monitoring & Observability


  • AWS CloudWatch tracks:
    • EC2 metrics
    • SNS delivery logs
    • Application logs from microservices

This helps in performance tuning and alerting.

9. Designed for Scalability

  • Load Balancer enables horizontal scaling of services.
  • Docker Microservices can be updated independently.
  • SNS automatically handles messaging load increases.
10. Future Enhancements


Here’s what’s next on the roadmap to make this production-ready:

  • ✅ Add HTTPS support using SSL on the Load Balancer.
  • ✅ Use AWS RDS for managed PostgreSQL.
  • ✅ Build a CI/CD pipeline (AWS CodePipeline).
  • ✅ Migrate to ECS or EKS for better container orchestration.
  • ✅ Use Route 53 for domain-level routing.
  • ✅ Enable WAF, GuardDuty, Inspector for advanced security.
  • ✅ Set up alerting for downtime or intrusions.
? Final Thoughts


This project taught me how to combine infrastructure best practices with microservices architecture, all while staying secure and scalable. It’s a solid base for health tech applications, appointment systems, and even e-commerce platforms.

If you're starting your journey with AWS, Docker, or cloud security, this architecture offers a hands-on example with real-world value.

Let me know what you think - and I’d love to hear how you would extend or improve this setup!


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу