예: ElastiCache - AWS Elastic Beanstalk

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

예: ElastiCache

다음 샘플은 EC2-Classic 및 EC2-VPC(기본 및 사용자 지정 Amazon Virtual Private Cloud(Amazon VPC)) 플랫폼에 Amazon ElastiCache 클러스터를 추가합니다. 이러한 플랫폼에 대한 자세한 내용과 EC2에서 사용자의 리전 및 AWS 계정에 대해 지원하는 플랫폼을 확인하는 방법은 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html 단원을 참조하세요. 그런 다음 사용 중인 플랫폼에 적용되는 이 주제의 단원을 참조하십시오.

EC2-Classic 플랫폼

이 샘플은 EC2-Classic 플랫폼으로 시작된 인스턴스가 있는 환경에 Amazon ElastiCache 클러스터를 추가합니다. 이 예제에서 보이는 모든 속성은 이러한 각 리소스 유형에 대해 설정해야 하는 최소 필수 속성입니다. ElastiCache 예제에서 해당 예제를 다운로드할 수 있습니다.

참고

이 예에서는 요금이 부과될 수 있는 AWS 리소스를 생성합니다. AWS 요금에 대한 자세한 내용은 https://aws.amazon.com/pricing/ 단원을 참조하세요. 일부 서비스는 AWS 프리 티어의 일부분입니다. 신규 고객은 무료로 이 서비스를 시험 사용할 수 있습니다. 자세한 내용은 https://aws.amazon.com/free/를 참조하십시오.

이 예를 활용하려면 다음과 같이 하세요.

  1. 소스 번들의 최상위 디렉터리에 .ebextensions 디렉터리를 생성합니다.

  2. 확장자 .config로 구성 파일 두 개를 생성하고 .ebextensions 디렉터리로 가져옵니다. 구성 파일 하나는 리소스를 정의하고 다른 하나는 옵션을 정의합니다.

  3. Elastic Beanstalk에 애플리케이션을 배포합니다.

    YAML은 일정한 들여쓰기를 사용합니다. 예제 구성 파일의 콘텐츠를 바꿀 때 들여쓰기 레벨을 일치시키고, 텍스트 편집기가 탭 문자 대신 공백을 사용해 들여쓰기를 하도록 합니다.

리소스를 정의하는 구성 파일(예: elasticache.config)을 생성합니다. 이 예제에서는 ElastiCache 클러스터 리소스(MyElastiCache)의 이름을 지정하고, 해당 리소스의 유형을 선언한 다음 클러스터의 속성을 구성하여 ElastiCache 클러스터를 생성합니다. 또한 이 구성 파일에서 생성 및 정의되는 ElastiCache 보안 그룹 리소스의 이름을 참조합니다. 다음으로 ElastiCache 보안 그룹을 생성합니다. 이 리소스의 이름을 정의하고, 리소스의 유형을 선언한 다음 보안 그룹에 대한 설명을 추가합니다. 마지막으로, ElastiCache 보안 그룹(MyCacheSecurityGroup) 및 Elastic Beanstalk 보안 그룹(AWSEBSecurityGroup) 내 인스턴스에서의 액세스만 허용하도록 ElastiCache 보안 그룹에 대한 수신 규칙을 설정합니다. 파라미터 이름 AWSEBSecurityGroup은 Elastic Beanstalk에서 제공하는 고정된 리소스 이름입니다. Elastic Beanstalk 애플리케이션에서 ElastiCache 클러스터의 인스턴스에 연결하도록 하려면 ElastiCache 보안 그룹 수신 규칙에 AWSEBSecurityGroup을 추가해야 합니다.

#This sample requires you to create a separate configuration file that defines the custom option settings for CacheCluster properties. Resources: MyElastiCache: Type: AWS::ElastiCache::CacheCluster Properties: CacheNodeType: Fn::GetOptionSetting: OptionName : CacheNodeType DefaultValue: cache.m1.small NumCacheNodes: Fn::GetOptionSetting: OptionName : NumCacheNodes DefaultValue: 1 Engine: Fn::GetOptionSetting: OptionName : Engine DefaultValue: memcached CacheSecurityGroupNames: - Ref: MyCacheSecurityGroup MyCacheSecurityGroup: Type: AWS::ElastiCache::SecurityGroup Properties: Description: "Lock cache down to webserver access only" MyCacheSecurityGroupIngress: Type: AWS::ElastiCache::SecurityGroupIngress Properties: CacheSecurityGroupName: Ref: MyCacheSecurityGroup EC2SecurityGroupName: Ref: AWSEBSecurityGroup

이 구성 파일 예제에서 사용된 리소스에 대한 자세한 내용은 다음 참조를 참조하십시오.

options.config라는 별개의 구성 파일을 생성하고, 사용자 지정 옵션 설정을 정의합니다.

option_settings: "aws:elasticbeanstalk:customoption": CacheNodeType : cache.m1.small NumCacheNodes : 1 Engine : memcached

이러한 행은 사용할 실제 값의 이름-값 페어가 포함된 aws:elasticbeanstalk:customoption 섹션과 함께 option_settings 섹션이 포함된 구성 파일(이 예제의 options.config)의 CacheNodeType, NumCacheNodes 및 Engine 값에서 CacheNodeType, NumCacheNodes 및 Engine 속성의 값을 가져오라고 ElasticBeanstalk에 지시합니다. 위 예제에서 이는 cache.m1.small 즉, 1을 뜻하며 Memcached가 이 값에 사용됩니다. Fn::GetOptionSetting에 대한 자세한 내용은 함수 단원을 참조하세요.

EC2-VPC(기본값)

이 샘플은 EC2-VPC 플랫폼으로 시작된 인스턴스가 있는 환경에 Amazon ElastiCache 클러스터를 추가합니다. 특히, 이 섹션의 정보는 EC2가 인스턴스를 기본 VPC로 시작하는 시나리오에 적용됩니다. 이 예제의 모든 속성은 이러한 각 리소스 유형에 대해 설정해야 하는 최소 필수 속성입니다. 기본 VPC에 대한 자세한 내용은 기본 VPC 및 서브넷 단원을 참조하세요.

참고

이 예에서는 요금이 부과될 수 있는 AWS 리소스를 생성합니다. AWS 요금에 대한 자세한 내용은 https://aws.amazon.com/pricing/ 단원을 참조하세요. 일부 서비스는 AWS 프리 티어의 일부분입니다. 신규 고객은 무료로 이 서비스를 시험 사용할 수 있습니다. 자세한 내용은 https://aws.amazon.com/free/를 참조하십시오.

이 예를 활용하려면 다음과 같이 하세요.

  1. 소스 번들의 최상위 디렉터리에 .ebextensions 디렉터리를 생성합니다.

  2. 확장자 .config로 구성 파일 두 개를 생성하고 .ebextensions 디렉터리로 가져옵니다. 구성 파일 하나는 리소스를 정의하고 다른 하나는 옵션을 정의합니다.

  3. Elastic Beanstalk에 애플리케이션을 배포합니다.

    YAML은 일정한 들여쓰기를 사용합니다. 예제 구성 파일의 콘텐츠를 바꿀 때 들여쓰기 레벨을 일치시키고, 텍스트 편집기가 탭 문자 대신 공백을 사용해 들여쓰기를 하도록 합니다.

이제, 리소스 구성 파일의 이름을 elasticache.config로 지정합니다. ElastiCache 클러스터를 생성하기 위해 이 예제에서는 ElastiCache 클러스터 리소스(MyElastiCache)의 이름을 지정하고, 해당 리소스의 유형을 선언한 다음 클러스터의 속성을 구성합니다. 또한 이 구성 파일에서 생성 및 정의한 보안 그룹 리소스의 ID를 참조합니다.

다음으로 EC2 보안 그룹을 생성합니다. 리소스의 이름을 정의하고, 리소스의 유형을 선언한 다음 설명을 추가한 후 Elastic Beanstalk 보안 그룹(AWSEBSecurityGroup) 내 인스턴스에서의 액세스만 허용하도록 보안 그룹에 대한 수신 규칙을 설정합니다. (매개변수 이름 AWSEBSecurityGroup은 Elastic Beanstalk이 제공하는 고정형 리소스입니다. Elastic Beanstalk 애플리케이션에서 ElastiCache 클러스터의 인스턴스에 연결하도록 하려면 ElastiCache 보안 그룹 수신 규칙에 AWSEBSecurityGroup을 추가해야 합니다.)

또한 EC2 보안 그룹에 대한 수신 규칙은 캐시 노드가 연결을 수락할 수 있는 IP 프로토콜 및 포트 번호도 정의합니다. Redis용 기본 포트 번호는 6379입니다.

#This sample requires you to create a separate configuration file that defines the custom option settings for CacheCluster properties. Resources: MyCacheSecurityGroup: Type: "AWS::EC2::SecurityGroup" Properties: GroupDescription: "Lock cache down to webserver access only" SecurityGroupIngress : - IpProtocol : "tcp" FromPort : Fn::GetOptionSetting: OptionName : "CachePort" DefaultValue: "6379" ToPort : Fn::GetOptionSetting: OptionName : "CachePort" DefaultValue: "6379" SourceSecurityGroupName: Ref: "AWSEBSecurityGroup" MyElastiCache: Type: "AWS::ElastiCache::CacheCluster" Properties: CacheNodeType: Fn::GetOptionSetting: OptionName : "CacheNodeType" DefaultValue : "cache.t2.micro" NumCacheNodes: Fn::GetOptionSetting: OptionName : "NumCacheNodes" DefaultValue : "1" Engine: Fn::GetOptionSetting: OptionName : "Engine" DefaultValue : "redis" VpcSecurityGroupIds: - Fn::GetAtt: - MyCacheSecurityGroup - GroupId Outputs: ElastiCache: Description : "ID of ElastiCache Cache Cluster with Redis Engine" Value : Ref : "MyElastiCache"

이 구성 파일 예제에서 사용된 리소스에 대한 자세한 내용은 다음 참조를 참조하십시오.

다음으로, 옵션 구성 파일의 이름을 options.config로 지정하고, 사용자 지정 옵션 설정을 정의합니다.

option_settings: "aws:elasticbeanstalk:customoption": CacheNodeType : cache.t2.micro NumCacheNodes : 1 Engine : redis CachePort : 6379

이러한 줄은 구성 파일(이 예제에서는 CacheNodeType)의 NumCacheNodes, Engine, CachePortCacheNodeType 값에서 NumCacheNodes, Engine, CachePortoptions.config 속성의 값을 가져오도록 Elastic Beanstalk에 지시합니다. 이 구성 파일에는 aws:elasticbeanstalk:customoption 아래에 사용할 실제 값이 들어 있는 이름-값 페어가 포함된 option_settings 섹션이 있습니다. 앞선 예제에서 cache.t2.micro, 1, redis6379이 이러한 값에 사용될 수 있습니다. Fn::GetOptionSetting에 대한 자세한 내용은 함수 단원을 참조하세요.

EC2-VPC(사용자 지정)

EC2-VPC 플랫폼에서 사용자 지정 VPC를 생성하고 이 VPC를 EC2에서 인스턴스를 시작할 VPC로 지정하면 환경에 Amazon ElastiCache 클러스터를 추가하는 프로세스가 기본 VPC의 프로세스와 달라집니다. ElastiCache 클러스터에 대한 서브넷 그룹을 생성해야 한다는 점이 가장 크게 다릅니다. 이 예제의 모든 속성은 이러한 각 리소스 유형에 대해 설정해야 하는 최소 필수 속성입니다.

참고

이 예에서는 요금이 부과될 수 있는 AWS 리소스를 생성합니다. AWS 요금에 대한 자세한 내용은 https://aws.amazon.com/pricing/ 단원을 참조하세요. 일부 서비스는 AWS 프리 티어의 일부분입니다. 신규 고객은 무료로 이 서비스를 시험 사용할 수 있습니다. 자세한 내용은 https://aws.amazon.com/free/를 참조하십시오.

이 예를 활용하려면 다음과 같이 하세요.

  1. 소스 번들의 최상위 디렉터리에 .ebextensions 디렉터리를 생성합니다.

  2. 확장자 .config로 구성 파일 두 개를 생성하고 .ebextensions 디렉터리로 가져옵니다. 구성 파일 하나는 리소스를 정의하고 다른 하나는 옵션을 정의합니다.

  3. Elastic Beanstalk에 애플리케이션을 배포합니다.

    YAML은 일정한 들여쓰기를 사용합니다. 예제 구성 파일의 콘텐츠를 바꿀 때 들여쓰기 레벨을 일치시키고, 텍스트 편집기가 탭 문자 대신 공백을 사용해 들여쓰기를 하도록 합니다.

이제, 리소스 구성 파일의 이름을 elasticache.config로 지정합니다. ElastiCache 클러스터를 생성하기 위해 이 예제에서는 ElastiCache 클러스터 리소스(MyElastiCache)의 이름을 지정하고, 해당 리소스의 유형을 선언한 다음 클러스터의 속성을 구성합니다. 이 예제의 속성은 ElastiCache 클러스터의 서브넷 그룹 이름과 이 구성 파일에서 생성 및 정의한 보안 그룹 리소스의 ID를 참조합니다.

다음으로 EC2 보안 그룹을 생성합니다. 리소스의 이름을 정의하고, 리소스의 유형을 선언한 다음 설명 및 VPC ID를 추가한 후 Elastic Beanstalk 보안 그룹(AWSEBSecurityGroup) 내 인스턴스에서의 액세스만 허용하도록 보안 그룹에 대한 수신 규칙을 설정합니다. (매개변수 이름 AWSEBSecurityGroup은 Elastic Beanstalk이 제공하는 고정형 리소스입니다. Elastic Beanstalk 애플리케이션에서 ElastiCache 클러스터의 인스턴스에 연결하도록 하려면 ElastiCache 보안 그룹 수신 규칙에 AWSEBSecurityGroup을 추가해야 합니다.)

또한 EC2 보안 그룹에 대한 수신 규칙은 캐시 노드가 연결을 수락할 수 있는 IP 프로토콜 및 포트 번호도 정의합니다. Redis용 기본 포트 번호는 6379입니다. 마지막으로, 이 예제에서는 ElastiCache 클러스터의 서브넷 그룹을 생성합니다. 이 리소스의 이름을 정의하고, 리소스의 유형을 선언한 다음 서브넷 그룹의 서브넷 ID와 설명을 추가합니다.

참고

ElastiCache 클러스터에 프라이빗 서브넷을 사용하는 것이 좋습니다. 프라이빗 서브넷을 사용하는 VPC에 대한 자세한 내용은 단원을 참조하세요https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html

#This sample requires you to create a separate configuration file that defines the custom option settings for CacheCluster properties. Resources: MyElastiCache: Type: "AWS::ElastiCache::CacheCluster" Properties: CacheNodeType: Fn::GetOptionSetting: OptionName : "CacheNodeType" DefaultValue : "cache.t2.micro" NumCacheNodes: Fn::GetOptionSetting: OptionName : "NumCacheNodes" DefaultValue : "1" Engine: Fn::GetOptionSetting: OptionName : "Engine" DefaultValue : "redis" CacheSubnetGroupName: Ref: "MyCacheSubnets" VpcSecurityGroupIds: - Ref: "MyCacheSecurityGroup" MyCacheSecurityGroup: Type: "AWS::EC2::SecurityGroup" Properties: GroupDescription: "Lock cache down to webserver access only" VpcId: Fn::GetOptionSetting: OptionName : "VpcId" SecurityGroupIngress : - IpProtocol : "tcp" FromPort : Fn::GetOptionSetting: OptionName : "CachePort" DefaultValue: "6379" ToPort : Fn::GetOptionSetting: OptionName : "CachePort" DefaultValue: "6379" SourceSecurityGroupId: Ref: "AWSEBSecurityGroup" MyCacheSubnets: Type: "AWS::ElastiCache::SubnetGroup" Properties: Description: "Subnets for ElastiCache" SubnetIds: Fn::GetOptionSetting: OptionName : "CacheSubnets" Outputs: ElastiCache: Description : "ID of ElastiCache Cache Cluster with Redis Engine" Value : Ref : "MyElastiCache"

이 구성 파일 예제에서 사용된 리소스에 대한 자세한 내용은 다음 참조를 참조하십시오.

다음으로, 옵션 구성 파일의 이름을 options.config로 지정하고, 사용자 지정 옵션 설정을 정의합니다.

참고

다음 예제에서는 고유한 서브넷 및 VPC로 예제 CacheSubnetsVpcId 값을 바꿉니다.

option_settings: "aws:elasticbeanstalk:customoption": CacheNodeType : cache.t2.micro NumCacheNodes : 1 Engine : redis CachePort : 6379 CacheSubnets: - subnet-1a1a1a1a - subnet-2b2b2b2b - subnet-3c3c3c3c VpcId: vpc-4d4d4d4d

이러한 줄은 구성 파일(이 예제에서는 CacheNodeType)의 NumCacheNodes, Engine, CachePort, CacheSubnets, VpcIdCacheNodeType 값에서 NumCacheNodes, Engine, CachePort, CacheSubnets, VpcIdoptions.config 속성의 값을 가져오도록 Elastic Beanstalk에 지시합니다. 이 구성 파일에는 aws:elasticbeanstalk:customoption 아래에 샘플 값이 들어 있는 이름-값 페어가 포함된 option_settings 섹션이 있습니다. 위의 예제에서 cache.t2.micro, 1, redis, 6379, subnet-1a1a1a1a, subnet-2b2b2b2b, subnet-3c3c3c3cvpc-4d4d4d4d이 이러한 값에 사용될 수 있습니다. Fn::GetOptionSetting에 대한 자세한 내용은 함수 단원을 참조하세요.