Route53/Certificate Manager/Target group/ALB 설정
목차
- 사전 준비
- Route53 DNS 설정하기
- Certificate Manager 설정하기
- Target group 생성 및 설정하기
- ALB 설정하기
- Route53 Hosted zones 추가 설정하기
자세한 단계
{변수}의 자세한 설명은 Terminology 페이지를 참고하세요
1. 사전 준비
설치를 위한 환경 설정이 완료 되어야 합니다. (1. 설치 환경 셋업하기 를 참고)
2. Route53 DNS 설정하기
도메인을 등록하면, Hosted Zone 은 자동 등록 됩니다. 이미 가지고 있는 Hosted Zone이 있으면 3. Certificate Manager 설정하기 으로 이동합니다.
- 도메인 등록
-
AWS Route53 Console 으로 이동합니다.
-
왼쪽 메뉴에서 Domains 하위의 Registered domains 클릭
-
Register domains 클릭
-
Search for domain 섹션에서 이용할 {DOMAIN_NAME}(example.com) 입력 후 Search 클릭
-
Search Result 에서 입력한 도메인이 이용 가능한 경우 Select 클릭
-
Proceed to checkout 클릭
-
Duration 및 Auto-renew 선택 후 Next 클릭
-
Contact information의 정보 입력 후 Next 클릭
- Contact Information 에서 입력한 e-mail 로 도메인 이메일 검증 메일이 발송됩니다.
[Expand Verify Domain e-mail]
-
I have read and agree to the Amazon Route 53 Domain Name Registration End User Agreement. 체크
-
Submit 클릭
-
도메인 등록은 대략 10분 (최대 1일) 소요될 수 있습니다.
-
도메인 등록 완료 시, Contact Information 에서 입력한 e-mail 이 발송됩니다.
[Expand Registration Domain e-mail]
-
- Hosted Zone 등록
- AWS Route53 Console 으로 이동합니다.
- 왼쪽 메뉴에서 Hosted zones 클릭
- Create hosted zone 버튼을 눌러 생성을 진행합니다.
- Step 1: Hosted zone configuration
- Domain name: 원하는 {DOMAIN_NAME} 을 입력합니다.
- Create hosted zone 버튼을 눌러 Hosted zone을 생성합니다.
3. Certificate Manager 설정하기
{변수} 는 직접 입력하여 주세요
- Certificate Manager를 통해서 TLS 통신을 위한 인증서를 생성합니다.
- 이미 가지고 있는 Certificate Manager가 있는 경우 5. ALB 생성하기로 이동합니다.
- AWS Certificate Manager Console 으로 이동합니다.
- 왼쪽 메뉴에서 Request certificate 버튼을 클릭합니다.
- Request a public certificate 선택 후 Next 버튼을 눌러 진행합니다.
- Step 1: Domain names
- Fully qualified domain name: 위 {DOMAIN_NAME} 을 입력합니다.
- Add another name to this certificate 클릭
- *.{DOMAIN_NAME}
- Step 2: Validation method
- DNS validation 선택
- Step 3: Key algorithm
- RSA 2048 선택
- Request 클릭
- 생성된 Certificate ID 항목을 클릭
- Create records in Route 53 클릭
- Create records 클릭하여 Route53에 record를 생성합니다.
- Certificates 목록에서 생성된 항목을 확인한 후, Status가 Issued로 변경되는지 확인합니다. 이 과정은 시간이 소요될 수 있습니다.
4. Target Group 생성 및 설정하기
{변수} 는 직접 입력하여 주세요
NOTE : Target Group의 이름의 최대 길이는 32 입니다. 32 길이가 넘는 경우 {INFRA_NAME}-{DEPLOY_ENV} 를 줄여서 사용합니다.
-
총 5개의 Target Group이 필요하고, 각각의 용도는 아래와 같습니다.
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-fe-{AWS_CLUSTER_VERSION_NUM}-30020 : AI Conductor 프론트
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-be-{AWS_CLUSTER_VERSION_NUM}-30030 : AI Conductor 백엔드
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-ig-{AWS_CLUSTER_VERSION_NUM}-30040 : AI Conductor Kubeflow
- Edge Conductor가 on premise로 설치된 경우 건너뜁니다.
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-ec-fe-{AWS_CLUSTER_VERSION_NUM}-31010 : Edge Conductor 프론트
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-ec-be-{AWS_CLUSTER_VERSION_NUM}-31020 : Edge Conductor 백엔드
export AWS_CLUSTER_VERSION_NUM=`echo ${AWS_CLUSTER_VERSION} | tr '.' ''`
- Target Group 생성
- AWS EC2 Console 로 이동합니다.
- 왼쪽 메뉴의 Target Groups 를 클릭합니다.
- Create target group 버튼을 눌러 타겟 그룹 생성을 시작합니다.
- Step 1: Basic configuration
- Choose a target type: Instances
- Target group name: tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-fe-{AWS_CLUSTER_VERSION_NUM}-30020
- Protocol : Port : HTTP : 30020
- IP address type : IPv4
- VPC : {AWS_VPC_NAME} 선택
- Protocol version : HTTP1
- Step 2: Health checks
- Health check protocol: HTTP
- Path: /
- Next 버튼 클릭
- Create target group 버튼으로 target group 생성 완료
- 아래 항목도 같은 방법으로 생성 진행하되, target group 이름의 마지막 숫자 5자리가 Port로 지정되어야 하는 것에 유의
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-be-{AWS_CLUSTER_VERSION_NUM}-30030
- Protocol : Port : HTTP : 30030
- Health checks -> Health check path : /api/v1/healthz
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-ig-{AWS_CLUSTER_VERSION_NUM}-30040
- Protocol : Port : HTTP : 30040
- Health checks -> Advanced health check settings -> Success codes 에 200,302 입력
- Edge Conductor가 on premise로 설치된 경우 건너뜁니다.
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-ec-fe-{AWS_CLUSTER_VERSION_NUM}-31010
- Protocol : Port : HTTP : 31010
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-ec-be-{AWS_CLUSTER_VERSION_NUM}-31020
- Protocol : Port : HTTP : 31020
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-be-{AWS_CLUSTER_VERSION_NUM}-30030
-
Target Group 연결 설정
-
AWS EKS Console 으로 이동합니다.
-
{AWS_CLUSTER_NAME} 클릭합니다.
-
Compute 탭을 클릭합니다.
-
Compute 탭의 Node groups 섹션에서 ng-{AWS_DEFAULT_REGION_ALIAS}-aicond-{INFRA_NAME}-controller 클릭합니다.
-
Details 탭의 Autoscaling group name 섹션에서 asg group 자원 클릭합니다.
-
Auto Scaling groups 의 Detailes 탭의 Load balancing 섹션에서 Edit 버튼을 클릭합니다.
-
Step 1: Load balancing
- Application, Network or Gateway Load Balancer target groups 체크
- Load balancers 에서 아래 3개 항목을 선택합니다.
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-fe-{AWS_CLUSTER_VERSION_NUM}-30020
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-be-{AWS_CLUSTER_VERSION_NUM}-30030
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-ig-{AWS_CLUSTER_VERSION_NUM}-30040
- Update 버튼을 눌러 설정을 마칩니다.
-
Edge Conductor가 on premise로 설치된 경우 건너뜁니다.
- AWS EKS Console 으로 이동합니다.
- {AWS_CLUSTER_NAME} 클릭합니다.
- Compute 탭을 클릭합니다.
- Compute 탭의 Node groups 섹션에서 ng-{AWS_DEFAULT_REGION_ALIAS}-edgecond-{INFRA_NAME}-controller 클릭합니다.
- Details 탭의 Autoscaling group name 섹션에서 asg group 자원 클릭합니다.
- Auto Scaling groups 의 Detailes 탭의 Load balancing 섹션에서 Edit 버튼을 클릭합니다.
- Step 1: Load balancing
- Application, Network or Gateway Load Balancer target groups 체크
- Load balancers 에서 아래 2개 항목을 선택합니다.
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-ec-fe-{AWS_CLUSTER_VERSION_NUM}-31010
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-ec-be-{AWS_CLUSTER_VERSION_NUM}-31020
- Update 버튼을 눌러 설정을 마칩니다.
-
5. ALB 생성하기
{변수} 는 직접 입력하여 주세요
NOTE : 3. Certificate Manager 설정하기에서 Status가 Issued 된 상태 이후 진행
- ALB Security Group 생성
- AWS EC2 Console 로 이동합니다.
- 왼쪽 메뉴의 Security Groups 를 클릭합니다.
- Create security group 버튼을 클릭해서 ALB의 security group을 생성합니다.
- Step 1: Basic details
- Security group name: scg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-alb
- Description : 필수 입력
- VPC: {AWS_VPC_NAME}
- Step 2: Inbound rules
- Add rules 클릭
- Source: Anywhere-IPv4 선택
- Create security group 클릭
- ALB 생성
- AWS EC2 Console 으로 이동합니다.
- 왼쪽 메뉴의 Load Balancers를 클릭합니다.
- Create Load Balancer 버튼을 눌러 ALB 생성을 시작합니다.
- Step 1: Load balancer types
- Application Load Balancer 에서 Create 클릭
- Step 2: Basic configuration
- Load balancer name: alb-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}
- Scheme: Internet-facing
- IP address type: IPv4
- Step 3: Network mapping
- VPC: {AWS_VPC_NAME}
- Mappings
- 전체 Availability Zones 선택
- SubnetPublic 선택
- Step 4: Security groups
- Security groups 선택: scg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-alb
- Step 5: Listeners and routing
- Listener
- Protocol: HTTPS
- Port: 443
- Default action: Forward to tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-fe-{AWS_CLUSTER_VERSION_NUM}-30020 선택
- Listener
- Step 6: Secure listener settings
- Default SSL/TLS server certificate
- Certificate source : From ACM 선택
- Certificate (from ACM) : {DOMAIN_NAME} 선택
- Default SSL/TLS server certificate
- Create load balancer 클릭
- Load Balancers 리스트에서 생성된 ALB의 DNS name 은 {AWS_ALB_DNS_NAME} 입니다.
-
ALB의 Listener rules 설정
- Load balancers 목록에서 생성한 자원을 클릭합니다.
- Listeners and rules 탭에서 Rules 항목의 1 rule을 클릭합니다.
- Add rule 버튼을 클릭합니다.
설정 AI Conductor Backend AI Conductor Frontend AI Conductor Kubeflow Edge Conductor Backend
NOTE : on premise 인 경우 무시Edge Conductor Frontend
NOTE : on premise 인 경우 무시Name and tags : Name AI Conductor Backend AI Conductor Frontend AI Conductor Kubeflow Edge Conductor Backend Edge Conductor Frontend Conditions Add condition Add condition Add condition Add condition Add condition Conditions : rule condition types Host header Host header Host header Host header Host header Conditions : Value aicond.{DOMAIN_NAME} aicond.{DOMAIN_NAME} aicond-kf.{DOMAIN_NAME} edgecond.{DOMAIN_NAME} edgecond.{DOMAIN_NAME} Conditions Confirm Confirm Confirm Confirm Confirm Conditions Add condition Add condition Add condition Add condition Add condition Conditions : rule condition types Path Path Path Path Path Conditions : Value /api/* /* /* /app/*
/web/*/* Conditions Confirm Confirm Confirm Confirm Confirm Conditions Next Next Next Next Next Actions : Routing actions Forward to target groups Forward to target groups Forward to target groups Forward to target groups Forward to target groups Actions : Target group tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-be-{AWS_CLUSTER_VERSION_NUM}-30030 tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-fe-{AWS_CLUSTER_VERSION_NUM}-30020 tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-ig-{AWS_CLUSTER_VERSION_NUM}-30040 tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-ec-be-{AWS_CLUSTER_VERSION_NUM}-31020 tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-ec-fe-{AWS_CLUSTER_VERSION_NUM}-31010 Actions Next Next Next Next Next Rule : Priority 100 200 300 400 500 Rule Next Next Next Next Next Create Create Create Create Create Create
- ALB Security Group를 EKS의 Security Group에 추가
- AWS EC2 Console 로 이동합니다.
- 왼쪽 메뉴의 Security Groups 를 클릭합니다.
- eks-cluster-sg-{AWS_CLUSTER_NAME} 을 선택합니다.
- Inbound rules 탭에서 Edit Inbound rules를 클릭합니다.
- Add rles를 클릭합니다.
- Source 에 ALB Security Group 에서 생성한 scg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-alb 를 선택합니다.
- Save rules를 클릭합니다.
6. Route53 Hosted zones 추가 설정하기
{변수} 는 직접 입력하여 주세요
- AWS Route53 Console 으로 이동합니다.
- 왼쪽 메뉴에서 Hosted zones 클릭
- {DOMAIN_NAME} 클릭
- Create record 클릭
- Record name : *
- Record type : A - Routes traffic to an IPv4 address and some AWS resources 선택
- Alais 활성화
- Route traffic to
- Choose endpoint : Alias to Application and Classic Load Balancer 선택
- Choose Region : {AWS_DEFAULT_REGION} 선택
- Choose load balancer : dualstack.{AWS_ALB_DNS_NAME} 선택
- Routing policy : Simple routing 선택
- Create records 클릭