AWS 비용 최적화 방법

안녕하세요 교보 DTS 클라우드 기술팀 이민규 사원입니다. 지난 2월 26일부터 27일까지 AWS QuickStart Workshop이 진행되었는데요, 진행된 교육내용을 바탕으로 “AWS 비용 최적화 방법”에 대해 안내해드리고 자 이 글을 작성하게 되었습니다.

더불어 Amazon EC2, Amazon EBS, Amazon S3, Amazon EFS, Amazon RDS의 비용 최적화에 대해서도 함께 알아보려 합니다.

 

-비용 최적화 어디서 부터 시작해야 할지?

비용 최적화의 여정은 AWS에서 발생하는 비용을 명확히 파악하는 것에서 시작됩니다. 많은 기업이 비용 최적화를 고려할 때, 어디서부터 시작해야 할지, 비용을 어떻게 줄일 수 있을지, 그리고 즉시 실행할 수 있는 조치가 무엇인지를 두고 종종 혼란을 겪는데요, 이와 관련하여 AWS 비용 최적화를 위한 첫걸음으로, 다음과 같은 몇 가지 핵심 전략 및 AWS 서비스를 소개합니다.

 

1. 클라우드 재무 관리 시행

1.1 AWS Budgets: 비용 및 사용량의 적극적인 관리

AWS Budgets는 사용자가 비용 및 사용량에 대한 예산을 설정하고, 이를 모니터링할 수 있게 해주는 서비스입니다. 예산을 초과할 위험이 있을 때 실시간으로 알림을 받을 수 있으며, 이를 통해 비용이 미리 정한 예산 범위 내에서 관리될 수 있도록 보장합니다. 또한, 사용자는 비용 추세를 분석하여 미래의 비용 관리 전략을 수립하는 데 필요한 중요한 정보를 얻을 수 있습니다.

 
1.2 AWS Cost Explorer – Forecast: 미래 지향적 비용 관리

AWS Cost Explorer – Forecast는 과거 및 현재의 비용 데이터를 바탕으로 미래의 비용을 예측하는 기능을 제공합니다. 이 서비스는 최대 12개월까지의 비용 예측을 가능하게 함으로써, 장기적인 비용 계획 수립에 필수적인 인사이트를 제공합니다. 머신러닝 기술을 활용한 이 예측은 비용 관리 전략을 더욱 세밀하게 조정하는 데 도움이 됩니다.

AWS Budgets와 AWS Cost Explorer – Forecast를 함께 사용하면, 즉각적인 알림 및 장기적인 비용 예측의 이점을 동시에 누릴 수 있습니다.

 

2. 지출 및 사용량 인식

AWS는 클라우드 서비스를 이용하는 기업들에게 다양한 비용 관리 및 최적화 도구를 제공합니다. 이 중에서도 AWS Organizations와 Cost Optimization Hub는 기업이 비용을 효율적으로 관리하고 최적화할 수 있게 도와주는 중요한 서비스입니다.

 
2.1 AWS Organizations를 이용한 비용 지불 및 관리

AWS Organizations를 사용하면 기업은 여러 AWS 계정을 중앙에서 관리할 수 있습니다. 이를 통해 기업은 모든 멤버 계정에 대한 비용을 하나의 결제 계정으로 통합하여 지불할 수 있습니다. 이 방법은 다음과 같은 장점을 가집니다.

  • 통합 청구: 모든 AWS 계정의 비용이 하나의 결제 계정으로 집계되어 통합 청구서를 받을 수 있어 관리가 편리합니다.
  • 비용 분석: AWS Cost Explorer와 같은 도구를 사용하여 전체 조직의 사용 패턴 및 비용 추세를 분석할 수 있습니다.
  • 예산 설정 및 알림: AWS Budgets를 사용하여 예산을 설정하고 예산 초과 시 알림을 받을 수 있어 비용 관리를 더욱 철저히 할 수 있습니다.
 
2.2 Cost Optimization Hub를 통한 비용 최적화 기회 인식

Cost Optimization Hub는 AWS 비용 최적화의 중심점으로, 여러 최적화 도구 및 리소스를 한 곳에서 제공합니다. 이를 통해 기업은 다음과 같은 이점을 얻을 수 있습니다.

  • 최적화 권장사항: 불필요한 비용을 줄일 수 있는 구체적인 방법을 제안받을 수 있습니다.
  • 자동화된 비용 절감: 예를 들어, AWS Compute Optimizer를 사용하여 사용 중인 인스턴스의 규모를 최적화 (right sizing) 할 수 있습니다.
  • 리소스 활용도 분석: 비효율적으로 사용되고 있는 리소스를 식별하고 개선할 수 있습니다.
 
2.3 Amazon EKS 비용 효율화 – Kubecost

쿠버네티스 환경에서 비용 관리와 최적화는 어려운 과제일 수 있습니다. 특히, Amazon Elastic Kubernetes Service(EKS)와 같은 관리형 쿠버네티스 서비스를 사용하는 고객사의 경우, 리소스 사용량과 관련 비용을 효율적으로 관리하는 것이 중요합니다.

이러한 상황에서 Kubecost를 도입하면, 비용 관리 및 최적화 작업을 보다 쉽고 효과적으로 수행할 수 있습니다. 본 글에서는 Amazon EKS를 사용하는 고객사에게 Kubecost를 도입할 때의 주요 이점을 소개합니다.

 
-> Kubecost 란?

Kubecost는 쿠버네티스 환경에서 리소스 사용 및 비용 관리를 최적화하기 위한 오픈 소스 도구입니다. 쿠버네티스 클러스터를 실행하는 조직에게 실시간 비용 분석, 예산 관리, 비용 절감 제안 등을 제공하여, 클라우드 리소스 사용의 투명성을 높이고 운영 비용을 효과적으로 관리할 수 있도록 돕습니다.

2.3.1 Namespace 별 비용 관리

Kubecost를 사용하면 개별 Namespace 단위로 비용을 정확히 분석할 수 있습니다. 이는 각 Namespace에서 실행되는 애플리케이션 또는 서비스가 발생시키는 비용을 명확히 이해하는 데 도움이 됩니다. 팀별 또는 프로젝트별로 리소스 사용량과 비용을 파악하여 보다 효율적인 예산 배분과 리소스 관리가 가능합니다.

2.3.2 Pod 별 비용 관리

Kubecost의 세부적인 비용 분석 기능을 통해, 개별 Pod 수준에서 발생하는 비용을 파악할 수 있습니다. 이를 통해 어떤 Pod가 예산을 초과하고 있는지, 어떤 Pod가 리소스를 비효율적으로 사용하고 있는지 등을 정확히 알 수 있으며, 이를 기반으로 리소스 할당을 조정하거나 비용 절감 조치를 취할 수 있습니다.

2.3.3 조직 단위 별 비용관리

조직 내 다양한 팀이나 부서별로 클러스터 리소스 사용과 관련된 비용을 분석할 수 있습니다. Kubecost는 조직의 구조와 관련된 메타데이터를 활용하여 비용을 세분화하여 보여줌으로써, 각 조직 단위의 예산 관리 및 비용 최적화에 도움을 줍니다. 이는 전체적인 비용 관리 전략을 수립하고 실행하는 데 있어 중요한 정보를 제공하며, 조직 전반의 비용 효율성을 높이는 데 기여합니다.

2.3.4 AWS Cost Allocation Tags를 사용한 비용 관리의 이점
-> 상세한 비용 추적 및 분석

사용량이 어디에서 발생하는지 더 잘 이해하고 절약할 영역을 식별하려면 고유한 태그 지정 전략을 만들고 구현해야 합니다. 이를 위해서 AWS Cost Allocation Tags를 사용하면, 프로젝트, 부서, 애플리케이션 등 다양한 기준에 따라 비용을 분류할 수 있습니다. Billing and Cost Management 콘솔에서 Cost Allocation Tags를 활성화할 수 있습니다. 이를 통해 비용 관리의 정확성과 효율성이 크게 향상됩니다.

-> 비용 최적화

태그를 통해 어떤 리소스나 서비스가 예산 초과의 주된 원인인지 식별할 수 있습니다. 이 정보를 바탕으로 불필요한 리소스를 정리하거나, 비용 효율이 떨어지는 서비스를 개선하는 등의 조치를 취할 수 있어, 전체 비용을 효과적으로 최적화할 수 있습니다.

-> 예산 관리 및 할당

각 팀이나 프로젝트별로 예산을 할당하고 관리할 때, Cost Allocation Tags가 매우 유용합니다. 태그를 통해 각 팀이나 프로젝트의 실제 AWS 사용량을 정확히 파악하고, 이를 예산과 비교하여 관리할 수 있습니다.

 

3. 비용 효율적인 리소스

3.1 AWS Compute Optimizer Rightsizing
AWS Compute Optimizer는 AWS 클라우드 인프라에서 운영하는 Workload의 Performance와 비용 최적화를 도와주는 서비스입니다. 본 서비스를 통해 사용자는 이용 중인 EC2 인스턴스, Lambda 함수, EBS 볼륨, Auto Scaling 그룹 등의 리소스 사이징을 분석하고 이에 대한 최적화 제안 사항을 받을 수 있습니다.

또한 AWS Compute Optimizer는 AWS Organization 에 통합되어 있으므로 마스터 AWS Organizations 계정에서 여러 계정에 대한 권장 사항을 볼 수 있고, 이는 Rightsizing, 즉 적정 사이징을 조정하여 비용 절약 및 성능 개선에 큰 도움이 됩니다.
 
3.2 AWS Compute Optimizer EC2 Instance
EC2 instances 또는 Auto Scaling groups를 클릭하여 EC2 인스턴스 및 Auto Scaling group 권장 사항을 볼 수 있습니다.
View detail을 클릭하여 예상 시나리오를 시각화 하고, 이 기능은 권장 인스턴스 유형에서 워크로드의 성능이 어떨지 이해하는데 도움이 됩니다. Compute Optimizer는 워크로드에 대한 최적의 AWS 리소스 목록을 식별한 후, 예상되는 성능 위험과 온디맨드 요금 같은 다양한 요금 항목을 종합하여 권장 사항 우선 순위를 매깁니다.
제공된 여러 옵션의 권장 사항을 검토하고, 성능 요구 사항과 비용 목표를 고려하여 권장 사항을 적용합니다.
 
3.3 쉽게 놓칠 수 있는 비용 최적화 기회
3.3.1 Amazon S3 Bucket Key (SSE-KMS) 비용 절감
Amazon S3 버킷 키는 AWS Key Management Service(AWS KMS) 키(SSE-KMS)를 사용하여 Amazon S3 서버 측 암호화 비용을 절감합니다. SSE-KMS용 버킷 수준 키를 사용하면 Amazon S3에서 AWS KMS로 가는 요청 트래픽을 줄여 AWS KMS 요청 비용을 최대 99%까지 줄일 수 있습니다
 
3.3.2 CloudFront 사용 시, 데이터 전송 비용 절감
Amazon Web Services(AWS)에서 Data Transfer Out(DTO) 비용은 데이터를 AWS 클라우드에서 다른 인터넷 위치로 전송할 때 발생합니다. 이는 여러 서비스의 사용에 따른 비용이 포함되며, DTO 비용은 대역폭 사용량에 따라 달라집니다.

여기서 CloudFront의 사용 여부는 DTO 비용에 큰 영향을 줄 수 있습니다.
AWS Cloud 에서는, 처음 100GB의 DTO를 사용한 후에는 한 달에 발송량에 따라 $0.09/GB에서 $0.05/GB 사이의 요금이 부과됩니다.
-> CloudFront가 없을 경우

CloudFront가 없을 경우, Amazon Simple Storage Service(S3) 같은 저장소 서비스나 AWS에서 호스팅되는 웹 애플리케이션에서 직접 데이터를 전송하게 됩니다. DTO 비용은 전송하는 데이터의 양과 지역에 따라 변동됩니다.

대체로, AWS 리전 간에 데이터를 전송할 때 비용이 발생하며, 이는 AWS 서비스 간 및 AWS와 인터넷 간의 데이터 전송에서도 마찬가지입니다. 클라이언트가 데이터를 요청하는 위치에 따라 비용이 달라질 수 있으며, 이는 전 세계적으로 분산된 사용자에게 서비스를 제공할 때 특히 중요합니다.

-> CloudFront가 있을 경우

Amazon CloudFront는 AWS의 글로벌 콘텐츠 전송 네트워크(CDN) 서비스로, 콘텐츠를 사용자에게 더 빠르게 전달하기 위해 전 세계에 분산된 에지 로케이션을 사용합니다. CloudFront를 사용할 때의 가장 큰 이점 중 하나는 DTO 비용 절감입니다. CloudFront는 데이터 전송 비용을 낮추는데, 이는 다음과 같은 이유 때문입니다:

  • 캐싱: CloudFront는 자주 접근하는 콘텐츠를 가까운 에지 로케이션에 캐싱하여, 원본 서버로의 데이터 요청을 줄입니다. 이는 back-to-origin 데이터 전송 비용을 줄여줍니다.
  • 가격 모델: CloudFront의 데이터 전송 비용은 일반적으로 S3 또는 EC2에서 직접 인터넷으로 데이터를 전송할 때보다 저렴합니다. AWS는 CloudFront를 통한 데이터 전달을 장려하기 위해 더 낮은 비용을 제공합니다.
  • 데이터 전송 효율성: CloudFront는 효율적인 네트워크 경로를 사용하여 데이터를 전송합니다. 이는 전체 전송 시간뿐만 아니라 전송에 필요한 비용을 줄여줍니다.
 
3.4 최적의 비용 모델 선택
3.4.1 Reserved Instances & Savings Plans
AWS에서 비용 최적화를 위해 Reserved Instances (예약 인스턴스)와 Savings Plans (절약 플랜)을 활용할 수 있는데, 이 두 옵션은 비용 절감을 목적으로 하지만 그 접근 방식과 유연성에서 차이를 보입니다.

이해를 돕기 위해 각각의 특성과 장점을 설명하겠습니다.
 
3.4.2 Reserved Instances

Reserved Instances (RI)는 AWS 서비스를 미리 예약하는 것을 의미합니다. 일정 기간 동안 (1년 또는 3년) 일정한 용량의 AWS 리소스를 예약하고, 이에 대해 할인된 가격을 받는 방식입니다. RI는 특히 EC2 인스턴스, RDS 데이터베이스 인스턴스 등에 대해 사용할 수 있습니다.

-> RI의 주요 장점
  • 비용 절감: 장기간 동안 일정한 용량의 리소스를 사용할 계획이라면, RI를 통해 상당한 할인을 받을 수 있습니다.
  • 가격 확실성: 예약 기간 동안 비용이 변하지 않아 예산 계획을 수월하게 할 수 있습니다.
  • 다양한 결제 옵션: 미리 전액 지불, 부분 선불, 또는 월별 후불 등 다양한 결제 방식을 선택할 수 있습니다.
 
3.4.3 Savings Plans

Savings Plans는 예약 인스턴스보다 더 유연한 비용 절감 옵션입니다. 사용자는 1년 또는 3년 동안 AWS 사용량에 대해 일정 금액을 지불할 것을 약속하고, 그 대가로 표준 요금보다 낮은 가격에 리소스를 이용할 수 있게 됩니다. Savings Plans는 EC2, Fargate, Lambda 등 여러 AWS 서비스에 걸쳐 적용됩니다.

Savings Plans의 주요 장점

  • 유연성: Savings Plans는 리소스의 유형이나 지역에 상관없이 사용량에 대한 할인을 제공합니다. 따라서 사용 패턴이 변하는 경우에도 비용 절감의 혜택을 거의 그대로 유지할 수 있습니다.
  • 간단한 관리: Savings Plans는 리소스 예약과 관련된 복잡성을 줄여주며, 예약 인스턴스와 비교했을 때 관리가 더 간편합니다.
  • 서비스 간 적용 가능: 여러 AWS 서비스에 걸쳐 비용 절감 혜택을 제공한다는 점에서, 특정 서비스에 국한되지 않고 유연하게 조정할 수 있습니다.
 

4. 수요 관리 및 리소스 공급

4.1 Amazon Auto Scaling Trigger
AWS Auto Scaling은 클라우드 환경에서 자동으로 컴퓨팅 리소스를 조정하여 애플리케이션이 필요로 하는 정확한 양의 컴퓨팅 용량을 유지할 수 있도록 해주는 서비스입니다.

이를 통해 사용자는 애플리케이션 성능을 최적화하고 비용을 절감할 수 있습니다. 또한 Auto Scaling은 다양한 트리거(trigger)를 사용하여 스케일링 활동을 자동으로 시작하여 비용을 절감할 수 있습니다.
 
4.2 여러 개의 predictive scaling 정책을 Forecast Only 모드로 생성
  • 목적: Forecast Only 모드는 실제로 리소스를 조정하지 않고, 예측된 스케일링 정책이 어떤 변화를 가져올지 평가하고자 할 때 사용됩니다. 이를 통해 정책의 효과를 실험적으로 확인하고, 가용성과 비용에 대한 영향을 분석할 수 있습니다.
  • 가용성 영향 평가: Predictive Scaling 정책은 특정 시간대에 애플리케이션에 대한 수요가 증가할 것으로 예측될 때, 미리 충분한 컴퓨팅 리소스를 준비함으로써 가용성을 유지하도록 합니다. Forecast Only 모드를 사용하면, 특정 전략이 가용성을 얼마나 향상시킬 수 있는지 평가할 수 있습니다.
  • 비용 영향 평가: 리소스를 미리 준비하는 것은 가용성에 긍정적 영향을 미치지만, 불필요한 비용을 발생시킬 가능성도 있습니다. Forecast Only 모드를 활용하면, 예측된 스케일링이 비용에 어떤 영향을 미칠지 사전에 평가하여 최적의 정책을 선정할 수 있습니다.
 
4.3 Instance Scheduler 비용 최적화

AWS Instance Scheduler는 AWS 클라우드 환경에서 Amazon EC2 인스턴스와 RDS 인스턴스를 자동으로 시작하거나 중지할 수 있도록 설계된 서비스입니다. 이 기능을 통해 비용을 절감하고 리소스 사용을 최적화할 수 있습니다. 예를 들어, 비즈니스 시간 외에는 특정 인스턴스를 자동으로 중지시키고, 업무 시간에 다시 시작하여 운영 비용을 절약할 수 있습니다.

CloudFormation Stack 배포 시 정의한 간격으로 , CloudWatch EventBridge가 설정이 되고, Amazon Simple Notification Service(SNS) 주제와 Amazon CloudWatch를 통해 알림 및 로깅을 구성할 수 있습니다. 이 아키텍처는 AWS 관리 Custom Managed Key(CMK)를 생성하는데, 이는 SNS 주제와 DynamoDB 테이블의 서버 측 암호화를 구성하는 데 사용됩니다.

생성된 Scheduler가 AWS Lambda 함수를 호출하고, 구성이 되는동안 사용자는 대상 리전이나 AWS Organization에 다른 계정을 지정할 수 도 있으며, 대상 EC2 및 Amazon RDS Aurora Cluster의 Scheduler가 상태를 변경할 사용자 지정 태그를 정의하게 됩니다.

Amazon DynamoDB는 대상 리소스들의 상태 정보, CloudFormation에 정의한 스택의 정보를 담게되고, Lambda 함수는 실행될 때 마다 이 값들을 검색하게 됩니다. Instance Scheduler를 처음 구성할 때 지정했던 태그를 EC2나 RDS에 정의하면 지정된 시간에 대상 리소스의 상태가 변경이 되는 구조입니다. 이를 통해 최대 70%까지 비용을 절감할 수 있습니다.
 
4.4 Instance Scheduler 사용 시 참고 사항
  • RI 또는 Saving Plans과 같은 사용량 약정 요금 모델 사용 여부를 확인.
  • EC2 인스턴스 는 중지되지만 EBS Volume 비용은 발생.
  • 만약 Instance Store를 사용할 경우에는 중지 시, 데이터 유실 주의.
  • Tag를 임의로 수정하지 말아야 함 (Tag 기반으로 Scheduler를 변경하기 때문에)
  • 비용 절감을 위해 Lambda 실행 주기를 늘릴 필요가 있다면 EventBridge에서 해당 주기를 조절해야 함.
 

5. 시간 경과에 따른 최적화

-> 시간의 경과에 따른 새로운 기술을 사용한 비용 최적화
5.1 Amazon Graviton 마이그레이션

Amazon Graviton 프로세서는 AWS에서 제공하는 ARM 기반의 칩으로, 고성능을 제공하면서도 효율적인 비용 구조를 가지고 있습니다. Graviton 프로세서를 사용하는 인스턴스는 x86 기반 인스턴스에 비해 더 낮은 비용으로 더 높은 성능을 제공합니다.

이는 컴퓨팅 집약적인 애플리케이션에 특히 유용하며, 대표적으로 AWS Lambda , Amazon RDS , Amazon ECS , Amazon EKS 등 AWS Managed Service들은 마이그레이션 과정이 비교적 간단합니다. 이를 통해 기업은 컴퓨팅 비용을 상당히 절감할 수 있습니다.

 
5.2 gp2에서 gp3 마이그레이션

Amazon EBS 볼륨의 gp2에서 gp3로의 마이그레이션은 비용 절감과 성능 향상 두 가지 측면에서 이점을 제공합니다. gp3 볼륨은 gp2에 비해 기본 성능이 더 높으며, IOPS와 처리량을 독립적으로 조정할 수 있어 특정 워크로드 요구사항에 맞게 최적화할 수 있습니다.

무엇보다 gp3는 gp2 대비 20% 저렴하기 때문에, 동일한 성능을 유지하면서도 비용을 절약할 수 있습니다.

 
5.3 Amazon Data Lifecycle Manager

Amazon Data Lifecycle Manager는 비용 최적화에서 중요한 부분을 차지합니다. Amazon Data Lifecycle Manager를 사용하면 EBS 스냅샷, Amazon S3 객체 및 기타 데이터 스토리지의 라이프사이클을 자동으로 관리할 수 있습니다. 이를 통해 오래된 데이터를 자동으로 삭제하거나 보다 저렴한 스토리지 계층으로 이동함으로써 저장 비용을 75% 절약할 수 있습니다.

 
5.4 S3 Intelligent-Tiering , EFS Archive Tier 비용 최적화
5.4.1 S3 Intelligent-Tiering

S3 Intelligent-Tiering은 접근 패턴이 변하는 데이터를 위한 스토리지 클래스입니다. 이 서비스는 자동으로 데이터를 분석하여 접근 빈도에 따라 가장 비용 효율적인 스토리지 계층으로 이동시킵니다.
사용자는 이 데이터를 관리하기 위해 성능을 저하시키거나 관리 비용을 추가로 지불할 필요가 없습니다.

  • 비용 절감: 자동으로 데이터를 자주 접근하는 계층(Frequent Access)과 자주 접근하지 않는 계층(Infrequent Access)으로 분류하여 비용을 절감합니다. 데이터가 접근되지 않는 경우, 더 낮은 비용의 계층으로 자동 이동합니다.
  • 사용 용이성: 복잡한 설정이나 관리 없이 S3 버킷에 이 기능을 적용할 수 있습니다. 데이터의 접근 패턴을 직접 모니터링하거나 관리할 필요가 없습니다.
 
5.4.2 EFS Archive Tier

EFS는 클라우드에서 완전 관리되는 파일 스토리지 서비스입니다. EFS Archive Tier는 장기간 접근하지 않는 데이터를 자동으로 비용 효율적인 아카이브 스토리지 계층으로 이동시키는 기능을 제공합니다.

  • 비용 최적화: EFS Lifecycle Management를 사용하여, 정의된 기간 동안 접근되지 않은 파일을 자동으로 Archive Tier로 이동시킵니다. 이는 표준 EFS 스토리지 비용보다 훨씬 낮은 비용으로 데이터를 저장할 수 있게 합니다.
  • 투명성: 파일은 여전히 파일 시스템 내에서 동일한 경로로 접근할 수 있으며, 사용자는 파일이 아카이브 계층으로 이동되었는지 여부와 상관없이 데이터에 접근할 수 있습니다. 접근 시, 자동으로 필요한 데이터가 복원되며 이 과정은 사용자에게 투명하게 이루어집니다.
 

이 글의 내용은 AWS QuickStart Workshop에서 진행된 자료 기반으로 작성된 것이므로 더 자세한 내용은 아래 링크에서 확인하실 수 있습니다.

https://pages.awscloud.com/rs/112-TZM-766/images/20240226_aws-quickstart-partner-workshop-deck-wa-cost-optimization-2024.pdf?version=0&mkt_tok=MTEyLVRaTS03NjYAAAGRtPtSv3wTB0Pwy49rzlAzA5hdzfOR33mRBPhlYxMXeLCTgrR8xpEwfCjlqpcHJGkp4xsbnblLXtlYDKMQAlAAahtwJXCiK6FfbQfzAk_QLJ46Qpxlfr8mrw

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다