I’m searching for some beneficial advices from the Streamlit community on the best way to deploy my Streamlit application on AWS. The app is a chatbot that interacts with Amazon Bedrock Knowledge Base.
I’m considering the following AWS services for deployment:
** App Runner**
** AWS Fargate**
** Elastic Beanstalk**
** EC2**
When choosing a deployment option, I’m considering the following factors:
- Auto scalability
- Request and response time
- Support for concurrent 1000 users
- Reliability
Here’s an overview of my application:strong text
- It consists of several Python files:
- app.py: Renders Streamlit user components like chatbot message controls and select boxes.
- bedrock_kb.py: Interacts with Amazon Bedrock service using boto3 and AWS Glue connection with awswrangler.postgresql.
- util.py: Utility file.
- login_ui.py: Handles Azure AD SSO using the Microsoft Authentication Library (MSAL) for Python.
- .streamlit/secrets.toml: Stores credentials for Azure AD SSO.
- env: Stores other configuration settings.
Can anyone recommend the most appropriate, simplest, and cost-effective way to deploy my Streamlit application on AWS, considering these factors and the specific requirements of my app?
Thanks in advance for your advice!
Pongthorn Sangka