“Streamlit 80/443포트 사용 방법 2부-CloudFront”
이전 글에서는 AWS Application Load Balancer(ALB)와 Route 53을 활용하여 Streamlit 앱을 80/443 포트에서 실행하는 방법을 설명했습니다.
이번 글에서는 CloudFront를 활용하여 Streamlit을 80/443 포트에서 실행하는 방법을 소개드리겠습니다.
AWS CloudFront를 사용하면 전 세계 사용자에게 더 빠르고 안전한 서비스 제공이 가능하며, ALB 없이도 HTTPS(443)로만 통신할 수 있도록 설정할 수 있습니다.
1. AWS 인프라 개요
CloudFront를 활용하는 경우 전체적인 구조는 다음과 같습니다.
- CloudFront: 전 세계 엣지 로케이션을 통해 빠르게 Streamlit 콘텐츠를 전달하며, HTTPS(443)으로만 접근할 수 있도록 제한 가능.
- SSL/TLS 인증서: AWS Certificate Manager(ACM)에서 발급하여 CloudFront에 적용하여 HTTPS 트래픽을 지원.
- EC2: Streamlit 애플리케이션이 실행되는 서버.
2. AWS CloudFront를 통해 Streamlit 앱을 443(HTTPS)으로만 접근하도록 설정하는 방법
1) Streamlit 앱 실행 환경 준비
EC2에서 Streamlit 앱을 실행합니다.
streamlit run app.py
2) CloudFront 배포 설정
2-1. AWS CloudFront 콘솔로 이동 → “Create Distribution”
2-2. Origin 설정
-
- Origin domain: Streamlit이 실행되는 EC2 퍼블릭 DNS 입력
- Protocol: HTTP only
- HTTP port: 8501
2-3. Viewer Protocol Policy
-
- Redirect HTTP to HTTPS
- Cache Policy 설정
- Cache Policy: UseOriginCacheControlHeaders(기본값)
- Origin Request Policy: AllViewr(기본값)
2-4. SSL/TLS 설정
- AWS Certificate Manager(ACM)에서 발급받은 인증서를 적용
2-5. 배포 생성 후 도메인 확인
-
- CloudFront 배포가 완료되면 CloudFront의 Domain Name을 확인 (예: d123abc.cloudfront.net)
3) Route 53에서 도메인 연결

- Route 53 콘솔로 이동 → “Hosted Zones” → 도메인 선택
- “Create Record” 클릭
- Record Type: A
- Alias: Yes
- Alias Target: CloudFront Domain Name 선택
- Save 후 적용 완료
3. CloudFront를 통한 443 포트 사용
CloudFront 설정이 완료되면, 다음과 같은 방식으로 Streamlit을 HTTPS(443)으로만 접근하도록 설정할 수 있습니다.
- HTTP 요청 차단
- CloudFront에서 “Redirect HTTP to HTTPS” 설정을 적용하면, HTTP 요청을 HTTPS로 자동 리디렉션합니다.
- 테스트
https://chatbot.a-cloud.info
접속하여 정상 작동 확인http://chatbot.a-cloud.info
접속 시 HTTPS로 리디렉션되는지 확인
4. 결론
CloudFront를 사용하여 Streamlit 앱을 80/443 포트에서 실행하는 방법을 알아보았습니다. CloudFront를 사용하면 ALB 없이도 HTTPS(443) 트래픽만 허용할 수 있으며, 글로벌 엣지 네트워크를 활용하여 성능 향상이 가능합니다.
요약
- EC2에서 Streamlit 앱 실행 (포트 8501)
- CloudFront 배포 설정 (HTTPS만 허용, HTTP 리디렉션)
- Route 53에서 CloudFront 도메인 연결
- 테스트 및 배포 완료
CloudFront를 이용하면 서버 로드를 줄이고, 보안성을 높이며, HTTPS(443)로만 안전하게 통신할 수 있는 환경을 만들 수 있습니다.
감사합니다.