本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範例:ElastiCache
下列範例將 Amazon ElastiCache 叢集新增至 EC2-Classic 和 EC2-VPC (預設和自訂 Amazon Virtual Private Cloud (Amazon VPC)) 平台。如需這些平台的詳細資訊,並進一步了解如何判斷哪些 EC2 支援您的區域與您的 AWS 帳戶,請參閱https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html。之後,請參考本主題下適用您的平台的章節。
EC2-Classic 平台
本範例將 Amazon ElastiCache 叢集新增至具備 EC2-Classic 平台所啟動的執行個體的環境。本範例列出的所有屬性都是最低要求的屬性,各個資源類型均必須設定。您可以在 ElastiCache 範例
注意
本範例會建立 AWS 資源,您可能需要為其支付費用。如需 AWS 定價的詳細資訊,請參閱 https://aws.amazon.com/pricing/
要使用此範例,請依照下列項目:
在原始碼套件的最上層目錄建立
.ebextensions
目錄。以
.config
延伸建立兩個組態檔案,並且置於.ebextensions
目錄。一個組態檔案定義資源,另一個組態檔案定義選項。將您的應用程式部署至 Elastic Beanstalk。
YAML 憑藉一致的縮排。請在取代範例組態檔中的內容時,讓縮排層級一致,並確認您的文字編輯器使用空格而非定位字元進行縮排。
建立定義資源的組態檔案 (如 elasticache.config
)。在此範例中,我們指定 ElastiCache 叢集資源的名稱 (MyElastiCache
)、宣告其類型,並設定叢集屬性,藉此建立 ElastiCache 叢集。本範例參考的 ElastiCache 安全群組資源名稱,均由此組態檔案建立並定義。接著,我們建立 ElastiCache 安全群組。我們定義資源名稱、宣告其類型,並新增安全群組的說明。最後,我們設定 ElastiCache 安全群組的輸入規則,僅允許 ElastiCache 安全群組 (MyCacheSecurityGroup
) 和 Elastic Beanstalk 安全群組 (AWSEBSecurityGroup
) 內的執行個體進行存取。參數名稱 AWSEBSecurityGroup
則是固定的資源名稱,由 Elastic Beanstalk 所提供。您必須將 AWSEBSecurityGroup
新增至您的 ElastiCache 安全群組輸入規則,如此一來,您的 Elastic Beanstalk 應用程式即可連接至您 ElastiCache 叢集內的執行個體。)
#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
這些行會指示 Elastic Beanstalk 自組態檔案 (本範例為 options.config) 的CacheNodeType、NumCacheNodes 和 Engine (引擎) 值,取得 CacheNodeType、NumCacheNodes 和 Engine (引擎) 屬性的值,其中的 option_settings 區段具備 aws:elasticbeanstalk:customoption 區段,內含的名稱-值對帶有該使用的實際值。上述範例表示這些值為 cache.m1.small、1 和 memcached。如需有關 Fn::GetOptionSetting
的詳細資訊,請參閱 函數。
EC2-VPC (預設)
本範例將 Amazon ElastiCache 叢集新增至具備 EC2-VPC 平台所啟動的執行個體的環境。具體而言,本章節的資訊適用 EC2 於預設 VPC 啟動執行個體的情境。本範例的所有屬性都是最低要求的屬性,各個資源類型均必須設定。如需預設 VPC 的詳細資訊,請參閱您的預設 VPC 與子網路相關文章。
注意
本範例會建立 AWS 資源,您可能需要為其支付費用。如需 AWS 定價的詳細資訊,請參閱 https://aws.amazon.com/pricing/
要使用此範例,請依照下列項目:
在原始碼套件的最上層目錄建立
.ebextensions
目錄。以
.config
延伸建立兩個組態檔案,並且置於.ebextensions
目錄。一個組態檔案定義資源,另一個組態檔案定義選項。將您的應用程式部署至 Elastic Beanstalk。
YAML 憑藉一致的縮排。請在取代範例組態檔中的內容時,讓縮排層級一致,並確認您的文字編輯器使用空格而非定位字元進行縮排。
現請為資源組態檔案 elasticache.config
命名。本範例指定 ElastiCache 叢集資源的名稱 (MyElastiCache
)、宣告其類型,並設定叢集屬性,藉此建立 ElastiCache 叢集。本範例參考的安全群組資源 ID,均由我們於此組態檔案中建立並定義。
接著,我們建立 EC2 安全群組。我們定義此資源的名稱、宣告其類型、新增說明,並設定安全群組的輸入規則,僅允許 Elastic Beanstalk 安全群組 (AWSEBSecurityGroup
) 內的執行個體進行存取。(參數名稱 AWSEBSecurityGroup
是 Elastic Beanstalk 提供的固定資源名稱。您必須將 AWSEBSecurityGroup
新增至您的 ElastiCache 安全群組輸入規則,如此一來,您的 Elastic Beanstalk 應用程式即可連接至您 ElastiCache 叢集內的執行個體)。
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
這些行會指示 Elastic Beanstalk 自組態檔案 (本範例為 CacheNodeType
) 中的 NumCacheNodes
、Engine
、CachePort
和 CacheNodeType
值,取得 NumCacheNodes
、Engine
、CachePort
和 options.config
屬性的值。該檔案具備 aws:elasticbeanstalk:customoption
區段 (option_settings
之下),內含的名稱/值對帶有該使用的實際值。上述範例的這些值為 cache.t2.micro
、1
、redis
和 6379
。如需有關 Fn::GetOptionSetting
的詳細資訊,請參閱 函數。
EC2-VPC (自訂)
若您於 EC2-VPC 平台建立自訂 VPC,並將其指定為 EC2 啟動執行個體的 VPC,則將 Amazon ElastiCache 叢集新增至您環境的程序,與預設 VPC 的程序不同。主要差異在於,您必須建立 ElastiCache 叢集的子網路群組。本範例的所有屬性都是最低要求的屬性,各個資源類型均必須設定。
注意
本範例會建立 AWS 資源,您可能需要為其支付費用。如需 AWS 定價的詳細資訊,請參閱 https://aws.amazon.com/pricing/
要使用此範例,請依照下列項目:
在原始碼套件的最上層目錄建立
.ebextensions
目錄。以
.config
延伸建立兩個組態檔案,並且置於.ebextensions
目錄。一個組態檔案定義資源,另一個組態檔案定義選項。將您的應用程式部署至 Elastic Beanstalk。
YAML 憑藉一致的縮排。請在取代範例組態檔中的內容時,讓縮排層級一致,並確認您的文字編輯器使用空格而非定位字元進行縮排。
現請為資源組態檔案 elasticache.config
命名。本範例指定 ElastiCache 叢集資源的名稱 (MyElastiCache
)、宣告其類型,並設定叢集屬性,藉此建立 ElastiCache 叢集。本範例屬性參考 ElastiCache 叢集的子網路群組名稱,以及由我們於此組態檔案建立並定義的安全群組資源 ID。
接著,我們建立 EC2 安全群組。我們定義此資源的名稱、宣告其類型、新增說明和 VPC ID,並設定安全群組的輸入規則,僅允許 Elastic Beanstalk 安全群組 (AWSEBSecurityGroup
) 內的執行個體進行存取。(參數名稱 AWSEBSecurityGroup
是 Elastic Beanstalk 提供的固定資源名稱。您必須將 AWSEBSecurityGroup
新增至您的 ElastiCache 安全群組輸入規則,如此一來,您的 Elastic Beanstalk 應用程式即可連接至您 ElastiCache 叢集內的執行個體)。
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,取代範例 CacheSubnets
和 VpcId
的值。
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
這些行會指示 Elastic Beanstalk 自組態檔案 (本範例為 CacheNodeType
) 中的 NumCacheNodes
、Engine
、CachePort
、CacheSubnets
、VpcId
和 CacheNodeType
值,取得 NumCacheNodes
、Engine
、CachePort
、CacheSubnets
、VpcId
和 options.config
屬性的值。該檔案具備 aws:elasticbeanstalk:customoption
區段 (option_settings
之下),內含的名稱/值對帶有範例值。上述範例的這些值為 cache.t2.micro
、1
、redis
、6379
、subnet-1a1a1a1a
、subnet-2b2b2b2b
、subnet-3c3c3c3c
和 vpc-4d4d4d4d
。如需有關 Fn::GetOptionSetting
的詳細資訊,請參閱 函數。