728x90

👉🏽 AWS에서 beanstalk을 사용하면 Certificate Manager alb를 자동 재공 및 갱신을 해준다.
✅ 개념 정리
1. AWS Certificate Manager (ACM)
- SSL/TLS 인증서를 무료로 발급해주는 AWS 서비스
- 도메인 인증을 통해 자동으로 발급
- ACM에서 발급한 인증서는 ALB, CloudFront, API Gateway 등에 적용 가능
- 단, EC2에 직접 설치는 불가 (ACM 인증서는 ALB 등에만 적용 가능)
2. Elastic Beanstalk + ALB + ACM의 자동화
Elastic Beanstalk은 다음과 같은 구성을 자동으로 관리합니다:
항목 설명
| ALB | 환경 생성 시 자동 생성 (Classic Load Balancer나 ALB) |
| HTTPS | 환경 설정 시 ALB에 HTTPS Listener 자동 구성 |
| 인증서 | ACM에서 발급 받은 인증서를 ALB에 연결 가능 |
| 갱신 | ACM 인증서는 자동으로 갱신 및 ALB에 재적용 |
즉, Beanstalk을 사용할 경우
- ACM에서 인증서 발급 → Beanstalk 환경 구성에 연결 → 자동 적용 및 갱신까지 지원
3. EC2 단독 사용 시
EC2 인스턴스를 직접 사용할 경우에는 ACM을 직접적으로 쓸 수 없음 (ACM 인증서는 로컬 서버에서 직접 사용할 수 없음)
🔧 EC2에서 HTTPS 적용하려면?
- Let's Encrypt 사용 (무료)
- Certbot 등을 통해 SSL 인증서를 직접 발급 받아 서버에 설치
- 웹 서버(Apache/Nginx 등)에 직접 적용
- 90일마다 자동 갱신 스크립트 필요 (cron 등록 등)
- 상용 인증서 구매
- 인증기관에서 인증서(.crt, .key 등) 구매
- EC2에 설치하고 웹서버에 적용
🔁 자동 갱신하려면?
- Let’s Encrypt + Certbot: certbot renew를 cron으로 등록하면 자동 갱신 가능
💡 요약
항목 Beanstalk + ALB EC2 단독
| SSL 발급 | ACM으로 자동 발급 (무료) | Let's Encrypt 또는 상용 인증서 |
| 설치 위치 | ALB에 자동 적용 | EC2 웹서버(Nginx/Apache)에 수동 설치 |
| 갱신 | 자동 갱신 | 수동 또는 자동 스크립트 필요 |
| 관리 편의성 | 매우 편리 (자동화) | 직접 설정 필요 |
🛠️ EC2에서 Let’s Encrypt 예시 (Ubuntu + Nginx)
bash
복사편집
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
자동 갱신 등록
bash
복사편집
sudo crontab -e
# 아래 줄 추가 (매일 새벽 2시에 갱신 시도)
0 2 * * * /usr/bin/certbot renew --quiet
- page 요청시 pending발생
- nginx에서 s3 주소 요청시 pending발생
- nginx설정에서 무조건 질의 진행 처리 ( aws ip 유동적임에 따른 )
- nginx설정에서 proxy_pass를 변수처리 및 proxy_system.conf에 dns서버 정보 입력 및 option처리 -> aws에서는 dns를 확인시 ec2에서 vpc에 접속하여 ipv4에서 마지막자리면 2로 변경한 내역이 dns IP주소임 -> aws에서 beanstalk을 생성하면 알아서 ec2를 생성하는데 ec2가 기존거 말고 신규로 생성하여 이슈가 없으면 기존거 종료 후 신규로 진행 처리함
- proxy_pass 변수처리 set $admin_static_proxy http://127.0.0.1:3000/studio; proxy_pass $admin_static_proxy$request_uri;
- dns서버 설정 처리 resolver 10.0.0.2 valid=30s; resolver_timeout 10s;
- 배포 진행
- Qube7 aws는 ec2 서버 2대 pub1(web), pub2(signal) 이렇게 구성
- ssl 인증서 교체 -> crontab을 통한 자동 ssl인증서 생성 -> /command/deploy-sh -> 99(ssl) : 진행시 s3에서 해당 서버로 복사 진행 -> nginx 재시작 : sudo systemctl restart nginx
- nginx에서 s3 요청하는 reverse proxy랑 nginx가 사용자의 요청을 받아서 전달하는 구조를 말한다
✅ AWS Route 53 레코드 유형 설명
레코드 유형 설명
| A | IPv4 주소를 지정하여 도메인 이름을 IP 주소로 매핑합니다. AWS 리소스로 트래픽을 라우팅할 때 가장 기본적으로 사용됩니다. |
| AAAA | IPv6 주소를 지정하여 도메인 이름을 IPv6 주소로 매핑합니다. |
| CNAME | 도메인 별칭(Alias)을 설정할 때 사용하며, 하나의 도메인을 다른 도메인 이름으로 매핑합니다. (예: www.example.com → example.com) |
| MX | 메일 서버 주소를 지정합니다. 이메일 수신을 위해 필요합니다. |
| TXT | 도메인에 대한 임의의 텍스트 데이터를 저장합니다. SPF나 DKIM, 도메인 소유 확인 등에 자주 사용됩니다. |
| PTR | 역방향 DNS 레코드로, IP 주소를 도메인 이름으로 매핑합니다. 보통 메일 서버 설정 시 필요합니다. |
| SRV | **특정 서비스 위치(호스트 및 포트)**를 지정합니다. 예: VoIP, SIP 서버 등. |
| SPF | 메일 위조 방지를 위한 도메인 등록 형식이지만, 현재는 TXT 레코드에 포함하여 사용하는 것이 표준입니다. (사실상 deprecated) |
| NAPTR | DDDS(Dynamic Delegation Discovery System)에서 사용되며, 전화번호를 SIP 주소 등으로 변환할 때 사용됩니다. |
| CAA | 해당 도메인에 대해 **SSL/TLS 인증서를 발급할 수 있는 CA(Certificate Authority)**를 제한합니다. |
| NS | **Name Server(네임서버)**를 지정합니다. 도메인의 권한 있는 DNS 서버 목록을 정의합니다. |
| DS | Delegation Signer 레코드로, 하위 도메인의 DNSSEC(도메인 이름 시스템 보안 확장)을 상위 도메인에 연결할 때 사용됩니다. |
| TLSA | TLS 인증서와 연결된 정보를 DNS에 저장하는 것으로, DNSSEC 필요. 이메일 서버의 보안 강화 등에서 사용됩니다. |
| SSHFP | **SSH 공개 키의 지문(Fingerprint)**을 저장합니다. SSH 접속 시 공개 키를 검증하는 데 사용되며, 역시 DNSSEC 필요. |
| HTTPS | HTTPS 기반 서비스 엔드포인트에 대한 정보 및 메타데이터를 제공합니다. 새로운 표준으로 채택되는 중입니다. |
| SVCB | Service Binding(서비스 바인딩) 레코드로, 다양한 애플리케이션 프로토콜의 접속 정보를 제공합니다. HTTPS와 관련이 깊으며, HTTPS 레코드와 함께 사용됩니다. |
728x90
댓글