{"id":15136014,"url":"https://github.com/mukulmantosh/fastapi_eks_kubernetes","last_synced_at":"2025-09-23T19:35:37.050Z","repository":{"id":65226910,"uuid":"397032277","full_name":"mukulmantosh/FastAPI_EKS_Kubernetes","owner":"mukulmantosh","description":"FastAPI \u0026 Kubernetes Tutorial with PyCharm","archived":false,"fork":false,"pushed_at":"2022-12-30T04:17:13.000Z","size":20838,"stargazers_count":107,"open_issues_count":0,"forks_count":52,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-01-01T10:43:58.902Z","etag":null,"topics":["aws","celery","eksctl","elasticache","fastapi","helm","helm-charts","kubernetes","postgres","pycharm","python","rds","redis","uvicorn"],"latest_commit_sha":null,"homepage":"https://www.jetbrains.com/pycharm/guide/tutorials/fastapi-aws-kubernetes/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mukulmantosh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-17T00:45:17.000Z","updated_at":"2024-11-28T16:30:49.000Z","dependencies_parsed_at":"2023-01-15T17:00:21.726Z","dependency_job_id":null,"html_url":"https://github.com/mukulmantosh/FastAPI_EKS_Kubernetes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mukulmantosh%2FFastAPI_EKS_Kubernetes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mukulmantosh%2FFastAPI_EKS_Kubernetes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mukulmantosh%2FFastAPI_EKS_Kubernetes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mukulmantosh%2FFastAPI_EKS_Kubernetes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mukulmantosh","download_url":"https://codeload.github.com/mukulmantosh/FastAPI_EKS_Kubernetes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232206849,"owners_count":18488574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","celery","eksctl","elasticache","fastapi","helm","helm-charts","kubernetes","postgres","pycharm","python","rds","redis","uvicorn"],"created_at":"2024-09-26T06:03:30.617Z","updated_at":"2025-09-23T19:35:32.008Z","avatar_url":"https://github.com/mukulmantosh.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FastAPI Tutorial Series\n\n![stack_logo](https://gist.githubusercontent.com/mukulmantosh/d68428973c1a368ecc6f3781144abca8/raw/044c5e7b4e86d39c815d575ad63c56864e2a7dda/stack.png)\n\n\nWelcome to the FastAPI \u0026 Kubernetes Tutorial Series with PyCharm \u0026 AWS EKS.\n\n## Prerequisites \n\nBefore starting up this project, make sure you have an AWS account and \nPyCharm installed in your machine.\n\n* In this tutorial we will be using [PyCharm Professional](https://www.jetbrains.com/pycharm/).\n\n\n### Software Installation\n\n- [x] [AWS Command Line Interface](https://aws.amazon.com/cli/) - The AWS Command Line Interface (CLI) is a unified tool to manage your AWS services.\n\n\n- [x] [eksctl](https://eksctl.io/) - The official CLI for Amazon EKS\n\n\n- [x] [Docker](https://www.docker.com/) - Docker helps developers bring their ideas to life by conquering the complexity of app development.\n\n\n- [x] [Kubernetes](https://kubernetes.io/) - also known as K8s, is an \n open-source system for automating deployment, scaling, and management of containerized applications.\n\n\n- [x] [Helm](https://helm.sh/) - The package manager for Kubernetes. Helm helps you manage \nKubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.\n\n\n- [x] [PostgreSQL](https://www.postgresql.org/) - The World's Most Advanced Open Source Relational Database\n\n\n- [x] [Redis](https://redis.io/) - open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker\n\n\n- [x] [NICE DCV](https://www.nice-dcv.com/) (Optional) - Deliver high-performance remote desktop and application streaming. If \nyou are interested to run your workload directly in AWS.\n\n## System Dependencies\n\n- Make sure your system is up-to-date.\n- Run the below command to install python system \ndependencies along-with postgres driver.\n\n```bash\n\n$ sudo apt-get install libpq-dev python-dev libssl-dev\n\n```\n\n\n\n## Python Dependencies\n\n- Installing Python Packages\n\n```bash\n\n$ pip install -r requirements.txt\n\n```\n\n![requirements-install](./misc/images/requirements.gif)\n\n- Running Uvicorn Server\n\n```bash\n\n$ uvicorn main:app --reload\n\n```\n\n## Environment\n\nMake sure to update the environment variables in **ecommerce/config.py**, before starting up the project.\n\n\n![config-file](./misc/images/env_file.png)\n\n\n\n## Celery\n\nMake sure before starting up Celery, redis is up and running.\n\nCommand to start celery worker :\n\n```bash\n$ celery -A main.celery worker -l info\n```\nor with execution pool\n```bash\n$ celery -A main.celery worker -l info --pool=prefork\n```\n\nReference Materials:\n* [Celery Execution Pools: What is it all about?](https://www.distributedpython.com/2018/10/26/celery-execution-pool/)\n* [A complete guide to production-ready Celery configuration](https://medium.com/koko-networks/a-complete-guide-to-production-ready-celery-configuration-5777780b3166)\n* [Eliminating Task Processing Outages by Replacing RabbitMQ with Apache Kafka Without Downtime](https://doordash.engineering/2020/09/03/eliminating-task-processing-outages-with-kafka/)\n\n\n![celery-task](./misc/images/celery-task.png)\n\n## Testing\n\nBefore proceeding make sure you have created a test database in Postgres.\n\n![python-testing](./misc/images/testing.gif)\n\n\n## DockerHub\n - [https://hub.docker.com/r/mukulmantosh/ecommerce-fastapi](https://hub.docker.com/r/mukulmantosh/ecommerce-fastapi)\n\n\n## References\n\nIf you are interested to know more about AWS with Python, then you can follow the below links.\n\n- [Developing Serverless APIs using AWS Toolkit](https://www.jetbrains.com/pycharm/guide/tutorials/intro-aws/)\n- [Developing Django Application using AWS NICE DCV, high-performance remote desktop and application streaming](https://www.jetbrains.com/pycharm/guide/tutorials/django-aws/) \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmukulmantosh%2Ffastapi_eks_kubernetes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmukulmantosh%2Ffastapi_eks_kubernetes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmukulmantosh%2Ffastapi_eks_kubernetes/lists"}