Amazon Web Services ããã°
æ°æ©èœ â EC2 Auto Scalingã®ã¿ãŒã²ãããã©ããã³ã°ããªã·ãŒ
å æ¥DynamoDBã®Auto Scalingã«ã€ããŠãäŒãããããã§DynamoDBããŒãã«ã®ãã£ãã·ãã£ç®¡çãèªååããããã«ã©ã®ããã«è€æ°ã®CloudWatchã¢ã©ãŒã ãå©çšããŠãããããèŠãããŸããããã®è£ã§ã¯ãããããããã€ãã®ç°ãªãAWSãµãŒãã¹ã«æž¡ã£ãŠå©çšãäºå®ãããŠããããã£ãšäžè¬åãããApplication Auto Scalingã®ã¢ãã«ã䜿ãããšã§ãã®æ©èœãå®çŸããŠããŸãã
æ°ããAuto Scalingã®ã¢ãã«ã¯ã¿ãŒã²ãããã©ããã³ã°ãšåŒã°ããéèŠãªæ°ããæ©èœãå«ãã§ããŸããã¿ãŒã²ãããã©ããã³ã°ã䜿ã£ãŠAuto Scalingã®ããªã·ãŒãäœæããæã«ã¯ãç¹å®ã®CloudWatchã¡ããªã¯ã¹ã«å¯ŸããŠã¿ãŒã²ãããšãªãå€ãéžæããŸããAuto Scalingã¯ãã®ã¡ããªã¯ã¹ãã¿ãŒã²ããã«åããæ§ã«é©åãª(ã¹ããŒã«ãŒã§èšã)ã€ãŸã¿ãåããåãããŠé¢é£ããCloudWatchã¢ã©ãŒã ã調æŽããŸããã©ããã£ãã¡ããªã¯ã¹ã§ããã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠæå³ã®ãããã®ã§å¿ èŠãªã¿ãŒã²ãããæå®ãããšããæ¹æ³ã¯ãå ã ããã¹ãããã¹ã±ãŒãªã³ã°ããªã·ãŒã®æ§ã«æåã§ã¡ããªã¯ã¹ã®ã¬ã³ãžãšéŸå€ãèšå®ããããããäžè¬çã«ã¯ããç°¡åã§çŽæ¥çãªããããã§ããããããããé«åºŠãªã¹ã±ãŒãªã³ã°æŠç¥ãå®è£ ããããã«ãã¿ãŒã²ãããã©ããã³ã°ãšã¹ãããã¹ã±ãŒãªã³ã°ãçµã¿åãããããšãå¯èœã§ããäŸãã°ãã¹ã±ãŒã«ã¢ãŠãã«ã¯ã¿ãŒã²ãããã©ããã³ã°ã䜿ããã¹ã±ãŒã«ã€ã³ã«ã¯ã¹ãããã¹ã±ãŒãªã³ã°ã䜿ãçãèããããŸãã
EC2ã«æ°ããæ©èœ
æ¬æ¥ãEC2 Auto Scalingã«ã¿ãŒã²ãããã©ããã³ã°ã®ãµããŒãã远å ããŸãããApplication Load Balancerã®ãªã¯ãšã¹ãæ°ãCPUè² è·ããããã¯ãŒã¯ãã©ãã£ãã¯ããŸãã¯ã«ã¹ã¿ã ã¡ããªã¯ã¹ã«ããã¹ã±ãŒãªã³ã°ããªã·ãŒãäœæããããšãã§ããŸã(ã¿ãŒã²ããæ¯ã®ãªã¯ãšã¹ãæ°ãšããã¡ããªã¯ã¹ã¯æ°ãããã®ã§æ¬æ¥ã®ãªãªãŒã¹ã®äžéšã«ãªããŸã)ã

ãããã¡ããªã¯ã¹ã¯éèŠãªç¹åŸŽãå ±éããŠããŸã: EC2ã€ã³ã¹ã¿ã³ã¹ã远å ããããšã§(å šäœã®è² è·ãå€åããŠããªãæã«)ãã¡ããªã¯ã¹ãäžããããšã«ãªããŸãããããã¯ãã®éãã§ãã
ã¿ãŒã²ãããã©ããã³ã°ã䜿ã£ãAuto Scaling Groupãäœãã®ã¯ç°¡åã§ãããªã·ãŒã®ååãå ¥åããã¡ããªã¯ã¹ãéžæããåžæããã¿ãŒã²ããã®å€ãèšå®ããã ãã§ã:

ã¹ã±ãŒã«ã€ã³åŽã®ããªã·ãŒãç¡å¹ã«ããããšãã§ããŸãããã®å Žåãæåã§ã¹ã±ãŒã«ã€ã³ããããå¥ã®ããªã·ãŒã䜿ãããšãã§ããŸãã
ã¿ãŒã²ãããã©ããã³ã°ããªã·ãŒã¯ãAWS Management ConsoleãAWS Command Line Interface (CLI)ããŸãã¯AWS SDKã§ãäœæããããšãã§ããŸãã
以äžã¯ãã¿ãŒã²ãããã©ããã³ã°ã䜿ãããšããæã«é ã«ãããŠããã¹ãé ç®ã«ãªããŸã:
- 1ã€ã®Auto Scaling Groupã«å¯ŸããŠãç°ãªãã¡ããªã¯ã¹ãåç §ããŠããè€æ°ã®ã¿ãŒã²ãããèšå®ããããšãã§ããŸããã¹ã±ãŒãªã³ã°ã¯åžžã«äžçªé«ããã£ãã·ãã£ãæ±ããããªã·ãŒã«åŸããŸãã
- ã¡ããªã¯ã¹ã®ããŒã¿ãäžååãªæã¯ã¹ã±ãŒãªã³ã°ã¯çºåããŸããã
- Auto Scalingã¯ã¡ããªã¯ã¹ã®æ¥éã§äžæçãªå€åãè£ããé¢é£ãããã£ãã·ãã£ã®æ¥æ¿ãªå€åãæå°åããããšåªåããŸãã
- ã«ã¹ã¿ã ã¡ããªã¯ã¹ã§ã®ã¿ãŒã²ãããã©ããã³ã°ã¯Auto Scaling APIãAWS Command Line Interface (CLI)ã§èšå®ããããšãã§ããŸãã
- å€ãã®ã±ãŒã¹ã§ã1åééã§å ¥ã£ãŠããã¡ããªã¯ã¹(詳现ã¢ãã¿ãªã³ã°ãšãèšãããŸã)ã«å¿ããŠã¹ã±ãŒã«ããããã«éžæãã¹ãã§ãã5åééã®ã¡ããªã¯ã¹ãã¹ã±ãŒãªã³ã°ã®åºæ¬ã«ãããšãåå¿æéãé ããªã£ãŠããŸããŸãã
æ¬æ¥ããå©çšå¯èœã§ã
ãã®æ°ããæ©èœã¯æ¬æ¥ããå©çšå¯èœã§ãè¿œå æéç¡ãã«äœ¿ãå§ããããŸãããã詳ããã¯ãAuto ScalingãŠãŒã¶ã¬ã€ãã®ã¿ãŒã²ãããã©ããã³ã°ã¹ã±ãŒãªã³ã°ãã芧ãã ããã
â Jeff;
åæ: New â Target Tracking Policies for EC2 Auto Scaling (翻蚳: SA岩氞)
ã³ã³ããããµãŒãã¬ã¹ã¢ããªã®ãããã€ããŒã«ãšããŠã®AWS CloudFormation
SA岩氞ã§ããAWSäžã«ã·ã¹ãã ãæ§ç¯ããéã«ãã¢ããªã±ãŒã·ã§ã³ã®ãããã€ãã©ã®ããã«è¡ããïŒã«ã€ããŠã¯å€æ§ãªããæ¹ãèããããŸããã仿¥ã¯AWS CloudFormationã䜿ã£ããããã€ãã玹ä»ããããšæããŸããCloudFormationã¯ã€ã³ãã©æ§ç¯ã®ããŒã«ãšããŠèããããŠããæ¹ãå€ããšæããŸãããæè¿ã¯ç¹ã«Amazon ECSãAWS Lambdaãšãã£ãComputeãµãŒãã¹ãžã®ã¢ããªã±ãŒã·ã§ã³ãããã€ããŒã«ãšããŠã®æŽ»çšãé²ãã§ããŸããAWSã®ãªãœãŒã¹ã¯AWS Command Line Interface (CLI)ãSDKçã§ã®æäœãå¯èœãªã®ã§èªäœã®ããŒã«çã䜿ãããã®ã¯ãã¡ãã1ã€ã®éžæè¢ã§ãããããCloudFormationãæ€èšãããããšã®ãªãæ¹ã¯ããã²ãã®æçš¿ãåèã«ããŠé ãããšãããããã§ãã
ãããã€ããŒã«ãšããŠã®CloudFormationã®ã¡ãªãã
æåã«çµè«ããŸãšããŠãããŸããCloudFormationã䜿ã£ããããã€ã«ã¯ä»¥äžã®æ§ãªã¡ãªããããããŸãã
- ãããã€ããŒã«èªäœã®ã€ã³ã¹ããŒã«ãäžèŠãYAML/JSONãæžãã ãããã©ãŠã¶ããã§ããããã€å¯èœ
- 宣èšçã«ãããã€ãå®çŸ©ã»å®è¡ã§ãã
- ã¢ããªã±ãŒã·ã§ã³ã«é¢é£ããä»ã®AWSãªãœãŒã¹ãåãããŠç®¡çå¯èœ
çŸåšã䜿ãã®ãããã€ããŒã«ã§ãéã«äžèšã®æ§ãªèгç¹ã§å°ã£ãããšã®ããæ¹ã¯ããã®æçš¿ããã£ããèªãã§é ããšè¯ããšæããŸãã
ãããã€ããŒã«èªäœã®ã€ã³ã¹ããŒã«ãäžèŠãYAML/JSONãæžãã ãããã©ãŠã¶ããã§ããããã€å¯èœ
äŸãã°CLIã§è¡ãæ§ãªãããã€ããŒã«ã®å Žåããã®ããŒã«èªäœã®ã€ã³ã¹ããŒã«çãå¿ èŠã«ãªããŸãããCloudFormationã§ããã°ãã©ãŠã¶ãããã³ãã¬ãŒããæå®ããã ãã§ãããã€ã§ããŸããCloudFormationã®äžçªã®ã¡ãªããã¯ããã§ããã¢ããªã±ãŒã·ã§ã³ã®æ§æãèšè¿°ããYAML or JSONã®ãã³ãã¬ãŒããã¡ã€ã«ãçšæããã ãã§ãããã«ãããã€ãå¯èœã§ãã
CloudFormationã宿 ã¯AWSã®APIãå®è¡ããªãããªãœãŒã¹ãäœæã»æŽæ°ããŸãããCloudFormationã®å Žåã«ã¯APIã®å®è¡ãã®ãã®ãCloudFormationã®ãµãŒãã¹åŽã§ãã£ãŠãããŸããäŸãã°ECSã®ãããã€ã§æ°ããTask DefinitionãäœæããåŸã§ãããæå®ããŠServiceãæŽæ°ãããšããäŸåé¢ä¿ã®ãã2åã®APIæäœãé çªã«å®è¡ããå¿ èŠããããŸãããCloudFormationã«1ååœä»€ãéãã ãã§åŸã®APIæäœã¯CloudFormationã®ãµãŒãã¹ã代ããã«ãã£ãŠãããŸãããªã®ã§ããããã€ãçµãããŸã§å®è¡ããã»ã¹ãåŸ ã£ãŠããå¿ èŠããªãã§ãããè€æ°äººã®æä»çå®è¡ãå®çŸã§ããŸãããããã«çŸåšã®ç¶æ ãšéå»ã®å±¥æŽãšããããŒã¿ã®ä¿åãŸã§ããã£ãŠãããŸãã
ãã¡ãããCloudFormationèªäœãAWSã®ãµãŒãã¹ãªã®ã§ãCLI/SDKã§ã®æäœã¯å¯èœã§ããããããããã€ãCLIã§å®è¡ããŠçµãããŸã§åŸ
ã¡ããããšããããšã§ããã°ãaws cloudformation deployãšããã³ãã³ãã䜿ããšæŽæ°ãçµãããŸã§ããŒãªã³ã°ããªããåŸ
ã£ãŠãããŸãããã®å Žåã«å¿
èŠãªãã®ã¯AWS CLIã®ã€ã³ã¹ããŒã«ã®ã¿ãªã®ã§ããããŸã§ããŒãã«ã®é«ããã®ã§ã¯ãããŸããã
宣èšçã«ãããã€ãå®çŸ©ã»å®è¡ã§ãã
AWSã®APIãå©çšããªãããããã€ããŒã«ãèªäœããå Žåã«ã¯ããªãœãŒã¹ã®äœæé åºã«æ°ãæããªããããã€éäžã§å€±æããå Žåã®ãšã©ãŒãã³ããªã³ã°çãèæ ®ãã€ã€æç¶ãçã«å®è£ ããå¿ èŠããããŸããããã¯ã·ã³ãã«ãªæ§æã§ããã°ãããŸã§é£ããã¯ãªãã®ã§ããã察å¿ãããæ©èœãåŸã ã«å¢ããŠãããšã ãã ããšå®è£ ãè€éåããŠããŠããŸããŸãã
CloudFormationã§äœ¿ããã³ãã¬ãŒãã¯ãæç¶ããèšè¿°ããã®ã§ã¯ãªããåžæããç¶æ ã宣èšçã«å®çŸ©ãããã®ã§ãããã®ãããè€éãªæ§æã§ãã£ãŠãç°¡æœããä¿ã£ãŠèšè¿°ããããšãã§ããŸãããå€ãã®ã±ãŒã¹ã§åãªãœãŒã¹éã®äŸåé¢ä¿ãèªåã§å€æãããã®ã§ãå®è¡é åºãèããŠèšè¿°ããå¿ èŠããããŸããããã¡ããããã³ãã¬ãŒãã«ã¯ãã©ã¡ãŒã¿ãèšå®ããããšãå¯èœãªã®ã§ãäŸãã°ECSã§ããã°æ°ããäœæããã³ã³ããã€ã¡ãŒãžåããã©ã¡ãŒã¿ã«ããŠãããšããããã€ã¯ãã®ãã©ã¡ãŒã¿ãæŽæ°ããã ãã§æžã¿ãŸãã
ã¢ããªã±ãŒã·ã§ã³ã«é¢é£ããä»ã®AWSãªãœãŒã¹ãåãããŠç®¡çå¯èœ
ECSãLambdaã¯ãããåäœã ãã§å©çšããã±ãŒã¹ããããä»ã®AWSã®ãµãŒãã¹ãåãããŠå©çšãããããšãå€ããšæããŸããäŸãã°ãAWS Identity and Access Management (IAM)ã®Roleã¯è¯ã䜿ãããŸãããããŒã¿ããŒã¹ãšããŠAmazon DynamoDBã䜿ã£ãããECSã®ã³ã³ãããžã®è² è·åæ£ã«Elastic Load Balancingã䜿ãããšã¯éåžžã«å€ããå Žåã«ãã£ãŠã¯ã¢ããªã±ãŒã·ã§ã³ã®ãããã€æã«ãããã®ãªãœãŒã¹ã®æŽæ°ãè¡ãããã±ãŒã¹ããããŸãã
CloudFormationã§ã¯ä»ã®ãªãœãŒã¹ãåãããŠå®çŸ©ããŠæäœãããããã®ã§ããããã£ãã±ãŒã¹ã«éåžžã«åŒ·åãªããŒã«ãšãªããŸããã¢ããªã±ãŒã·ã§ã³ãšåããã³ãã¬ãŒãã§äœæããããšãã§ããŸãããæšå¹ŽãªãªãŒã¹ãããCross Stack Referenceãšããæ©èœã䜿ããšãå ã«äœæããŠããããªãœãŒã¹ãã¢ããªã±ãŒã·ã§ã³åŽããåç §ãããšãã£ãäœ¿ãæ¹ãã§ããŸãã
CloudFormationã䜿ã£ãECSã®ãããã€äŸ
ãã¡ãã¯ãECSãžã®ç¶ç¶çãããã€ã¡ã³ãã«ã€ããŠç޹ä»ãã以äžã®ããã°ããåç §é ãã®ãè¯ãã§ãã
ããã°ã§ç޹ä»ãããŠããæ§æã§ã¯ãGitHubãžã®ã³ãŒãã®pushãããªã¬ãŒã«ããŠãã€ã¡ãŒãžã®ãã«ãããECSã®Serviceã®æŽæ°ãŸã§äžè²«ãããã®ã玹ä»ããŠããŸãããServiceæŽæ°éšåã¯CloudFormationãã³ãã¬ãŒãã䜿ã£ãŠå®æœããŠããŸãããŸããAWS CodePipelineããããã€æ¹åŒãšããŠCloudFormationã«å¯Ÿå¿ããŠããã®ã§ãç°¡åã«èšå®ããããšãå¯èœã§ãã
åèã®ããã«ãTask DefinitionãšServiceãšIAM Roleãå®çŸ©ããYAMLãã³ãã¬ãŒãäŸã貌ãä»ããŠãããŸãã
https://github.com/awslabs/ecs-refarch-continuous-deployment/blob/master/templates/service.yaml
Resources:
ECSServiceRole:
Type: AWS::IAM::Role
Properties:
Path: /
AssumeRolePolicyDocument: |
{
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": [ "ecs.amazonaws.com" ]},
"Action": [ "sts:AssumeRole" ]
}]
}
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceRole
Service:
Type: AWS::ECS::Service
Properties:
Cluster: !Ref Cluster
Role: !Ref ECSServiceRole
DesiredCount: !Ref DesiredCount
TaskDefinition: !Ref TaskDefinition
LoadBalancers:
- ContainerName: simple-app
ContainerPort: 80
TargetGroupArn: !Ref TargetGroup
TaskDefinition:
Type: AWS::ECS::TaskDefinition
Properties:
Family: !Sub ${AWS::StackName}-simple-app
ContainerDefinitions:
- Name: simple-app
Image: !Sub ${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/${Repository}:${Tag}
EntryPoint:
- /usr/sbin/apache2
- -D
- FOREGROUND
Essential: true
Memory: 128
MountPoints:
- SourceVolume: my-vol
ContainerPath: /var/www/my-vol
PortMappings:
- ContainerPort: 80
Environment:
- Name: Tag
Value: !Ref Tag
- Name: busybox
Image: busybox
EntryPoint:
- sh
- -c
Essential: false
Memory: 128
VolumesFrom:
- SourceContainer: simple-app
Command:
- /bin/sh -c "while true; do /bin/date > /var/www/my-vol/date; sleep 1; done"
Volumes:
- Name: my-vol
CloudFormationã䜿ã£ãLambdaã®ãããã€äŸ
Lambdaã®æ§æç®¡çããã³ãããã€ã«ã¯ãAWS Serverless Application Model (SAM)ã䜿ãããšãã§ããŸããããã¯CloudFormationã®æ¡åŒµè¡šèšã§ãããäŸãã°ä»¥äžã®ãããªãã³ãã¬ãŒããæžããšç°¡åã«Amazon API GatewayãšLambda Functionããããã€(ååã¯æ§ç¯å«ã)ãããããšãã§ããŸãã
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Outputs the time
Resources:
TimeFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs6.10
CodeUri: ./
Events:
MyTimeApi:
Type: Api
Properties:
Path: /TimeResource
Method: GET
Lambdaã®ãããã€ãè¡ãéãå€ãã®ã±ãŒã¹ã§ã¯äŸåã©ã€ãã©ãªçããŸãšããzipãã¡ã€ã«ãäœæããAmazon Simple Storage Service (S3)ã«ã¢ããããŒãããäžã§FunctionãæŽæ°ããããšã«ãªããŸããAWS SAMã䜿ã£ãŠãããšãããAWS CLIã䜿ã£ãŠç°¡åã«å®çŸã§ããŸããå®è£ äŸã¯ä»¥äžã®ããã¥ã¡ã³ãã«è©³ãã玹ä»ãããŠããŸãã
ãŸãšã
ãã®æçš¿ã§ã¯ãAWS CloudFormationãã³ã³ããããµãŒãã¬ã¹ã¢ããªã±ãŒã·ã§ã³ããããã€ããããã®ããŒã«ãšããŠã玹ä»ããŸãããå€ãã®å®éã®ãŠãŒã¹ã±ãŒã¹ã§å©çšå¯èœãªãã®ã§ãã®ã§ãåèã«ããŠé ããã°å¹žãã§ãããµãŒãã¬ã¹ã¢ããªã®ããªããªãã€ãã©ã€ã³ãŸã§å«ããå®è£ ãå®éã«ã芧ã«ãªãããå Žåã«ã¯ãAWS CodeStarã§äœæããããããžã§ã¯ããåèã«ãªãããšæããŸãã®ã§åãããŠãåèé ããã°ãšæããŸãã
8 æã® AWS Black Belt ãªã³ã©ã€ã³ã»ãããŒã®ãæ¡å
ããã«ã¡ã¯ããœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã®å¿æã§ããAWS Black Belt ãªã³ã©ã€ã³ã»ãããŒ8æã®é ä¿¡ã«ã€ããŠãæ¡å ãããŠé ããŸãã8æã¯éçºè ã®æ¹ã ã«åœ¹ç«ã€å 容ãå€ãã«æŸéããäºå®ã§ãããœãªã¥ãŒã·ã§ã³ã«ããã§ã¯ããããã€ãããŒãã«ãããã®ãšïŒRedshift ã®ããŒãã«èšèšã«ã€ããŠã®ãã®ããéãããŸãããŸãä»å¹Žã«å ¥ã£ãŠå€§ããªã¢ããããŒãããã£ã DynamoDB ã«ã€ããŠããéãããŸãã
8æã®éå¬äºå®
ãµãŒãã¹ã«ãã
8/2(æ°Ž) 18:00-19:00 AWS X-ray
8/9(æ°Ž) 18:00-19:00 Amazon DynamoDB
8/23(æ°Ž) 18:00-19:00 AWS MobileHub
8/30(æ°Ž) 18:00-19:00 AWS Key Management Service (KMS)
ãœãªã¥ãŒã·ã§ã³ã«ãã
8/22(ç«) 12:00-13:00 Deployment on AWS
8/29(ç«) 12:00-13:00 Amazon Redshift ããŒãã«èšèšè©³çްã¬ã€ã
ãç³ã蟌ã¿ã¯ãããããäžèšã®ãªã³ã¯ããè¡ã£ãŠé ããŸãããã£ã³ã»ã«ã®éãé£çµ¡äžèŠã§ãã®ã§æ¯éãæ©ãã«ãç»é²ãã ãããã¹ããŒã«ãŒãã¹ã¿ãã äžåã¿ãªããŸã®ãåå ããåŸ ã¡ããŠãããŸãã
æ°æ©èœ â Amazon CloudWatch ããã·ã¥ããŒãã§ã® API ãš CloudFormation ã®ãµããŒã
åœç€Ÿã¯ãæ°å¹Žåã« CloudWatch ããã·ã¥ããŒãã®æäŸãéå§ããŸãããæäŸéå§ã«ããã£ãŠç§ãæžããæçš¿ã§ãéžæããã CloudWatch ã¡ããªã¯ã¹ãã°ã©ãã£ã«ã«åœ¢åŒã§è¡šç€ºããããã·ã¥ããŒããã€ã³ã¿ã©ã¯ãã£ãã«äœæããæ¹æ³ãã玹ä»ããŸãããæäŸéå§åŸã«ããã«ã¹ã¯ãªãŒã³ã¢ãŒããæãã¹ãã³ã®ããŒããY 軞ç¯å²ã®ã³ã³ãããŒã«ãåå倿Žã®ç°¡ç¥åãæ°žç¶çã¹ãã¬ãŒãžãæ°ããèŠèŠåãªãã·ã§ã³ãªã©ã®è¿œå ã®æ©èœãå°å ¥ããŸããã
æ°ãã API ããã³ CLI
ã³ã³ãœãŒã«ã®ãµããŒãã¯ã€ã³ã¿ã©ã¯ãã£ããªäœ¿çšã«ã¯éåžžã«åœ¹ç«ã¡ãŸãããå€ãã®ã客æ§ãããããã·ã¥ããŒããšãã®å
éšã®ãŠã£ãžã§ããã®ããã°ã©ã ã«ããäœæãšæäœã®ãµããŒããæ±ãã声ãå¯ããããŸãããããã·ã¥ããŒãã®åçãªæ§ç¯ãšç®¡çãããã³å¯Ÿå¿ãã AWS ãªãœãŒã¹ã®äœæãšåé€ã«å¿ãããŠã£ãžã§ããã®è¿œå ãšåé€ãæ±ãããŸããããã®ä»ã®ã客æ§ããã¯ã2 ã€ä»¥äžã® AWS ã¢ã«ãŠã³ãéã§äžè²«ããããã·ã¥ããŒãã®ã»ãããèšå®ã管çããæ©èœã®èŠæãå¯ããããŸããããããŠãCloudWatch ããã·ã¥ããŒãã® APIãCLIãAWS CloudFormation ã®ãµããŒãã®æäŸãéå§ãããä»ãããå©çšããã ããããã«ãªã£ãããšãããã«çºè¡šããããŸãã4 ã€ã®æ°ãã API 颿° (ããã³åçã® CLI ã³ãã³ã) ããããŸãã
ListDashboards / aws cloudwatch list-dashboards â ã¢ã«ãŠã³ãå
ã®ãã¹ãŠã®ããã·ã¥ããŒãã®ãªã¹ãããŸãã¯å
±éã®ãã¬ãã£ãã¯ã¹ãå
±æãããµãã»ãããååŸããŸãã
GetDashboard / aws cloudwatch get-dashboard â 1 ã€ã®ããã·ã¥ããŒãã®è©³çްãååŸããŸãã
PutDashboard / aws cloudwatch put-dashboard â æ°ããããã·ã¥ããŒããäœæããããæ¢åã®ããã·ã¥ããŒããæŽæ°ããŸãã
DeleteDashboards / aws cloudwatch delete-dashboards â 1 ã€ä»¥äžã®ããã·ã¥ããŒããåé€ããŸãã
ããã·ã¥ããŒãã®æŠå¿µ
ãããã®é¢æ°ãšã³ãã³ãã®äœ¿ç𿹿³ã説æããããšæããŸãã詳现ãªèª¬æã«ç§»ãåã«ãããã·ã¥ããŒãã®éèŠãªæŠå¿µãšå±æ§ã®ããã€ãã瀺ããŸãã
ã°ããŒãã« â ããã·ã¥ããŒã㯠AWS ã¢ã«ãŠã³ãã®äžéšã§ãããç¹å®ã® AWS ãªãŒãžã§ã³ãšã¯é¢é£ä»ããããŠããŸãããåã¢ã«ãŠã³ãã¯æå€§ 500 åã®ããã·ã¥ããŒããæã€ããšãã§ããŸããååãä»ãããã â åããã·ã¥ããŒãã«ã¯ãAWS ã¢ã«ãŠã³ãå
ã§äžæã®ååããããŸããååã®é·ãã¯æå€§ 255 æåã§ããã°ãªããã¢ãã« â åããã·ã¥ããŒãã¯ã»ã«ã®ã°ãªããã§æ§æãããŸããã°ãªããã¯å
šäœã§ 24 åã®ã»ã«ã§ãå¿
èŠãªã ãé«ãããããšãã§ããŸããããã·ã¥ããŒãã®åãŠã£ãžã§ããã¯ã°ãªãã座æšã®ç¹å®ã®ã»ããã«é
眮ãããæŽæ°å€ã®æ°ã®ã°ãªããã»ã«ã«ãŸããããµã€ãºã§ãããŠã£ãžã§ãã (èŠèŠå) â åãŠã£ãžã§ããã¯ãããã¹ããŸã㯠CloudWatch ã¡ããªã¯ã¹ã®ã»ããã衚瀺ã§ããŸããããã¹ã㯠Markdown ã䜿ã£ãŠæå®ãã1 ã€ã®å€ãæãç·ã°ã©ãããŸãã¯ç©ã¿äžãæ£ã°ã©ããšããŠè¡šç€ºã§ããŸããåããã·ã¥ããŒãã¯æå€§ 100 åã®ãŠã£ãžã§ãããæã€ããšãã§ããŸããã¡ããªã¯ã¹ã衚瀺ãããŠã£ãžã§ããã¯ãCloudWatch ã¢ã©ãŒã ãšé¢é£ä»ããããšãã§ããŸããããã·ã¥ããŒãã«ã¯ãã³ã³ãœãŒã«å
ãã衚瀺ããã³ç·šéã§ãã JSON 衚çŸããããŸãã[Actions] ã¡ãã¥ãŒãã¯ãªãã¯ããŠã[View/edit source] ãéžæããŸãã

ããã·ã¥ããŒãã®ãœãŒã¹ã¯ä»¥äžã®ãšããã§ãã

ãã® JSON ã¯ãå®éã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããéã®åèã«ããŠãã ãããã芧ã®ãšãããããã·ã¥ããŒãã®åãŠã£ãžã§ããã«å¯Ÿã㊠widgets é
åã«ãšã³ããªããããŸããåãšã³ããªã¯ãã¿ã€ããäœçœ®ããµã€ãºã§å§ãŸã 1 ã€ã®ãŠã£ãžã§ããã瀺ããŸãã
API ã䜿çšããããã·ã¥ããŒãã®äœæ
ç¹å®ã®ãªãŒãžã§ã³ã®å EC2 ã€ã³ã¹ã¿ã³ã¹ã«å¯ŸãããŠã£ãžã§ãããããããã·ã¥ããŒããäœæãããšããŸããPython ããã³ AWS SDK for Python ã䜿çšããŠã次ã®ããã«éå§ããŸã (ç§ã®ã³ãŒãã®æªçãã¯ã容赊ãã ãã)ã
次ã«ã€ã³ã¹ã¿ã³ã¹ãå埩åŠçããããããã«å¯Ÿã㊠widget ãã£ã¯ã·ã§ããªãäœæããããã widgets é
åã«è¿œå ããŸãã
äœçœ® (x ãš y) ãã«ãŒãå
ã§æŽæ°ããã°ãªãããäœæããŸã (äœçœ®ãæå®ããªãå ŽåããŠã£ãžã§ããã¯å·Šããå³ãžãäžããäžãžã¬ã€ã¢ãŠããããŸã)ã
ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ãåŠçããåŸã§ããŠã£ãžã§ããé åã® JSON ããŒãžã§ã³ãäœæããŸãã
ãããŠãããã·ã¥ããŒããäœæãŸãã¯æŽæ°ããŸãã
ã³ãŒããå®è¡ãããšã次ã®ããã·ã¥ããŒããäœæãããŸãã

CloudWatch ããŒã ã¯ãããã°ã©ã ã§äœæãããããã·ã¥ããŒãã«ã¯ããã¹ããŠã£ãžã§ãããå«ããããã·ã¥ããŒããèªåçæãããããšãšããã®æäœãå®è¡ãããœãŒã¹ã³ãŒããŸã㯠CloudFormation ãã³ãã¬ãŒããžã®ãªã³ã¯ãå«ããããšãæšå¥šããŠããŸããã€ãŸããããã·ã¥ããŒãã«å¯ŸããŠæåã®åž¯åå€ãã§ã³ãžã£ãŒãå®è¡ããªãããšãæšå¥šããŠããŸããåè¿°ããããã«ãåã¡ããªã¯ã¹ãŠã£ãžã§ãã㯠CloudWatch ã¢ã©ãŒã ãšé¢é£ä»ããããšãã§ããŸããã¢ã©ãŒã ã¯ãããã°ã©ã ã§äœæãããããµã³ãã« CPU 䜿çšçã¢ã©ãŒã ãªã©ã® CloudFormation ãã³ãã¬ãŒãã䜿çšããŠäœæã§ããŸãããããè¡ãããã«æ±ºå®ããå Žåãã¢ã©ãŒã ã®ãããå€ããŠã£ãžã§ããã«è¡šç€ºãããŸãããã®è©³çްã«ã€ããŠã¯ãTara Walker ã®æè¿ã®æçš¿ãAmazon CloudWatch Launches Alarms on Dashboardsããåç §ããŠãã ãããããã«äžæ©å ã«é²ãã§ãCloudWatch ã€ãã³ããš Lambda 颿°ã䜿ã£ãŠç¹å®ã®ãªãœãŒã¹ã®äœæãšåé€ã远跡ãã倿Žã«åãããŠããã·ã¥ããŒããæŽæ°ããããšãã§ããŸãããã®æ¹æ³ã«ã€ããŠã¯ããKeeping CloudWatch Dashboards up to Date Using AWS Lambdaããåç §ããŠãã ããã
CLI ã䜿çšããããã·ã¥ããŒããžã®ã¢ã¯ã»ã¹
ã³ãã³ãã©ã€ã³ããããã·ã¥ããŒãã«ã¢ã¯ã»ã¹ããŠæäœããããšãã§ããŸããããšãã°ãã·ã³ãã«ãªãªã¹ããçæã§ããŸãã
ãããŠãDisk-Metrics ããã·ã¥ããŒããåé€ã§ããŸãã
ããã·ã¥ããŒããå®çŸ©ãã JSON ãååŸããããšãã§ããŸãã

CloudFormation ã䜿çšããããã·ã¥ããŒãã®äœæ
ããã·ã¥ããŒãã¯ãCloudFormation ãã³ãã¬ãŒãã§æå®ããããšãã§ããŸããYAML 圢åŒã®ã·ã³ãã«ãªãã³ãã¬ãŒãã瀺ããŸã ( DashboardBody ãäŸç¶ãšã㊠JSON ã§æå®ãããŠããŸã)ã
ãã³ãã¬ãŒãããã¡ã€ã«ã«é 眮ããã³ã³ãœãŒã«ãŸã㯠CLI ã䜿çšããŠã¹ã¿ãã¯ãäœæããŸãã
ããã·ã¥ããŒããæ¬¡ã«ç€ºããŸãã

ãå©çšå¯èœ
ãã®æ©èœã¯ä»ããå©çšã§ããŸããæ¬æ¥ãã䜿ãå§ããããšãã§ããŸããããã·ã¥ããŒããããæå€§ 50 ã¡ããªã¯ã¹ãæã€ 3 ã€ã®ããã·ã¥ããŒããç¡æã§äœæã§ããŸãã远å ã®ããã·ã¥ããŒãã®æéã¯ãCloudWatch æé衚ããŒãžã«ç€ºãããã«ã1 ãæããã 3 USD ã§ããæ¯ææ°ãã API 颿°ã«å¯ŸããŠæå€§ 100 äžåã®åŒã³åºããç¡æã§å®è¡ã§ããŸãããããè¶
ããå Žåã®æéã¯ã1,000 åã®åŒã³åºãããšã« 0.01 USD ã§ãã
â Jeff;
AWS æéå€äžã â EC2 ã® SQL Server Standard Edition
AWS 㯠62 åç®ãšãªãå€äžããçºè¡šããããŸããä»åã®å¯Ÿè±¡ã¯ EC2 ã® Microsoft SQL Server Standard Edition ã§ããå€ãã®ãšã³ã¿ãŒãã©ã€ãºã¯ãŒã¯ããŒã (ç¹ã«ãªã³ãã¬ãã¹ãŸãã¯äŒæ¥ããŒã¿ã»ã³ã¿ãŒ) ã¯ãMicrosoft Windows ã§å®è¡ãããŠããŸãããã®ã°ããŒãã«ãªå±éããã³ããŒãããŒãšã³ã·ã¹ãã ã«ãã£ãŠæ¯ãããããµãŒãã¹ã®å¹ åºãã«ãããWindows ã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ããããã€ãã¹ã±ãŒã«ã管çã«ã¯ AWS ãæé©ãªå Žæã§ãããšèããŠããŸãã
AdobeãPitney BowesããããªãŒå€§åŠãšãã£ãã客æ§ã¯ããã¹ãŠäžæ žãšãªãå®çšŒå Windows Server ã¯ãŒã¯ããŒãã AWS ã«ç§»è¡æžã¿ã§ãããããã®ã客æ§ã®ã¢ããªã±ãŒã·ã§ã³ã¯ãSharePoint ãµã€ãããã«ã¹ã¿ã .NET ã¢ããªã±ãŒã·ã§ã³ã SAP ãŸã§åºç¯å²ã«å®è¡ããŠãããé »ç¹ã« SQL Server ã䜿çšããŠããŸããAWS ã® Microsoft SQL Server 㯠EC2 Windows ã€ã³ã¹ã¿ã³ã¹ã§å®è¡ãããã客æ§ã®ã¢ããªã±ãŒã·ã§ã³éçºããã³ç§»è¡ããµããŒãã§ããŸãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ããªã³ãã¬ãã¹ã§å®è¡ããŠããå Žåã®ããã«ããã¹ãŠã®èšå®ã管çã§ãã32 ãããããã³ 64 ãããããŒãžã§ã³ã®ãµããŒãããããŸããæ¬æ¥ãR4ãM4ãI3ãX1 ã€ã³ã¹ã¿ã³ã¹ã§å®è¡ããã EC2 äžã® Microsoft SQL Server Standard Edition ã®ãªã³ããã³ãããã³ãªã¶ãŒããã€ã³ã¹ã¿ã³ã¹ã®æéããã€ã³ã¹ã¿ã³ã¹ã¿ã€ãããµã€ãºããªãŒãžã§ã³ã«å¿ããŠæå€§ 52% å€äžãããŸãããšã³ã¿ãŒãã©ã€ãºèŠæš¡ã®ã¢ããªã±ãŒã·ã§ã³ãå€§èŠæš¡ã«ã¹ã±ãŒã©ãã«ãªãŠã§ããµã€ããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãã以åããã¯ããã«ã³ã¹ã广ã®é«ãæ¹æ³ã§æ§ç¯ããã³å®è¡ã§ããŸãããªãŒãžã§ã³ããã³ã€ã³ã¹ã¿ã³ã¹ã¿ã€ãããšã®æå€§ã®å€äžãçãæ¬¡ã«ç€ºããŸãã
| ãªãŒãžã§ã³ | R4 | M4 | I3 | X1 |
| US East (Northern Virginia) | -51% | -29% | -50% | -52% |
| US East (Ohio) | -51% | -29% | -50% | -52% |
| US West (Oregon) | -51% | -29% | -50% | -52% |
| US West (Northern California) | -51% | -30% | -50% | |
| Canada (Central) | -51% | -51% | -50% | -44% |
| South America (Brazil) | -49% | -30% | -48% | |
| Europe (Ireland) | -51% | -29% | -50% | -51% |
| Europe (Frankfurt) | -51% | -29% | -50% | -50% |
| Europe (London) | -51% | -51% | -50% | -44% |
| Asia Pacific (Singapore) | -51% | -31% | -50% | -50% |
| Asia Pacific (Sydney) | -51% | -30% | -50% | -50% |
| Asia Pacific (Tokyo) | -51% | -29% | -50% | -50% |
| Asia Pacific (Seoul) | -51% | -31% | -50% | -50% |
| Asia Pacific (Mumbai) | -51% | -33% | -50% | -50% |
ãªã³ããã³ãã€ã³ã¹ã¿ã³ã¹ã®å€äžããããæ°æéã¯ã2017 幎 7 æ 1 æ¥ã«æå¹ã«ãªããŸãããªã¶ãŒããã€ã³ã¹ã¿ã³ã¹ã®æ°æéã¯æ¬æ¥æå¹ã«ãªããŸãã
â Jeff;
EC2 Container Serviceã®Blue/Greenãããã€ã¡ã³ã
ãã®æçš¿ãšä»éããã³ãŒãã®äœæã«ã¯ãäžèš3åã«ããå€å€§ãªè²¢ç®ããããŸããã
![]() |
![]() |
![]() |
| Jeremy Cowan Solutions Architect |
Anuj Sharma DevOps Cloud Architect |
Peter Dalbhanjan Solutions Architect |
ã³ã³ããåãããŠããªããã©ãã£ã·ã§ãã«ãªç°å¢ã«ãœãããŠã§ã¢ã¢ããããŒããå±éããã®ã¯é£ããããªã¹ã¯ã䌎ããŸãããããã€ããã±ãŒãžãŸãã¯ã¹ã¯ãªãããèšè¿°ãããšãã¯ãã¿ãŒã²ãããã·ã³ãç¹å®ã®ç¶æ ã«ãããšä»®å®ããå¿ èŠããããŸããã¹ããŒãžã³ã°ç°å¢ãæ¬çªç°å¢ã®æ£ç¢ºãªãã©ãŒã€ã¡ãŒãžã§ãªãå Žåããããã€ã¯å€±æããå¯èœæ§ããããŸãããããã€ã倱æãããšãã¢ããªã±ãŒã·ã§ã³ã®æåŸã®æ£åžžãªããŒãžã§ã³ãåãããã€ãããŸã§ãµãŒãã¹åæ¢ãèµ·ããããšããããŸããããªããéçšç®¡çè ã ãšãããããµãŒãã¹åæ¢ããããšå€éã«èµ·ããŠããªããã°ãããªãã§ãããã
ãªãªãŒã¹å 容ã®å¯©æ»ãçµãããŸã§ãŠãŒã¶ãŒã«æ°ããããŒãžã§ã³ããããããšãªããæ¬çªç°å¢ã§ãã¹ãããããªããããšèããŠããã客æ§ãå¢ããŠããŸãã人ã«ãã£ãŠã¯ãæ°æ©èœãå€ãã®äººãã¡ã«å ¬éãããåã«å°æ°ã®é¡§å®¢ã«å¯ŸããŠã®ã¿å ¬éãããã£ãŒãããã¯ãéããããšãããã§ããããããã¯ãã«ããªã¢åæãŸãã¯ã«ããªã¢ãã¹ããšåŒã°ããææ³ã§ãããã®èšäºã§ã¯ãApplication Load Balancersãštarget groupsã䜿çšããŠBlue/Greenãšã«ããªã¢ãããã€ãå®è£ ãããã¿ãŒã³ã玹ä»ããŸãã
ããå®éã«ãã®ã¢ãããŒãã詊ãããå ŽåããªãŒãã³ãœãŒã¹ã®ã³ãŒããšAWS CloudFormationãã³ãã¬ãŒããecs-blue-green-deployment GitHubãªããžããªã«å
¬éããŠããŸãã
ãã®ã¯ãŒã¯ãããŒã§ã¯ããµãŒãã¹ãECSã¯ã©ã¹ã¿ã«ãããã€ããèªååãããCI / CDãã€ãã©ã€ã³ãæ§ç¯ãããã³ãŒãã®ææ°ããŒãžã§ã³ãæ¬çªç°å¢ã«ææ ŒããæºåãæŽã£ããã¿ãŒã²ããã°ã«ãŒããã¹ã¯ããããå¶åŸ¡ãããããã»ã¹ãæäŸãããŸããç°å¢ã¯3ã€ã®ã¹ãããã§ç°¡åã«èšå®ã§ããBlue/Greenã®ã¹ã¯ãããåäœããããšã確èªã§ããŸãããã²è©ŠããŠã¿ãŠãã£ãŒãããã¯ãéã£ãŠãã ããïŒ
Blue/Greenã®å©ç¹
Blue/Greenãããã€ã¡ã³ãã¯ããœãããŠã§ã¢æŽæ°ãäœãªã¹ã¯ã§ãããªãããšãã§ããã€ãã¥ãŒã¿ãã«ãããã€ã¡ã³ãã®ïŒã€ã®ãã¿ãŒã³ã§ããçŸåšã®å®è¡äžã® âBlueâããŒãžã§ã³ã®ã¢ããªã±ãŒã·ã§ã³ãšæ°ãã âGreenâããŒãžã§ã³ã®ã¢ããªã±ãŒã·ã§ã³ãå¥ã ã®ç°å¢ã§äœæããããšã§ããªã¹ã¯ã軜æžãããŸãã
ãã®ãããã€ã¡ã³ãæ¹æ³ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®çŸåšã®å®è¡äžã®ããŒãžã§ã³ã«åœ±é¿ãäžããã«ãGreenã®ç°å¢ã§æ©èœããã¹ãããããšãã§ããŸããGreenããŒãžã§ã³ãæ£åžžã«åäœããŠããããšã確èªã§ããããDNSã倿ŽããŠå€ãBlueç°å¢ããæ°ããç°å¢ã«ãã©ãã£ãã¯ãåŸã ã«ã«ãŒãã£ã³ã°ããããšãã§ããŸãããã®æ¹æ³ã«åŸãããšã§ãã»ãŒãŒãããŠã³ã¿ã€ã ã§æ©èœæŽæ°ãšããŒã«ããã¯ããããªãããšãã§ããŸãã
![]() |
2ã€ã®ç°ãªãç°å¢æã§ãã©ãã£ãã¯ãã·ããããå žåçãªBlue/Greenãããã€ã¡ã³ã |
ãã®ããã«éçšäžã®Blueç°å¢ã«çŽ æ©ããã©ãã£ãã¯ãæ»ãããšã§ããããšã¯ãBlue/Greenãããã€ã¡ã³ãã®äž»èŠã¡ãªããã®1ã€ã§ããBlue/Greenãããã€ã¡ã³ãã§ã¯ããããã€ã¡ã³ãããã»ã¹ã®ã©ã®ã¿ã€ãã³ã°ã§ãBlueç°å¢ã«ããŒã«ããã¯ããããšãå¯èœã§ããããŠã³ã¿ã€ã ã¯Greenç°å¢ã«åé¡ãããããšãèªèããŠãããBlueç°å¢ã«ãã©ãã£ãã¯ãåãæ»ããŸã§ã®æéã«å¶éãããŸããããã«ã忢ã®åœ±é¿ã¯ãã¹ãŠã®ãã©ãã£ãã¯ã§ã¯ãªããGreenç°å¢ã«æ¯ãåãããããã©ãã£ãã¯ã«éå®ãããŸãããããã€ãšã©ãŒã®èŠæš¡ãçž®å°ããããšãå šäœçãªãããã€ã®ãªã¹ã¯ãäœäžããŸãã
ã³ã³ããã§Blue/Greenãã·ã³ãã«ã«å®çŸãã
è€æ°ç°å¢ã®ç®¡çããã³ããããžã§ãã³ã°ã®è€éããšã³ã¹ãã®ããã«ãåŸæ¥ã®ãªã³ãã¬ãã¹ã§ã®ãœãããŠã§ã¢æŽæ°ã«ã¯Blue/Greenãããã€ã¡ã³ãã¯ããŸãå°å ¥ãããŠããŸããã§ããã代ããã«ãã¢ããªã±ãŒã·ã§ã³ã¯in-placeã§ã¢ããã°ã¬ãŒããããŠããŸããã
ãã®ã¢ãããŒãã¯æå¹ã§ããããé害æã®ããŒã«ããã¯ã®è¿ éæ§ãªã©ããã€ãã®æ¬ é¥ããããŸãããããŒã«ããã¯ã«ã¯éåžžã以åã®ããŒãžã§ã³ã®ã¢ããªã±ãŒã·ã§ã³ã®åãããã€ã¡ã³ãããããªã£ãŠããŸããããåãããã€ã¡ã³ãã¯è¯ããªããªãªãŒã¹ããã£ãå Žåã®åæ¢æéãé·æåãããå¯èœæ§ããããŸãã
ã³ã³ããã¯ãç°¡åã«ããã±ãŒãžåã§ããç°å¢éãç§»åããŠãäžè²«ããŠåäœãããããBlue/Greenãããã€ã¡ã³ãã®å°å ¥ã容æã«ããŸãããã®äžè²«æ§ã®ã²ãšã€ã®èŠå ã¯ãã³ã³ããã®ãã€äžå€æ§ã§ããã³ã³ããã®èšå®ã倿Žããã«ã¯ãIn-Placeã§ãœãããŠã§ã¢ãæŽæ°ããã®ã§ã¯ãªããDockerfileãæŽæ°ããŠã³ã³ãããåæ§ç¯ãåãããã€ããå¿ èŠããããŸãã
ã³ã³ããã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããã»ã¹ãšåå空éã®åé¢ãæäŸããŸããããã«ãããè€æ°ã®ããŒãžã§ã³ã®ã¢ããªã±ãŒã·ã§ã³ãåãDockerãã¹ãäžã§ç«¶åããããšãªã䞊è¡ããŠå®è¡ã§ããŸããä»®æ³ãã·ã³ã«æ¯ã¹ãŠãµã€ãºãå°ããããããã¹ããããã«VMã«æ¯ã¹ãŠå€ãã®ã³ã³ãããè©°ã蟌ãããšãã§ããŸããããã«ãããã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ãããå¹ççã«äœ¿çšã§ããããã«ãªããBlue/Greenãããã€ã¡ã³ãã®ã³ã¹ããåæžã§ããŸãã
Amazon ECSã®ãã«ãããŒãžãæŽæ°
Amazon EC2 Container Service (ECS) ã¯ãæ¢åã®Amazon ECSãµãŒãã¹ãæŽæ°ãããšãããŒãªã³ã°ã¢ããããŒããå®è¡ããŸããããŒãªã³ã°ã¢ããããŒãã§ã¯ãçŸåšå®è¡äžã®ããŒãžã§ã³ã®ã³ã³ãããææ°ããŒãžã§ã³ã«çœ®ãæããŸããããŒãªã³ã°ã¢ããããŒãäžã«Amazon ECSããµãŒãã¹ã«è¿œå ãŸãã¯åé€ããã³ã³ããã®æ°ã¯ããµãŒãã¹ã®ãããã€æã«èš±å¯ãããå¥å šãªã¿ã¹ã¯ã®æå°æ°ãšæå€§æ°ã調æŽããããšã«ãã£ãŠå¶åŸ¡ãããŸãã
ææ°ããŒãžã§ã³ã®ã³ã³ããã€ã¡ãŒãžãå©çšããããã«ãµãŒãã¹ã®ã¿ã¹ã¯å®çŸ©ãæŽæ°ãããšãAmazon ECSã«ãã£ãŠã³ã³ããã®å€ãããŒãžã§ã³ãèªåçã«ææ°ããŒãžã§ã³ã«çœ®ãæããããŸãããããã€ã¡ã³ãäžãAmazon ECSã¯çŸåšå®è¡äžã®ããŒãžã§ã³ããæ¥ç¶ãåæããæ°ããã³ã³ããããªã³ã©ã€ã³ã«ãªããšApplication Load Balancer ã«ç»é²ããŸãã
Target groups
ã¿ãŒã²ããã°ã«ãŒãã¯ãåãApplication Load Balancerã®èåŸã«è€æ°ã®ãµãŒãã¹ãå®è¡ã§ããããã«ããè«çæ§é ã§ããããã¯ãã¿ãŒã²ããã°ã«ãŒãããšã«ãªã¹ããŒãæã€ããšã§å®çŸãããŠããŸãã
Application Load Balancerãåã«çœ®ãECSãµãŒãã¹ãäœæããæã¯ããµãŒãã¹ã®ã¿ãŒã²ããã°ã«ãŒããæå®ããå¿ èŠããããŸããéåžžã¯ECSãµãŒãã¹ããšã«ã¿ãŒã²ããã°ã«ãŒããäœæããŸãããããã§ã玹ä»ããã¢ãããŒãã§ã¯ãBlueã®ãµãŒãã¹ãšGreenã®ãµãŒãã¹ã®2ã€ã®ã¿ãŒã²ããã°ã«ãŒããäœæããŸããBlueãµãŒãã¹ãšåããã¹ã䜿çšããŠGreenãµãŒãã¹ããã¹ãã§ããããã«ãã¿ãŒã²ããã°ã«ãŒãããšã«ç°ãªããªã¹ããŒããŒãã䜿çšããŠããŸãã
ãã®æ§æã§ã¯ãGreenãµãŒãã¹ã«åãæ¿ããæºåãæŽããŸã§ãäž¡æ¹ã®ç°å¢ã䞊è¡ããŠå®è¡ã§ããŸããã»ãã¥ãªãã£ã°ã«ãŒãã«ãŒã«ãé 眮å¶çŽã䜿çšããŠã瀟å ãããã¯ãŒã¯äžã®ãã¹ã¿ãŒããã«ã®ã¿GreenããŒãžã§ã³ãžã®ã¢ã¯ã»ã¹ãå¶éããããšãå¯èœã§ããããšãã°ããµãŒãã¹ã®GreenããŒãžã§ã³ããäŒæ¥ãããã¯ãŒã¯ããã¢ã¯ã»ã¹å¯èœãªã€ã³ã¹ã¿ã³ã¹ã§ã®ã¿å®è¡ããããã«èšå®ããããšãã§ããŸãã
åãæ¿ã
å€ãBlueãµãŒãã¹ãæ°ããGreenãµãŒãã¹ã«çœ®ãæããæºåãã§ããããModifyListener APIãåŒã³åºããŠã察象ã®ã¿ãŒã²ããã°ã«ãŒãã®ãªã¹ããŒã«ãŒã«ãå ¥ãæ¿ããŸãã倿Žã¯å³åº§ã«åæ ãããŸãããã®åŸãGreenãµãŒãã¹ã¯ããŒã80ã®ãªã¹ããŒã䜿çšããŠã¿ãŒã²ããã°ã«ãŒãã§å®è¡ãããGreenãµãŒãã¹ã¯ããŒã8080ã®ãªã¹ããŒã䜿çšããŠã¿ãŒã²ããã°ã«ãŒãã§å®è¡ãããŠããŸããäžã®å³ã¯ããã®ã¢ãããŒãã瀺ããŠããŸãã
ã·ããªãª
2ã€ã®ãµãŒãã¹ãå®çŸ©ãããŠãããããããã®ã¿ãŒã²ããã°ã«ãŒããåãApplication Load Balancerã«ç»é²ãããç°ãªãããŒãã§åŸ æ©ããŠããŸãã 2ã€ã®ã¿ãŒã²ããã°ã«ãŒãéã§ãªã¹ããŒã«ãŒã«ãå ¥ãæ¿ããããšã§ãããã€ãå®äºããŸãã

BlueãµãŒãã¹ãžã®ãªã¯ãšã¹ãã¯ããŒã80ãªã¹ããŒãæã€ã¿ãŒã²ããã°ã«ãŒãã«åããããGreenãµãŒãã¹ãžã®ãªã¯ãšã¹ãã¯ããŒã8080ãªã¹ããŒãæã€ã¿ãŒã²ããã°ã«ãŒãã«åããããŠããŸãã
ãã¹ãã®åŸã§ãApplication Load Balancerã§ãªã¹ããŒã«ãŒã«ãã¹ã¯ããããGreenãµãŒãã¹ã«ãã©ãã£ãã¯ãéä¿¡ããããšã§ããããã€ã¡ã³ããå®äºããŸãã

çæäºé
ãã®ã¢ãããŒãã䜿çšããéã«æ³šæãã¹ããã€ã³ããããã€ããããŸãã
- ã¢ããªã±ãŒã·ã§ã³ã³ãŒããå®å šã«ã¹ããŒãã¬ã¹ã§ããå¿ èŠããããŸããã¹ããŒãæ å ±ã¯ã³ã³ããã®å€éšã«æ ŒçŽããŠãã ããã
- ã³ãã¯ã·ã§ã³ãã¬ã€ãã³ã°ã¯ã°ã¬ãŒã¹ãã«ã«ã¯å®è¡ãããŸãããã¿ãŒã²ããã°ã«ãŒãã®ã¹ã¯ããã¯çªç¶å®è¡ãããŸãããã®ãããå®è¡æéãé·ããã©ã³ã¶ã¯ã·ã§ã³ããããµãŒãã¹ã®å Žåã¯æ³šæãå¿ èŠã§ãã
- ã«ããªã¢ãããã€ã¡ã³ãã¯å®è¡ã§ããŸããããã®æ¹æ³ã§ã¯ããµãŒãã¹ã®ç°ãªãããŒãžã§ã³éããã°ããåãæ¿ããããšãã§ããŸãããæ¬çªãã©ãã£ãã¯ã®äžéšãã«ããªã¢ã«æµãããããµãŒãã¹ãã¯ã©ã¹ã¿å šäœã«å±éãããé床ãå¶åŸ¡ãããããããšã¯ã§ããŸããã
ã«ããªã¢ãã¹ã
æšæºã®Amazon ECSãããã€ã䜿çšãããããã€ã¡ã³ãæ¹æ³ã§ã¯ãããŒãªã³ã°ãããã€ã¡ã³ãã«äŒŽãéåŽåã®å€ããèªååãããŸãããåé¡ãçºèŠããå Žåã«ãããã€ã¡ã³ããéäžã§äžæããããšã¯ã§ããŸãããããŒã«ããã¯ãããå Žåã¯ãæåŸã®æ£åžžãªã³ã³ããããŒãžã§ã³ã«ãµãŒãã¹ã®ã¿ã¹ã¯å®çŸ©ãæŽæ°ããAmazon ECSãã¯ã©ã¹ã¿å šäœã«ãããã€ãå®è¡ããã®ãåŸ ã€å¿ èŠããããŸããææ°ã®ããŒãžã§ã³ã§ãã¹ãäžã«çºèŠãããªãã£ãåé¡ã®ãã倿Žãå°å ¥ãããŠããŸã£ãå Žåããã®ããŒã«ããã¯æ¹æ³ã§ã¯é ãããå¯èœæ§ããããŸãã
ã«ããªã¢ãã¹ãã§ã¯ãGreenç°å¢ãæåŸ ã©ããã«åäœããŠããªãããšãããã£ãå ŽåãBlueç°å¢ã«åœ±é¿ã¯ãããŸããããã©ãã£ãã¯ãå ã®ç°å¢ã«æ»ãããšãã§ãããããåé¡ã®ããæäœãããŠã³ã¿ã€ã ãæå°éã«æãã圱é¿ç¯å²ãå¶éããŸãã
ãã®ã¿ã€ãã®ãããã€ã¡ã³ãã¯ãäžéšåã®ãŠãŒã¶ãŒã«æ°ããæ©èœãå ¬éããŠåºãå©çšã§ããããã«ããåã«ãã£ãŒãããã¯ãåŸãA/Bãã¹ãã«ç¹ã«åœ¹ç«ã¡ãŸãã
ã«ããªã¢ã¹ã¿ã€ã«ã®ãããã€ã¡ã³ãã§ã¯ãåãã¿ãŒã²ããã°ã«ãŒãã«BlueãµãŒãã¹ãšGreenãµãŒãã¹ãé åããŸãããã®æ¹æ³ã¯ã¹ã¯ããæ¹åŒã»ã©é«éã§ã¯ãããŸããããåãµãŒãã¹ã®ã¿ã¹ã¯æ°ã調æŽããããšã§ãã³ã³ããã®äº€æã¬ãŒããå¶åŸ¡ããããšãã§ããŸããããã«ãBlueãšGreenã®ãµãŒãã¹ã®ã¿ã¹ã¯æ°ããããã調æŽããããšã§ããŒã«ããã¯ããããšãã§ããŸããäžèšã®ã¹ã¯ããã¢ãããŒããšã¯ç°ãªããã³ã³ãããžã®æ¥ç¶ã¯ã°ã¬ãŒã¹ãã«ã«çµäºããŸããæã ã¯Amazon ECSã®ã«ããªã¢ã¹ã¿ã€ã«ã®ãããã€ã¡ã³ãã«ã€ããŠã®ããã°ãæçš¿ããèšç»ãç«ãŠãŠããŸãã
ãŸãšã
AWSã§ã¯ãAmazon ECSãApplication Load Balancerãããã³ã¿ãŒã²ããã°ã«ãŒãã䜿çšããŠãBlue/Greenãããã€ã¡ã³ãã®æäœãå¯èœã«ãªããŸãã ecs-blue-green-deployment GitHubãªããžããªã«å ¬éãããŠããã³ãŒããã客æ§ã®ãŠãŒã¹ã±ãŒã¹ã«åãããŠã«ã¹ã¿ãã€ãºããããšããå§ãããŸãã
ãã詳现ã«èå³ãããå Žåã Blue/Green Deployments on AWSããã³Practicing Continuous Integration and Continuous Delivery on AWSãšãããã¯ã€ãããŒããŒããèªã¿ãã ããã ã質åããææ¡ããããŸãããããã²ãæèŠããå¯ããã ãããããªãã®ãã£ãŒãããã¯ã楜ãã¿ã«ããŠããŸãã
(翻蚳ã¯SAåèãæ åœããŸãããåæã¯ãã¡ã)
AWS SDK for Java 2.0 éçºè åããã¬ãã¥ãŒãå ¬é
AWS éçºè çšããŒã«ã®ããŒã 㯠AWS SDK for Java ã®ãªãªãŒã¹ã«åããŠç±å¿ã«åãçµãã§ããŸããããããŠæ¬æ¥ãããŒãžã§ã³ 2.0 ã®éçºè çšãã¬ãã¥ãŒãå ¬éããã«è³ããŸããããã®ããŒãžã§ã³ã¯éå»ã«ãªãªãŒã¹ãã 1.11.x codebase ã倧ããæžãæãããã®ã§ããæŽåæ§ãã€ãã¥ãŒã¿ããªãã£ã䜿ãåæã®è¯ãã«èŠç¹ãåã㊠Java 8 ã®äžã«æ§ç¯ããŸããã
æ°ãã SDK ã«ã¯ããã³ããããã³ã°ã® I/O ã®ãµããŒããã©ã³ã¿ã€ã ã§äœ¿çšããã HTTP å®è£
ãéžæã§ãããªã©ããªã¯ãšã¹ããå€ãã£ãæ©èœãå«ãã§ããŸããæ°ãããã³ããããã³ã° I/O ãµããŒãã¯æ¢åã®ãã®ã«æ¯ã¹ããå¹ççã§ããµãŒãã¹ã¯ã©ã€ã¢ã³ãã® Async ããªã¢ã³ãã®ã¹ã¬ããããŒã¹å®è£
ãåãå
¥ããŠããŸãããã³ããããã³ã°ã®ãªã¯ãšã¹ãã¯ãããã CompletableFuture ãªããžã§ã¯ããæ»ããŸããããŒãžã§ã³ 2.0 SDK ã§ã¯ããããŸã§ã® API ã«ããã€ãã®å€æŽã远å ããŠããŸããããšãã°ãæ¢åã®ã¯ã©ã€ã¢ã³ãã®ã³ã³ã¹ãã©ã¯ã¿ãšå€æŽå¯èœãªã¡ãœããããã¯ã©ã€ã¢ã³ããã«ããŒãšå€æŽäžå¯èœãªã¯ã©ã€ã¢ã³ããããŒã¹ã«ããéåæã¢ãã«ãšçœ®æããŸãããŸããSDK ã¯ãªãŒãžã§ã³ãã·ã³ã°ã«ãªãŒãžã§ã³ã¯ã©ã¹ã«ããããã«äœ¿çšããã¯ã©ã¹ã®ç°çš®ã³ã¬ã¯ã·ã§ã³ãæãããã¿ãã¹ããªãŒãã³ã°çš API ã®æ°ããã»ãããæäŸããŸããSDK 㯠GitHub ã§ãå©çšããã ããŸããGitHub ã«é¢ããåé¡ãã¹ã¿ãŒãããŠå
¬éãã£ãŒãããã¯ãéä¿¡ãããããã€ãã®æ¹æ³ã§ãªã¯ãšã¹ãã®ãã«ãéä¿¡ããããšãã§ããŸãã
SDK ã®è©³çްã«ã€ããŠã¯ AWS éçºè ããã°ã®ãAWS SDK for Java 2.0 â éçºè çšãã¬ãã¥ãŒ (AWS SDK for Java 2.0 â Developer Preview)ããã芧ãã ããã
â Jeff;
AWS Summit Tokyo 2017ã§ã®Amazon EC2 Container Service (ECS) é¢é£ã»ãã·ã§ã³ãŸãšã
5ææ«ã6æé ã«éå¬ãããAWS Summit Tokyo 2017ã«ãããŠãAmazon ECSãå®éã«ãå©çšé ããŠããã客æ§ããã®å°å ¥äºäŸã»ãã·ã§ã³ãšAWSããã®Techã»ãã·ã§ã³ãåããããšããªããš11ãã®Amazon ECSé¢é£ã»ãã·ã§ã³ãè¡ãããŸãããSummitå šäœã§130以äžã®ã»ãã·ã§ã³ããããŸããã®ã§ããã®äžã§10%çšåºŠãAmazon ECSé¢é£ã ã£ããšããããšã«ãªããŸããAmazon ECSã¯ã2015幎4æã«GA(æ±äº¬ãªãŒãžã§ã³å«ã)ããŠä»¥æ¥ãçå®ã«ã客æ§ã«å°å ¥ãé ããã¹ã¿ãŒãã¢ãããããšã³ã¿ãŒãã©ã€ãºãŸã§ãæ°èŠã·ã¹ãã ã ãã§ãªããªã³ãã¬ããã®ç§»è¡ã§ãå©çšãããæšæºçãªãµãŒãã¹ãšãªã£ãŠããããšã®è¡šãããšæããŸãã
ãã®æçš¿ã§ã¯ããããã®ã»ãã·ã§ã³ãäžæ°ã«èŠè¿ããæ§ã«æ å ±ãéçŽããŠãå±ãããããšæããŸãããããã®æ å ±ãã芧ã«ãªã£ãŠãAmazon ECSã®å©çšããã²ãæ€èšäžãããŸãã
å°å ¥äºäŸãã©ãã¯
- ããã¿ã€ã ãµãŒãã¹ã«ããããAmazon ECS ãæŽ»çšããã·ã¹ãã ç§»è¡ãïœã乿NAVITIMEãã§ã®ç§»è¡äºäŸ ïœ è³æ
- [ãªã³ãŒ] ãµãŒãã¹å šæã¯ãã¡ããŒãã¿ã€ãéåããªããã¬ãäŒè°ã·ã¹ãã ãç®æã㊠ãAWS ãæå€§é掻çšããŠå¯çšæ§ãé«ããç§çã è³æ åç»
- ã¯ãã¯ãããã®æ©æ¢°åŠç¿ãæ¯ããåºç€ã®ã€ãããã è³æ åç»
- Amazon ECS ãš SpotFleet ãæŽ»çšããäœã³ã¹ãã§ã¹ã±ãŒã©ãã«ãªãžã§ãã¯ãŒã«ãŒã·ã¹ãã (â»æ ªåŒäŒç€Ÿã€ã³ãã£ã¡ãŒãã»ããŒãžã£ãŒæ§äºäŸ) è³æ åç»
- [Intelligence] ãªã³ãã¬ããç§»è¡ããã®ã§ãAmazon ECS ã§ã³ã³ããåãš Terraform ã§ã€ã³ãã©ã³ãŒãåãã話 è³æ
- DAU 100 äžäººçªç ŽïŒ æ¥æé·ãæ¯ãã Shadowverse ã®ã€ã³ãã©æè¡ è³æ
- DMM ã«ãããäŒå¡åºç€ãã©ãããã©ãŒã ãžã®AWSå°å ¥ããæŽ»çšäºäŸã®çŽ¹ä» è³æ åç»
- [ABEJA] IoT / Bigdata / AI æä»£ã«ãããã¹ã±ãŒã©ãã«ãª Deep Learning å®è¡åºç€ãšå¿çš åç»
- Amazon ECS ã®é²åãDevOps ãš Microservices ã®å®è·µ (â»ãã©ãŒæ ªåŒäŒç€Ÿæ§äºäŸ) åç»
- [CyberZ] OPENREC.tvã«ãããã©ã€ãåç»ããã³ã¡ãã»ãŒãžé ä¿¡åºç€ã®ãªãã¬ãŒã¹å šè² è³æ åç»
AWS Techãã©ãã¯
- AWS ã®ã³ã³ãã管çå ¥éïŒAmazon EC2 Container ServiceïŒè³æ åç»
- C# éçºè å¿ èŠãDocker ã³ã³ãããžã®ç¶ç¶çãããã€ã¡ã³ã on AWS ïœCodeCommit, CodeBuild, CodePipeline, CloudFormation, ECR, ECS ãæŽ»çšãã CI/CD ïœ è³æ åç»
ãã®ä»
- Running Container-Enabled Microservices on AWS â ããŒããã£ã³ã (ç¹å¥æåãã¬ãŒãã³ã°)
- 5æéã§ãã³ã³ãã察å¿ã®ã¢ããªã±ãŒã·ã§ã³ã®ç®¡çããã³ã¹ã±ãŒãªã³ã°ã«ã€ããŠè©³çްãã€å®è·µã«èª¬æããããšãã¹ããŒãã¬ãã«ã®ãã¬ãŒãã³ã°ããŒããã£ã³ãã宿œããŸããã
æåŸã«ãçŽè¿ã®Amazon ECSã®ã¢ããããŒãããŸãšããŠã玹ä»ããŸãã
- 6/6 ECSã³ã³ãœãŒã«ããSpol Fleetãäœæã§ããããã«ãªããŸãã
- 6/7 Amazon CloudWatch Eventsãã宿çãã€ãã³ãé§åã§ã¿ã¹ã¯ãã¹ã±ãžã¥ãŒã«ã§ããããã«ãªããŸãã
- 6/15 ECS-optimized AMIãæŽæ°ãããDocker 17.03.1-ceãAmazon Linux 2017.03å©çšã®AMIãåºãŸãã
Amazon ECSã«ã€ããŠãã詳ããåŠã³ããæ¹ã¯ãæ¥æ¬èªåãããããã¥ã¡ã³ããAWS Black Belt Online Seminarã®è³æçãã確èªäžããã
SA岩氞
Amazon Redshift Spectrum 10 ã®ãã¹ããã©ã¯ãã£ã¹
Amazon Redshift Spectrum ã䜿ãããšã§ãAmazon S3 ã«çœ®ãããããŒã¿ã«å¯Ÿã㊠Amazon Redshift ã® SQL ã¯ãšãªãèµ°ãããããšãã§ããŸããã€ãŸã Redshift Spectrum ã«ãã£ãŠãããŒã¿ãŠã§ã¢ããŠã¹ã®ããŒã«ã«ãã£ã¹ã¯å ã«ä¿åãããããŒã¿ä»¥å€ã«å¯ŸããŠããRedshift ã®åæãæ¡åŒµã§ããããã«ãªãã®ã§ããS3 ã® âããŒã¿ã¬ã€ã¯â ã«è²¯ãŸã£ã倧éã®ããŒã¿ã«å¯ŸããŠãé¢åã§æéã®ãããæœåºã»å€æã»ããŒãïŒETLïŒåŠçãè¡ãããšãªããã¯ãšãªãæããããšãã§ããŸããRedshift Spectrum ã¯æŽç·Žãããã¯ãšãªæé©åãçšããŠãæ°åãã®ããŒãã«ãŸã§ã¹ã±ãŒã«ããŠé«éã«åŠçãè¡ããŸãã
ãã®ããã°ãã¹ãã§ã¯ãRedshift Spectrum ã® 10 ã®éèŠãªãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠãããã€ãã®ã«ããŽãªã«ãããŠã玹ä»ããŸãã
ãã®ã¬ã€ãã©ã€ã³ã¯ãRedshift ãã䜿ãã®ã客ããŸãšã®å€ãã®ãããšãããçŽæ¥çãªãããžã§ã¯ãã«åºã¥ããŠäœãããŠããŸãã
Amazon Redshift vs. Amazon Athena
AWS ã®ã客ããŸã¯ãç§ãã¡ã«ãããAmazon Athena ãš Amazon Redshift Spectrum ã«ã€ããŠãã©ã䜿ãåããããã°ããã®ã§ããããïŒããšå°ããŸãã
Amazon Athena ã®å©çšã·ãŒã³
Athena 㯠S3 ã«çœ®ãããããŒã¿ã«å¯ŸããŠãSQL ã«ããã€ã³ã¿ã©ã¯ãã£ããªã¢ãããã¯ã¯ãšãªãæãããšãã£ããŠãŒã¹ã±ãŒã¹ã«åããŠããŸããAthena ã¯ãµãŒããŒã¬ã¹ã¢ãŒããã¯ãã£ãªã®ã§ãã¯ãšãªãæããããã«ã¯ã©ã¹ã¿ãç«ã¡äžããå¿ èŠã¯ãããŸãããã¯ãšãªããšã«ã¹ãã£ã³ãã S3 ã®ããŒã¿éã«åºã¥ããŠæéãçºçããŸããããŒã¿ãå§çž®ãããŒãã£ã·ã§ãã³ã°ããŸãã¯åæåãã©ãŒãããã«å€æããããšã«ãããè²»çšãç¯çŽãã€ã€åªããããã©ãŒãã³ã¹ãåŸãããšãã§ããŸããJDBC ã«å¯Ÿå¿ããŠãããã¹ãŠã® BI ããŒã«ã SQL ã¯ã©ã€ã¢ã³ããã Athena ãå©çšããããšãã§ããŸããããã«ç°¡åãªå¯èŠåã§ããã° Amazon QuickSight ãå©çšããããšãã§ããŸãã
Amazon Redshift ã®å©çšã·ãŒã³
å€§èŠæš¡ãªæ§é åããŒã¿ã«å¯ŸããŠã¯ãRedshift ã®äœ¿çšãããããããŸããRedshift Spectrum ã«ãããããŒã¿ã貯ããå ŽæãããŒã¿ã®ãã©ãŒãããããããŠæŒç®èœåãããæè»ã«æŽ»çšããããšãã§ããŸããRedshift Spectrum ã䜿ãããšã§ãRedshift ã¯ã©ã¹ã¿ãŒã®ã¹ã±ãŒãªã³ã°ã«ã€ããŠæ©ãå¿ èŠã¯ãªããªããŸããã¹ãã¬ãŒãžãšã³ã³ãã¥ãŒããåé¢ãããããããç¬ç«ããŠæ¡åŒµããããšãã§ããããã«ãªããŸããåã S3 ããŒã¿ã¬ã€ã¯ã«å¯ŸããŠè€æ°ã® Redshift ã¯ã©ã¹ã¿ãŒãç«ã¡äžããããšã§ãã¯ãšãªã®åæå®è¡æ°ãå¢ããããšãã§ããŸããRedshift Spectrum ã¯æ°åã€ã³ã¹ã¿ã³ã¹ã«ãŸã§ãèªåçã«æ¡åŒµããŸãããã®ãããã©ãã€ãããã¿ãã€ããããŠããšã¯ãµãã€ãã®ããŒã¿ã«å¯ŸããŠããããã¯ãšãªã¯é«éã«åäœããŸãã
ãã¹ãç°å¢ã®æ§ç¯
Redshift Spectrum ãå©çšããããã®åææ¡ä»¶ããéå§ãŸã§ã®ã¹ãããã«ã€ããŠã¯ãAmazon Redshift Spectrum ã®éå§æ¹æ³ãã芧ãã ããã
ãã®ããã°ãã¹ãã§ã玹ä»ãããã¹ããã©ã¯ãã£ã¹ãæ€èšŒããã«ããã£ãŠãã©ã®ãããªããŒã¿ã§ãã䜿ãã«ãªãããšãã§ããŸãããã ã²ãšã€å€§äºãªèŠä»¶ãšããŠãäžçªå€§ããªããŒãã«ã«ã€ããŠãåãããŒã¿ã 3 ã€ã®ãã©ãŒãããïŒCSVãããŒãã£ã·ã§ã³åããããŠããªã Parquet ãã©ãŒããããããŒãã£ã·ã§ã³åãããã Parquet ãã©ãŒãããïŒã«å€æã㊠S3 ã«ãã¡ã€ã«ãšããŠããå¿ èŠããããŸããã©ã®ããã«ãã¡ã€ã«ãã©ãŒãããã倿ãããã«ã€ããŠã¯ããã®ããã°ãã¹ãã®ç¯å²å€ãšãªããŸãã®ã§ã以äžã®ãªãœãŒã¹ãåç §ããŠãã ããã
å€éšã¹ããŒãã®äœæ
ã¡ã¿ããŒã¿ã¹ãã¢ãšããŠãAthena ã®ããŒã¿ã«ã¿ãã°ã䜿ãã以äžã«ç€ºãããã« âSpectrumâ ãšããååã®å€éšã¹ããŒããäœæããŸãã
Redshift ã¯ã©ã¹ã¿ãŒãš S3 äžã®ããŒã¿ãã¡ã€ã«ã¯åã AWS ãªãŒãžã§ã³ã«çœ®ãããŠããªããã°ãããŸããããŸã Redshift ã¯ã©ã¹ã¿ãŒã«ãAthena ã®ããŒã¿ã«ã¿ãã°ãš S3 äžã®ãã¡ã€ã«ã«å¯Ÿããã¢ã¯ã»ã¹æš©ãäžããå¿ èŠããããŸããã¯ã©ã¹ã¿ãŒã«å¯ŸããŠãé©å㪠IAM ããŒã«ïŒäŸãã° aod-redshift-roleïŒãã¢ã¿ããããŸããããè©³çŽ°ãªæ å ±ã¯ãã¹ããã 1. Amazon Redshift çšã® IAM ããŒã«ãäœæãããåç §ããŠãã ããã
å€éšããŒãã«ã®å®çŸ©
äŸãã°ãããŒãã£ã·ã§ã³åãããã parquet ãã¡ã€ã«ã CSV ãã¡ã€ã«ã® Redshift Spectrum å€éšããŒãã«ã¯ã以äžã®ããã«å®çŸ©ãããŸãã
Redshift ã¯ã©ã¹ã¿ãŒãš S3 äžã®ããŒã¿ãã¡ã€ã«ã¯åã AWS ãªãŒãžã§ã³ã«çœ®ãããŠããªããã°ãããŸããããŸã Redshift ã¯ã©ã¹ã¿ãŒã«ãAthena ã®ããŒã¿ã«ã¿ãã°ãš S3 äžã®ãã¡ã€ã«ã«å¯Ÿããã¢ã¯ã»ã¹æš©ãäžããå¿ èŠããããŸããã¯ã©ã¹ã¿ãŒã«å¯ŸããŠãé©å㪠IAM ããŒã«ïŒäŸãã° aod-redshift-roleïŒãã¢ã¿ããããŸããããè©³çŽ°ãªæ å ±ã¯ãã¹ããã 1. Amazon Redshift çšã® IAM ããŒã«ãäœæãããåç §ããŠãã ããã
ã¯ãšãªã®å®è¡
ã€ãŸã Redshift Spectrum ã¯ãS3 ã«çœ®ãããããŒã¿ã«ã¯ãšãªãæããããã«ãå€éšããŒãã«ãçšããŸããRedshift ããŒãã«ãšåæ§ã«ã SELECT æã§å€éšããŒãã«ã«ã¯ãšãªãæããããŸããå€éšããŒãã«ã¯èªã¿èŸŒã¿å°çšã§ãããæžã蟌ãããšã¯ã§ããŸããã
ãŸããAthena ãïŒAmazon EMR ãªã©ã®ïŒApache Hive ã¡ã¿ã¹ãã¢ã«æ§ç¯ãããŠããããŒã¿ã«ã¿ãã°ãåç §ããããã«ãRedshift Spectrum ã§å€éšã¹ããŒããäœæããŸããç¶ããŠå€éšã¹ããŒãã«å¯ŸããŠå€éšããŒãã«ãäœæããŸããRedshift å ã«ããŒãã«ãäœæã»ããŒãããªãããã«ããããã«ãå€éšããŒãã«ã«å¯Ÿã㊠SELECT æãçºè¡ããéã«ã¯ã å¿ ã âå€éšã¹ããŒã.å€éšããŒãã«â ãšèšè¿°ããå¿ èŠããããŸãã
å€éšã¹ããŒãã¯ãå€éšã®ããŒã¿ã«ã¿ãã°ãåç §ããŸãããã®ãã Redshift ã¯ã©ã¹ã¿ãŒã«å¯ŸããŠãIAM ã«ãã£ãŠ S3 ãš Athena ãžã®ã¢ã¯ã»ã¹æš©ãä»äžããå¿ èŠããããŸãã
Redshift Spectrum ã®ãã¹ããå§ããã«ããã£ãŠã¯ããŸã以äžã®ã¯ãšãªãå®è¡ãããšããã§ãããã
QUERY 1:
ãã®ã¯ãšãªã¯ 1 ã€ã®ããŒãã«ã ãã«ã¢ã¯ã»ã¹ããŠãããRedshift Spectrum å±€ã«ãã£ãŠè¿œå ãããã³ã³ãã¥ãŒãã£ã³ã°ã掻çšã§ããŸãã
QUERY 2:
ãã®ã¯ãšãªã¯ 3 ã€ã®ããŒãã«ãçµåããŠãããRedshift Spectrum ãšçŽ ã® Redshift ã®ããã©ãŒãã³ã¹ãæ¯èŒããã®ã«åããŠããŸãã
äžŠè¡æ§ã«é¢ãããã¹ããã©ã¯ãã£ã¹
ãããã®ãããããã©ã¯ãã£ã¹ã¯ãRedshift Spectrum ã«ãã䞊è¡ã¯ãŒã¯ããŒãã®ããã©ãŒãã³ã¹ãæé©åããã®ã«åœ¹ç«ã¡ãŸãã
1. Amazon Redshift Spectrum ãã¹ãã£ã³ã€ã³ãã³ã·ããªäžŠè¡ã¯ãŒã¯ããŒãæ¹åã«æŽ»çšãã
Redshift Spectrum ã¯ãå©çšããŠãã Redshift ã¯ã©ã¹ã¿ãŒãšã¯ç¬ç«ããå°çšã®ãµãŒããŒçŸ€ã«ãããŸãããã£ã«ã¿ãŒåŠçãéçŽåŠçãšãã£ããå€ãã®ã³ã³ãã¥ãŒãã€ã³ãã³ã·ããªåŠçã Redshift Spectrum å±€ã§è¡ãããšã§ãã¯ãšãªã䜿çšãã Redshift ã¯ã©ã¹ã¿ãŒã®åŠçãã£ãã·ãã£ã¯å€§ããåæžãããŸããå ã㊠Amazon Redshift Spectrum ã¯è³¢ãã¹ã±ãŒã«ããŸããMPPïŒMassively Parallel ProcessingïŒã®å©ç¹ã掻ããããã«ãRedshift Spectrum ã¯ã¯ãšãªã§å¿ èŠãªéã«å¿ããŠãæå€§æ°åã®ã€ã³ã¹ã¿ã³ã¹ã§åŠçãè¡ããŸãã
ã¹ãã£ã³ãéçŽã€ã³ãã³ã·ããªã¯ãŒã¯ããŒãã䞊è¡ã§å®è¡ãããããªãŠãŒã¹ã±ãŒã¹ã§ã¯ãå¹³åç㪠Redshift Spectrum ã®ããã©ãŒãã³ã¹ã¯ãçŽ ã® Redshift ãäžåããŸãã
MPP ã·ã¹ãã ã§æããªãœãŒã¹ã€ã³ãã³ã·ããªåŠçã¯ãããŒã¿ããŒãã®ããã»ã¹ã§ããããã¯ã¢ã¯ãã£ããªåæã¯ãšãªã«ãã£ãŠãã³ã³ãã¥ãŒããªãœãŒã¹ã ãã§ãªããMVCCïŒMulti Version Concurrency ControlïŒã«ããããŒãã«ããã¯ã«ããç«¶åãåŒãèµ·ããããããã§ããå¯Ÿç §çã« S3 ã«è¿œå ãããæ°ããããŒãã£ã·ã§ã³ãšããŠã¡ã¿ããŒã¿ãæŽæ°ããããã¡ã€ã«ããå€éšããŒãã«ãéã㊠Redshift Spectrum ã§èªèãã圢ããšãããšã§ãããããããŒã¿æŽæ°ã®ã¯ãŒã¯ããŒãã Redshift ã¯ã©ã¹ã¿ãŒ ã®å€ã«è¿œãããããšãã§ããããã«ãªããŸããããã¯ã¯ãšãªã®åæå®è¡æ§èœã«å¯ŸããŠã倧ããªãã©ã¹ã®å¹æããããããŸãã
2. åæå®è¡æ§ãã¹ã±ãŒã«ãããããã«ãè€æ°ã®ãªã³ããã³ã Amazon Redshift ã¯ã©ã¹ã¿ãŒã䜿çšãã
è€æ°ã® Redshift ã¯ã©ã¹ã¿ãŒããRedshift Spectrum çµç±ã§ S3 ã«ä¿åãããããŒã¿ã«ã¢ã¯ã»ã¹ããããšã«ããã䞊è¡ã¯ãŒã¯ããŒãã®ããã©ãŒãã³ã¹ãæ¹åãããããšãã§ããŸããRedshift ã䜿ãã客ããŸã®äžè¬çãªãŠãŒã¹ã±ãŒã¹ã«ã¯ãå£ç¯çãªã¹ãã€ã¯ããéåžžã«åæå®è¡ã¯ãšãªæ°ã®å€ãã¯ãŒã¯ããŒãããããŸããRedshift Spectrum ãç»å Žããåã¯ãå¢å ããåæå®è¡ã¯ãšãªæ°ã«å¯ŸåŠããããã«ãã客ããŸã¯ã¹ãããã·ã§ããããã®åŸ©å ã«ãã£ãŠãè€æ°ã® âèªã¿åãå°çšâ Redshift ã¯ã©ã¹ã¿ãŒãç«ã¡äžããå¿ èŠããããŸããããã®ããæ¹ããšã£ãå Žåãæ°çŸãã©ãã€ãã«ãããã¶ããŒã¿ãå«ã巚倧㪠Redshift ã¯ã©ã¹ã¿ãŒããæã¡ã®ã客ããŸã ãšãã¯ã©ã¹ã¿ãŒã®åŸ©å ã«éåžžã«é·ãæéãããããããããŒã¿ã¬ã€ãã³ã·ãŒã®åé¡ãçããŠããŸããŸããã
Redshift Spectrum ã®ç»å Žã«ãããæã倧ããªããŒãã«ã S3 ã«ç§»åãããRedshift ã¯ã©ã¹ã¿ãŒã«ã¯å°ããªãµã€ãºã®ããŒã¿ã®ã¿ã眮ãããšãã圢ãåããããã«ãªããŸãããã¯ã©ã¹ã¿ãŒã§ä¿æããããŒã¿éãæžã£ãããšã«ãããè€æ°ã® âèªã¿åãå°çšâ Redshift ã¯ã©ã¹ã¿ãŒãåŸæ¥ããã¯ããã«é«éã«ç«ã¡äžããããããã«ãªããå£ç¯æ§ã®ããã¹ãã€ã¯çãªã¯ãšãªã¯ãŒã¯ããŒãã«å¯Ÿå¿ã§ããããã«ãªããŸããïŒå³ 1ïŒãã³ã¹ããåæžããããã«ã¯ããžã§ããçµãã£ããããã« âãªã³ããã³ãâ 㪠Redshift ã¯ã©ã¹ã¿ãŒãã·ã£ããããŠã³ããŠãã ããã
Figure 1: è€æ°ã® âèªã¿åãå°çšâ Amazon Redshift ã¯ã©ã¹ã¿ãŒããã®å
±æ Redshift Spectrum å±€ãžã®ã¢ã¯ã»ã¹
pgbouncer-rr ãã䜿ãããã ãããšã§ãè€æ°ã® Redshift ã¯ã©ã¹ã¿ãŒãç«ã¡äžããŠã¯ãšãªã®ã«ãŒãã£ã³ã°ãè¡ãåŠçãç°¡åã«è¡ãããšãã§ããŸãã詳现ã«ã€ããŠã¯ä»¥äžã®ããã°èšäºãåç §ããŠãã ããã
Query Routing and Rewrite: Introducing pgbouncer-rr for Amazon Redshift and PostgreSQL.
ã¹ãã¬ãŒãžã®ãã¹ããã©ã¯ãã£ã¹
ã¹ãã¬ãŒãžã®æé©åãèããéã«ã¯ãããããã¹ãããã§ I/O ãåæžããããšãèããå¿ èŠããããŸããåæåãã©ãŒãããã䜿çšãããå§çž®ã«ãã£ãŠåã¹ãã¬ãŒãžãããã¯ã«ããå€ãã®ããŒã¿ãè©°ã蟌ããããŒã¿ã®ããŒãã£ã·ã§ãã³ã°ããµããŒãããŠãããã¡ã€ã«ãã©ãŒãããã䜿çšããããšãã£ãããšãæããããŸããRedshift Spectrum ã§ãµããŒããããŠãããã¡ã€ã«ãã©ãŒãããã¯ãCSVãTSVãParquetãSequenceããã㊠RCFile ã§ãããŸãå§çž®ã«é¢ããŠã¯ãGzipãSnappyãBZ2 ããµããŒããããŠããŸãã
3. ããã©ãŒãã³ã¹åäžãšã³ã¹ãåæžã®ããã« Apache Parquet ãã¡ã€ã«ã䜿çšãã
Apache Parquet ã¯ãApache Hadoop ãšã³ã·ã¹ãã ã®ãããããããžã§ã¯ãã§ãããŒã¿åŠçãã¬ãŒã ã¯ãŒã¯ãããŒã¿ã¢ãã«ãããã°ã©ãã³ã°èšèªã«äŸããå©çšå¯èœãªåæåãã©ãŒãããã§ãã詳现ã«ã€ããŠã¯ãApache Prquet ã®å ¬åŒãµã€ããã芧ãã ããã
Redshift Spectrum ã¯ãã¯ãšãªå®è¡ã®ããã«å¿ èŠãªã«ã©ã ãå«ãã ãã¡ã€ã«ã ãããS3 ããèªã¿åºããŸããRedshift Spectrum ã¯ãã¬ãã£ã±ã€ãããã·ã¥ããŠã³ïŒãã¬ãã£ã±ã€ããã£ã«ã¿ãªã³ã°ãšãåŒã°ããŸãïŒããµããŒãããŠããŸãïŒè𳿳šïŒãã¬ãã£ã±ã€ãããã·ã¥ããŠã³ãšã¯ãWHERE å¥ã GROUP BY å¥ãªã©ã®åŠçãå¹ççã«è¡ãããã®ææ³ã§ããäŸãã° GROUP BY ã«å¯Ÿãããã¬ãã£ã±ã€ãããã·ã¥ããŠã³ã§ã¯ãåãªãŒããŒã§èªã¿èŸŒãã ããŒã¿ã«ã€ããŠãå šããŒã¿ã§ GROUP BY ãè¡ãåã«ãåã¯ãŒã«ãŒå ã§ããããã GROUP BY ãããŠããããã®çµæãéçŽã¯ãŒã«ãŒã«è»¢éããããšãã£ãããã»ã¹ããšããŸããåã¯ãŒã«ãŒã§å ã«éçŽãè¡ãããšã§ããŒã¿ã®è»¢éã³ã¹ããäžãããçµæçã«ããã©ãŒãã³ã¹ãåäžããŸãããã®ããã«ãã¯ãšãªã®å®è¡ãã€ãã©ã€ã³ã®æåŸã§è¡ãåŠçããå¹çåã®ããã«ãããããåããã»ã¹ã§ãããªã£ãŠããïŒ= ããã·ã¥ããŠã³ïŒã®ãããã¬ãã£ã±ã€ãããã·ã¥ããŠã³ã®åœ¹å²ãšãªããŸãïŒã
Redshift Spectrum ã¯ãã¯ãšãªåäœã§ S3 ããã¹ãã£ã³ããããŒã¿éããšã«èª²éãããŸããParquet ãã©ãŒãããã¯åæåãã©ãŒãããã§ããŒã¿ãä¿æãããããRedshift Spectrum ã¯äžå¿ èŠãªã«ã©ã ãé€ãã圢ã§ã¹ãã£ã³ãè¡ãããšãã§ããŸããäŸãšããŠãCSV 圢åŒã®ããã¹ããã¡ã€ã«ãšãããŒãã£ã·ã§ã³åãããã Parquet ãã¡ã€ã«ã®ã¯ãšãªããã©ãŒãã³ã¹ã®éããã¿ãŠã¿ããšããã§ãããã
Parquet ãã¡ã€ã«ã®å©çšã«ãã£ãŠãããã©ãŒãã³ã¹ãåäžããã ãã§ãªããããŒãã£ã·ã§ã³åããããŠããªãè¡æåã® CSV ãã¡ã€ã«ããã¯ããã«ã³ã¹ãå¹çããããªãããšããããŸããŸãªæ€èšŒã«ãã£ãŠç€ºãããŠããŸãã
SVL_S3QUERY_SUMMARY ããŒãã«ã調ã¹ãããšã§ãããŒãã£ã·ã§ã³åãããã Parquet ãã¡ã€ã«ã䜿ãéã®ãS3 ã«é¢ããããŸããŸãªè峿·±ãã¡ããªã¯ã¹ã確èªããããšãã§ããŸãã
s3_scanned_rows ãš s3query_returned_rows ãšãã 2 ã€ã®ã¡ããªã¯ã¹ã«ãç¹ã«æ³šç®ããŠã¿ãŸããããCSV ãã¡ã€ã«ãåŠçãããšããšæ¯ã¹ãŠãRedshift Spectrum ãã Redshift ã¯ã©ã¹ã¿ãŒã«éãããããŒã¿ç·éãé©ç°çã«åæžãããŠããããšãããããŸãã
4. é »ç¹ã«äœ¿ãããã«ã©ã ãããŒãã£ã·ã§ã³ãšãã Parquet ãã¡ã€ã«ãã€ãã
ããŒãã£ã·ã§ã³ãšããŠå©çšããæé©ãªã«ã©ã ãæ±ºããéã«ã¯ã以äžã®ç¹ã«æ³šç®ããŸããã
- ãã£ã«ã¿ãšããŠé »ç¹ã«äœ¿ãããã«ã©ã ã¯ãããŒãã£ã·ã§ã³ã«ã©ã ã®è¯ãåè£ãšèããããŸã
- é床ã«çްããããŒãã£ã·ã§ãã³ã°ã¯ãããŒãã£ã·ã§ã³ã®æ å ±ãååŸããã®ã«æéãèŠããŸããäžæ¹ã§ãå¿ èŠãªããŒãã£ã·ã§ã³ã®éžæã«ãããS3 ããã¹ãã£ã³ããããŒã¿ãæžããã®ã«åœ¹ç«ã¡ãŸã
- å®éã®ããã©ãŒãã³ã¹ã¯ããã¡ã€ã«ã®çœ®ãæ¹ãã¯ãšãªã®ãã¿ãŒã³ããã¡ã€ã«ãµã€ãºã®ååžãã²ãšã€ã®ããŒãã£ã·ã§ã³ã«å«ãŸãããã¡ã€ã«æ°ã察象ãšãªãããŒãã£ã·ã§ã³æ°ãªã©ã«ãã£ãŠç°ãªããŸã
- ããŒãã£ã·ã§ã³ã«ã«ã©ã ã®åããé¿ããŸããã
- ãã¡ã€ã«ãµã€ãºã®ååžãã§ããéãåçã«ãªãããã«ããŸããããã€ãŸãããã¹ãŠ 256MB ã® Parquet ãã¡ã€ã« 10 åã®æ¹ãã1GB è¶ ã®ãã¡ã€ã« 1 åãš 256MB ã®ãã¡ã€ã« 6 åããæãŸãããšããããšã§ã
ããŒãã£ã·ã§ã³ã«ããæåããçŽ æŽããã广ãçºæ®ããã®ã確èªããããã«ã2 ã€ã®å€éšããŒãã«ã Parquet ãã¡ã€ã«ã§äœæããŠã¿ãŸããããã²ãšã€ã¯ããŒãã£ã·ã§ã³åããããŠããªããã®ãããã²ãšã€ã¯æ¥åäœã§ããŒãã£ã·ã§ã³åããããŠãããã®ã§ãã
ããŒãã£ã·ã§ã³åããããå€éšããŒãã«ã¯ãããã§ãªããã®ãã 2-4 åçšåºŠé«éã«ã¹ãã£ã³ã§ããŸãã
âããŒãã£ã·ã§ã³ã®æåãâ ã®å¹æãã©ã®ããã«ç¢ºèªããã°è¯ãã§ããããã以äžã«ç€ºã SQL ãçšããããšã§ãããŒãã£ã·ã§ã³ã®æåãã®å¹æãåæããããšãã§ããŸããã¯ãšãªãæ°åã®ããŒãã£ã·ã§ã³ã«ã®ã¿ã¢ã¯ã»ã¹ãããããªå Žåã«ã¯ãæåŸ éãã®å¹æãåŸãããŠããããšã確èªããããšãã§ããŸãã
ã¯ã©ã¹ã¿ãŒèšå®ã®ãã¹ããã©ã¯ãã£ã¹
5. æ£ãã Redshift ã®ã¯ã©ã¹ã¿ãŒèšå®ã«ãã Redshift Spectrum ã®ããã©ãŒãã³ã¹ãæé©åãã
Redshift Spectrum ã¯ãšãªã®åæå®è¡æ§èœã¯ã以äžã® 2 ã€ã®ã¬ãã«ã§å¶åŸ¡ããããšãå¯èœã§ã
- ã¯ãšãªã¬ãã«ïŒã¯ãšãªããš 1 ã¹ã©ã€ã¹ã«ã€ãæå€§ 10 ã®åæå®è¡æ°ïŒ
- ããã€ã®ã¯ãšãªãåæã«å®è¡ãããŠãããã«ãã£ãŠãåæå®è¡æ°ãå€ãã
- å²ãããŠãããåæå®è¡æ°ã«ãã£ãŠãS3 ãã¹ãã£ã³ããã¹ã¬ããæ°ãå¶éããã
- ããŒãã¬ãã«ïŒããŒãç¶ã§åäœãããã¹ãŠã® S3 ãã¹ãã£ã³ããã¯ãšãªã«é©çšããããããŒãã¿ã€ãã«ãã£ãŠæ°ãç°ãªãïŒ
- ãã倧ããªããŒãã¿ã€ããéžæããã»ã©ãäžéæ°ãé«ããªã
ãã¡ã€ã«ç·æ° <= ã¯ãšãªããšã®åæå®è¡æ§èœ (äŸãã° 10) * ã¯ã©ã¹ã¿ãŒã®ã¹ã©ã€ã¹æ°ããšãã£ãç°¡åãªèšç®ãã§ããŸããããã ãã¯ã©ã¹ã¿ãŒã®ããŒãæ°ãå¢ãããŠããå¿ ãããããã©ãŒãã³ã¹ãåäžãããšã¯éããŸãããæé©ãªã¯ã©ã¹ã¿ãŒã®ããŒãæ°ã¯ã以äžã®ããã«ããŠæ±ºããŠãã ããããŸã Redshift Spectrum ã®å€éšããŒãã«ã«ãããã€ã®ãã¡ã€ã«ãå«ãŸããŠãããã確èªããŠãã ãããç¶ããŠã¯ã©ã¹ã¿ãŒã®ãµã€ãºã倧ããããŠãã£ãŠïŒã¯ã©ã¹ã¿ãŒã«å«ãŸããã¹ã©ã€ã¹æ°ãå¢ãããšããããšã§ãïŒãããŒãæ°ãå¢ããŠãããã©ãŒãã³ã¹ããã以äžäŒžã³ãªããªããšãããã€ã³ããæ¢ããŠãã ããããã®ãšãã®ããŒãã¿ã€ãã«ããããæé©ãª Redshift ã®ã¯ã©ã¹ã¿ãŒãµã€ãºã¯ããã以äžã®ããã©ãŒãã³ã¹åäžãèµ·ãããªããªããšããã§ãã
ã¯ãšãªããã©ãŒãã³ã¹ã®ãã¹ããã©ã¯ãã£ã¹
S3 ã«å¯Ÿããã¯ãšãªã®ããã©ãŒãã³ã¹ãæ¹åããããã®ãç°¡åãªæ¹æ³ãããã€ãã玹ä»ããŸãã
6. Redshift Spectrum ã§ã¹ãã£ã³ã»éçŽã€ã³ãã³ã·ããªã¯ãšãªãå®è¡ãã
Query 1 ã®ããã«çµååŠçãå«ãŸããªãã¯ãšãªã§ã¯ãç©çç㪠I/O ã®ã³ã¹ããã¹ãã£ã³é床ã®å€§åãå ããŸãããããã®ã¯ãšãªã§ã¯ãRedshift Spectrum ã¯çŽ ã® Redshift ãããé«éã«åäœããŸãããã®äžæ¹ã§è€æ°ã®çµååŠçãå«ãŸãã Query 2 ã®ãããªã¯ãšãªã§ã¯ãããŒã«ã«ã¹ãã¬ãŒãžäžã§ãã¡ããšæé©åãããŠããçŽ ã® Redshift ããŒãã«ã®æ¹ããåœç¶ããããã©ãŒãã³ã¹ãçºæ®ããŸãã
7. ãã¬ãã£ã±ã€ãããã·ã¥ããŠã³ã«ãã£ãŠ S3 ã«å¯Ÿããã¯ãšãªã®ããã©ãŒãã³ã¹ãæ¹åãã
Redshift Spectrum å±€ã§è¡ãããåŠçïŒS3 ã«å¯Ÿããã¹ãã£ã³ãã«ã©ã æœåºããã£ã«ã¿ãªã³ã°ãéçŽïŒã¯ Redshift ã¯ã©ã¹ã¿ãŒãšã¯ç¬ç«ããŠè¡ãããŸãããã¡ãã Redshift ã¯ã©ã¹ã¿ãŒã®ãªãœãŒã¹ãæ¶è²»ããããšã¯ãããŸããã
SQL ã«å«ãŸããããçš®ã®åŠç㯠Redshift Spectrum å±€ã«ããã·ã¥ããŠã³ããããšãã§ããå¯èœãªå Žåã¯åžžã«ãã®æ©æµãåããããšãã§ããŸããäŸãã°ä»¥äžã®ãããªåŠçãæããããŸãã
- GROUP BY å¥ãšãããã€ãã®æåå颿°
- ã€ã³ãŒã« æ¡ä»¶ã LIKE ã®ãããªãã¿ãŒã³ãããã³ã°æ¡ä»¶
- COUNTãSUMãAVGãMINãMAXããã®ä»ã®äžè¬çãªéçŽé¢æ°
- regex_replace ããã®ä»ã®é¢æ°
DISTINCT ã ORDER BY ãšãã£ãæŒç®åã¯ãRedshift Spectrum ã«ããã·ã¥ããŠã³ããããšãã§ããªããããAmazon Redshift ã§å®è¡ãããŸããå¯èœãªãã°ããããã®åŠçã®å©çšãæå°åãããããããã¯å©çšãé¿ããã®ãæãŸããã§ãã
次ã«ç€ºã 2 ã€ã®ã¯ãšãªãå®è¡ããŠã¿ããšãäž¡è ã®éã§ããã©ãŒãã³ã¹ã倧ããç°ãªãããšãããããŸãããªãã§ããããïŒ
æåã®ã¯ãšãªã®å®è¡èšç»ã§ã¯ãS3 ããŒã¿ã«å¯ŸããéçŽåŠçã Redshift Spectrum ã«ããã·ã¥ããŠã³ãããéçŽãããçµæã®ã¿ã Redshift ã«éãããŸãã
äžæ¹ã2 ã€ãã®ã¯ãšãªã®å®è¡èšç»ã§ã¯ãRedshift Spectrum ã DATE åãæšæºã®ããŒã¿åãšããŠãµããŒãããŠããªãããšããDATE 倿颿°ããµããŒãããŠããªãããšã«ãã£ãŠãRedshift Spectrum å±€ã§S3 ããŒã¿ã«å¯ŸããéçŽåŠçããŸã£ããè¡ãããŸãããçµæãšã㊠S3 ããèªã¿åºããã倧éã®ããŒã¿ããRedshift äžã§å€æåŠçãè¡ãããã«éãããŠããããšã«ãªããŸãã
ãŸããSVL_S3QUERY_SUMMARY ã·ã¹ãã ãã¥ãŒïŒã® s3query_returned_rows ã«ã©ã ïŒã«å¯ŸããŠã2 ã€ã® SQL ã¹ããŒãã¡ã³ãã®è©³çްã確èªããã¯ãšãªãæããããšãã§ããŸããã¯ãšãªã®çµæãã¿ããšãRedshift Spectrum ãã Redshift ã«éãããè¡æ°ãäž¡è ã§å€§ããç°ãªã£ãŠãããšããããã§ãããã
8. DISTINCT ã GROUP BY ã§çœ®ãæãã
GROUP BY ã MIN/MAX/COUNT ãšãã£ãæŒç®åã¯ãRedshift Spectrum å±€ã«åŠçãããã·ã¥ããŠã³ããããšãã§ããŸãããã®ä»ã® DISTINCT ã ORDER BY ã®ãã㪠SQL æŒç®åã¯ãããã·ã¥ããŠã³ã§ããŸãããäžè¬çã«ãRedshift Spectrum å±€ã«ããã·ã¥ããŠã³å¯èœãªãã¹ãŠã®æŒç®åã¯ãRedshift Spectrum ãåäœãããã¯ãã«ãªã€ã³ãã©ã«ãããããã·ã¥ããŠã³ã«ããããã©ãŒãã³ã¹ã®åäžãæåŸ ã§ããŸãã
äŸãã°ã以äžã® 2 ã€ã®æ©èœçã«ç䟡㪠SQL ã¹ããŒãã¡ã³ãã詊ããŠã¿ãŸãããã
ã²ãšã€ãã®ã¯ãšãªã§ã¯ïŒDISTINCT æŒç®åã®ããã§ïŒããã·ã¥ããŠã³ãè¡ãããŸããããã®ãã Redshift äžã§ãœãŒãããã³éè€é€å»ãè¡ãããã«ã倧éã®ã¬ã³ãŒããéãããŸãããµãã€ãã®ã¯ãšãªã§ã¯ãéããåŠçãéçŽã®å€§åãè¡ã HashAggregate ã Redshift Spectrum ã§è¡ãããŸããSVL_S3QUERY_SUMMARY ã«ã¯ãšãªãæããããšã§ãå®è¡èšç»ã®éãã確èªããããšãã§ããŸãã
ããã§ã®åŠã³ã¯ãå¯èœãªãšãã¯åžžã« âDISTINCTâ ã âGROUP BYâ ã§çœ®ãæããã¹ãã ãšããããšã§ãã
ããŒãã«é 眮ã®ãã¹ããã©ã¯ãã£ã¹
ãã®ã·ã³ãã«ãªã¬ã€ãã©ã€ã³ã§ã¯ãæé«ã®ããã©ãŒãã³ã¹ãåŸãããã®ããŒãã«ã®çœ®ãæ¹ã«ã€ããŠè¿°ã¹ãŸãã
9. 倧ããªãã¡ã¯ãããŒãã«ã S3 ã«ããããã以å€ã Redshift ã§æã€
Query 2 ã§ã¯ã3 ã€ã®ããŒãã«ã«å¯ŸããŠçµååŠçãè¡ã£ãŠããŸããèªç¶ãªçåãšããŠããã 3 ã€ã®ããŒãã«ãã¹ãŠããããŒãã£ã·ã§ã³åããã Parquet ãã¡ã€ã«ãšããŠãS3 ã«ããããã©ããªãã§ããããïŒããšæãã§ããããçŽ ã® Redshift ã« 3 ã€ã®ããŒãã«ããã¹ãŠçœ®ãããŠãããšããšæ¯ã¹ãŠãããã©ãŒãã³ã¹ã¯è¯ããªãã§ããããããããšãæªããªãã§ããããïŒ
çµååŠçã«å¯ŸããŠæé©åãè¡ãªã£ãïŒé©åãªåæ£ããŒããœãŒãããŒãèšå®æžã¿ã®ïŒRedshift ããŒãã«ã¯ãRedshift Spectrum ãããé«ãããã©ãŒãã³ã¹ãçºæ®ããŸããRedshift Spectrum ã®å€éšããŒãã«ã¯ãçµ±èšæ å ±ããµããŒãããŠããŸããã
ããŒã¿ããŒã¹ãšã³ãžã³ã¯ãã¥ãŒãªã¹ãã£ã¯ã¹ããããã¯åçŽãªè¡æ°ã«ãŠã³ãã«ãã£ãŠçµåã®é çªã決å®ããŸãããã®æ¹æ³ã ãšãå¿ ãããæé©ãªããã©ãŒãã³ã¹ã¯åŸãããŸãããAWS ã§ã¯ãæã倧ãããã¡ã¯ãããŒãã«ã®ã¿ã S3 äžã«çœ®ããŠããã以å€ã®å°äžèŠæš¡ã®ãã£ã¡ã³ãžã§ã³ããŒãã«ã¯ Redshift ã«æã€ããšãæšå¥šããŠããŸãããã®å Žåã«ããªããã£ãã€ã¶ãŒã®ãã¥ãŒãªã¹ãã£ã¯ã¹ãæãããŸãåããŸãã
CREATE EXTERNAL TABLE ããã³ ALTER TABLE ã³ãã³ãã§ã¯ãTABLE PROPERTIES ç¯ã®äžã§ (numRows) ãããŒãã«çµ±èšæ å ±ãšããŠèšå®ããããšãã§ããŸãããã®æ å ±ã«ãã£ãŠããªããã£ãã€ã¶ãŒãããè¯ãå®è¡èšç»ãçæããã®ãæå©ãããããšãã§ããŸããããè©³çŽ°ãªæ å ±ã«ã€ããŠã¯ãRedshift ã®ããã¥ã¡ã³ãå ã® CREATE EXTERNAL TABLE ãåç §ããŠãã ããã
å°ãªããšã 3 ã€ã®ããŒãã«ã®çµååŠçãå«ãã¯ãšãªããããããæ£ããé çªã§çµåãããããã«èšè¿°ããŠã¿ãŠãã ããïŒExplain æã§ç¢ºèªããããšãã§ããŸãïŒããã«ãã£ãŠã Redshift Spectrum ã§ã¯è€æ°ããŒãã«ã®çµåãè¡ãªã£ãŠã¯ãããªãããšãã£ãééã£ãèãã«é¥ããªãããã«ããããšãã§ããŸãã
10 é »ç¹ã«çµååŠçã®å¯Ÿè±¡ãšãªã倧ããªããŒãã«ã S3 äžã«çœ®ããšãã«æ³šæãã
çŽ ã® Redshift 㯠Query 2 ã®ãããªã¯ãšãªã«ã€ããŠã倧æŠã®åæå®è¡ã¯ãšãªæ°ã«ãããŠãRedshift Spectrum ããçŽ 3 åã®ããã©ãŒãã³ã¹ãçºæ®ããŸããQuery 1 ãš 2 ã®éãã¯ãQuery 1 ã§ã¯ 1 ããŒãã«ã«å¯ŸããéçŽåŠçããè¡ãªã£ãŠããªãã®ã«å¯ŸããŠãQuery 2 ã§ã¯ 3 ã€ã®æ¯èŒç倧ããªããŒãã«ã®çµååŠçãå«ãŸããŠããç¹ã§ãã
ããæç¢ºã«èšããšããã°ããã®ãããªããã©ãŒãã³ã¹ã®éããçããã®ã¯ãçµååŠçã Redshift ã®äžã§è¡ãããŠããããã§ããçµåã«å¿ èŠãªããŒã¿ã¯ãŸã S3 ããèªã¿èŸŒãŸãããã㊠Redshift ã¯ã©ã¹ã¿ãŒã®åã¹ã©ã€ã¹ã«è»¢éãããå¿ èŠããããŸãããã®çµæãRedshift ã®ããŒã«ã«ã¹ãã¬ãŒãžã«ã¢ã¯ã»ã¹ããã®ãšæ¯ã¹ãŠãRedshift Spectrum çµç±ã®å Žåã¯éåžžã«é«ãã¬ã€ãã³ã·ãŒãçºçããŸãã
ãã®ããã倧ã㪠Redshift ããŒãã«ã«å¯ŸããŠçµåãé »ç¹ã«è¡ãããã€ã¯ãšãªã®ã¯ãŒã¯ããŒãã«å¯ŸããŠå³ãã SLA ãèšå®ãããŠããå Žåã«ã¯ããããã®ããŒãã«ã S3 ã«çœ®ãã¹ãã§ã¯ãããŸããã
çµè«
ãã®ããã°ãã¹ãã§ã¯ãRedshift Spectrum ã®ããã©ãŒãã³ã¹ãæ¹åããããã®éèŠãªãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠè¿°ã¹ãŠããŸããããã¡ããåãŠãŒã¹ã±ãŒã¹ã§ç°ãªãç¹ããããããããã§ç€ºããããããã®æ¹æ³ãã©ã®çšåºŠåãå ¥ãããã«ã€ããŠãèããå¿ èŠããããŸãã
åæ: 10 Best Practices for Amazon Redshift Spectrum (翻蚳: SAå¿æ)
Amazon Redshiftã¯ãšãªãŒã¢ãã¿ãªã³ã°ã«ãŒã«ã§ã¯ãšãªãŒã¯ãŒã¯ããŒãã管çãã
ããŒã¿ãŠã§ã¢ããŠã¹ã®ã¯ãŒã¯ããŒãã¯å€æ§æ§ã§ç¥ãããŠããŸããããã¯ãå£ç¯æ§ããåŸã ã«ããŠé«ã³ã¹ãã«ãªããã¡ãªæ¢çŽ¢çã¯ãšãªãŒãSQLéçºè ã®ã¹ãã«ã¬ãã«ã®ã°ãã€ããªã©ã«ãããã®ã§ãã
Amazon Redshiftã¯ãŒã¯ããŒãç®¡çæ©èœïŒWLMïŒãçšããŠåªå 床ããªãœãŒã¹äœ¿çšéãæè»ã«ç®¡çããããšã§ã極ããŠå€æ§ãªã¯ãŒã¯ããŒãç°å¢ã§ãé«ãæ§èœãåŸãããšãå¯èœãšãªããŸããWLMã«ãã£ãŠãçæéã§å®äºããã¯ãšãªãŒãé·æéå®è¡ãããã¯ãšãªãŒã®ããã§ãã¥ãŒã«æ»çãããããªç¶æ³ãé¿ããããšãã§ããŸããã«ãæããããããã¯ãšãªãŒãäžé£ãåããªéã®ãªãœãŒã¹ãç¬å ããã·ã¹ãã å ã®ãã®ä»ã®ã¯ãšãªãŒãå§è¿«ããããšãäŸç¶ãšããŠèµ·ããåŸãŸããããããã¯ãšãªãŒã¯ãäžè¬ã«rogue queryãrunaway queryãšåŒã°ããŸãïŒèš³è èš»ïŒrogueã¯ãªããè ãé¢åãèµ·ãããšãã£ãæå³ãrunawayã¯æŽèµ°ã®æã§ãããã§ã¯äžæ¹çã«ãªãœãŒã¹ãå æãä»ã®ã¯ãšãªãŒã«åœ±é¿ãåãŒãã¯ãšãªãŒãæããŸãïŒ
WLMã¯ãã¡ã¢ãªãŒäœ¿çšéãå¶éããã¿ã€ã ã¢ãŠããçšããŠã¯ãšãªãŒãå¥ã®ãã¥ãŒã«ç§»åãããæ©èœãæã¡ãŸããããã£ãšç²åºŠã®çްããã³ã³ãããŒã«ãã§ããããšãæãŸããããšã¯è«ãä¿ã¡ãŸãããã¯ãšãªãŒã¢ãã¿ãªã³ã°ã«ãŒã«ãçšããŠããªãœãŒã¹äœ¿çšéã®ã«ãŒã«ãäœæããã¯ãšãªãŒã®ãªãœãŒã¹äœ¿çšéãç£èŠããããããã«ãŒã«ãç¯ããæã®ã¢ã¯ã·ã§ã³ã決ããããšãå¯èœã«ãªããŸããã
ã¯ãŒã¯ããŒã管çã«ãããåæäžŠåæ§ãšã¯ãšãªãŒã¢ãã¿ãªã³ã°ã«ãŒã«
Amazon Redshiftç°å¢ã§ã¯ãåäžã¯ã©ã¹ã¿ãŒã«å¯Ÿãæå€§500ãŸã§åææ¥ç¶ããããšãã§ããŸããæ§èœææšã§ããã¹ã«ãŒãããã¯äžè¬ã«äžæéãããã®ã¯ãšãªãŒæ°ãšããŠè¡šçŸãããŸãããMySQLã®ãããªè¡æåããŒã¿ããŒã¹ã§ããã°ãåææ¥ç¶æ°ãå¢ããããšã«ãã£ãŠã¹ã±ãŒã«ããŸããAmazon Redshiftç°å¢ã§ã¯ãã¯ãŒã¯ããŒã管çïŒWLMïŒã«ãã£ãŠãåææ¥ç¶æ°ãšã¯ç°ãªãæ¹æ³ã§ã¹ã«ãŒããããæå€§åããŸããWLMã¯äºã€ã®éšåããããŸãããã¥ãŒãšåæäžŠåæ§ã§ãããã¥ãŒã¯ãŠãŒã¶ãŒã°ã«ãŒããŸãã¯ã¯ãšãªãŒã°ã«ãŒãã®ã¬ãã«ã§ã®ã¡ã¢ãªãŒå²ãåœãŠãå¯èœã«ããŸããåæäžŠåæ§ïŒãŸãã¯ã¡ã¢ãªãŒã¹ãããïŒã¯ããã®å²ãåœãŠãããã«ã©ã®ããã«åå²ããåã ã®ã¯ãšãªãŒã«ã¡ã¢ãªãŒãå²ãåœãŠãããå¶åŸ¡ããŸãã
äŸãã°ãåæäžŠåæ§10ã®1ã€ã®ãã¥ãŒãããïŒã¡ã¢ãªãŒå²ãåœãŠ100ïŒ ïŒãšä»®å®ããŸããããããã¯ãåã ã®ã¯ãšãªãŒã¯æå€§10%ã®ã¡ã¢ãªãŒã®å²ãåœãŠãåããããšãæå³ããŸããããã¯ãšãªãŒã®å€§åã20%ã¡ã¢ãªãŒãå¿ èŠãšããå Žåããããã®ã¯ãšãªãŒã¯ãã£ã¹ã¯ã«ã¹ã¯ããã¢ãŠãããã¹ã«ãŒãããã®å£åããããããŸããããããããåæäžŠåæ§ã5ã«äžããå Žåãåã ã®ã¯ãšãªãŒã¯20%ã®ã¡ã¢ãªãŒå²ãåœãŠãåããããšãã§ãããããããŒã¿ã«ã®ã¹ã«ãŒãããã¯é«ããªããSQLã¯ã©ã€ã¢ã³ããžã®ã¬ã¹ãã³ã¹ãå šäœçã«é«éã«ãªããŸããé«ãåæäžŠåæ§ãããããããã©ãŒãã³ã¹ã«ç¹ãããšèããŠããŸãããšã¯ãè¡æåã®ããŒã¿ããŒã¹ãåæåã«åãæ¿ããæã«é¥ããã¡ãªå žåçãªèœãšã穎ã®äžã€ã§ãã
åæäžŠåæ§ã«ã€ããŠçè§£ãããšããã§ãã¯ãšãªãŒã¢ãã¿ãªã³ã°ã«ãŒã«ã«ã€ããŠæãäžããŠãããŸãããããªãœãŒã¹äœ¿çšéã«åºã¥ãã«ãŒã«ãšãããã«éåããå Žåã«åãã¢ã¯ã·ã§ã³ãå®çŸ©ããŸããåœè©²ã¯ãšãªãŒã«ããCPU䜿çšéãã¯ãšãªãŒå®è¡æéãã¹ãã£ã³ãããè¡æ°ãè¿ãããè¡æ°ããã¹ãããã«ãŒãïŒNested loopïŒçµåãªã©ã12ã®ç°ãªããªãœãŒã¹äœ¿çšéã¡ããªã¯ã¹ãå©çšã§ããŸãã
ããããã®ã«ãŒã«ã¯æå€§3ã€ã®æ¡ä»¶ïŒè¿°èªïŒãšãäžã€ã®ã¢ã¯ã·ã§ã³ãæã¡ãŸãã
è¿°èªã¯ãã¡ããªãã¯ãæ¯èŒæŒç®åïŒ=ã<ãŸãã¯>ïŒãå€ã§æ§æãããŸããããã«ãŒã«å ã®å šãŠã®è¿°èªãããããããšããã®ã«ãŒã«ã®ã¢ã¯ã·ã§ã³ãããªã¬ãŒãããŸããã«ãŒã«ã¢ã¯ã·ã§ã³ã«ã¯ããã°ïŒèšé²ïŒããããïŒæ¬¡ã®ãã¥ãŒãžã®ç§»åïŒãã¢ããŒãïŒçµäºïŒããããŸãã
ããã«ãããã¯ãè¿·æãªã¯ãšãªãŒããããæ·±å»ãªåé¡ãåºæ¥ããåã«ææããããšãå¯èœã«ãªããŸããã«ãŒã«ã¯ã¢ã¯ã·ã§ã³ãããªã¬ãŒããŠãã¥ãŒãè§£æŸããã¹ã«ãŒããããšå¿çæ§ãæ¹åããŸãã
äŸãã°ãçæéå®è¡ã¯ãšãªãŒå°çšã®ãã¥ãŒã®ããã«ã60ç§ãè¶ ããŠå®è¡ãç¶ããã¯ãšãªãŒãã¢ããŒãããã«ãŒã«ãäœãããšãã§ããŸããèšèšã®ãããªãã¯ãšãªãŒã远跡ããããã«ããã¹ãããã«ãŒããå«ãã¯ãšãªãŒãèšé²ããå¥ã®ã«ãŒã«ãäœãããšãã§ããŸããAmazon Redshiftã³ã³ãœãŒã«ã«ã¯ãç°¡åã«å§ããããããããã€ãã®ãã³ãã¬ãŒããäºåå®çŸ©ãããŠããŸãã
ã·ããªãª
ã¯ãšãªãŒã¢ãã¿ãªã³ã°ã«ãŒã«ã䜿ã£ãŠãåçŽãªãã®ã³ã°ããã¯ãšãªãŒã®ã¢ããŒããŸã§ãå¹ åºãã¯ãšãªãŒã¬ãã«ã¢ã¯ã·ã§ã³ãè¡ãããšãã§ããŸãããŸããå šãŠã®ã¢ã¯ã·ã§ã³ã¯STL_WLM_RULE_ACTIONããŒãã«ã«èšé²ãããŸãã
- ãã°ïŒLOGïŒã¢ã¯ã·ã§ã³ã¯ãæ å ±ãèšé²ããäžã§ã¯ãšãªãŒã®ç£èŠãç¶ç¶ããŸãã
- ãããïŒHOPïŒã¢ã¯ã·ã§ã³ã¯ãã¯ãšãªãŒãäžæããæ¬¡ã«åèŽãããã¥ãŒã§åèµ·åããŸãã
ããåèŽãããã¥ãŒããªãå Žåãåœè©²ã¯ãšãªãŒã¯ãã£ã³ã»ã«ãããŸãã - ã¢ããŒãïŒABORTïŒã¢ã¯ã·ã§ã³ã¯ãã«ãŒã«ã«éåããã¯ãšãªãŒãã¢ããŒããããŸãã
ããã§ã¯ã以äžã®äžã€ã®ã·ããªãªãçšããŠãã¯ãšãªãŒã¢ãã¿ãªã³ã°ã«ãŒã«ãã©ã®ããã«äœ¿ãããèŠãŠãããŸãããã
ã·ããªãª1ïŒã¢ãããã¯ã¯ãšãªãŒã«æœãéå¹çãªã¯ãšãªãŒãå¶åŸ¡ããã«ã¯ïŒ
äºã€ã®å€§ããªããŒãã«ãçµåãããããªã¯ãšãªãŒã¯ãäœååããããã¯ãã以äžã®è¡ãè¿ãå¯èœæ§ããããŸããååè¡ãè¶ ããè¡ãè¿ãã¯ãšãªãŒãã¢ããŒããããã«ãŒã«ãèšå®ããããšã§ãã¢ãããã¯ã¯ãšãªãŒã®å®å šæ§ãæ ä¿ããããšãã§ããŸãããã®ã«ãŒã«ã¯ãè«ççã«ã¯ä»¥äžã®ããã«ãªããŸãã
IF return_row_count > 1B rows then ABORT
以äžã®ã¹ã¯ãªãŒã³ã·ã§ããã®èšå®ã§ã¯ãååè¡ãè¶ ããè¡ãè¿ãBI_USERã°ã«ãŒãå ã®ã¯ãšãªãŒã¯ãã¹ãŠã¢ããŒãããŸãã

ã·ããªãª 2ïŒ éå¹çã§ãCPUã€ã³ãã³ã·ããªã¯ãšãªãŒãå¶åŸ¡ããã«ã¯ïŒ
CPUã¹ãã€ã¯ãããããã¯ãšãªãŒããå¿ ãããåé¡ãšããããã§ã¯ãããŸãããããããé«ãCPU䜿çšéãšé·ãã¯ãšãªãŒå®è¡æéã䜵ãæã£ãã¯ãšãªãŒã¯ãå®è¡äžã®ä»ã®ã¯ãšãªãŒã®ã¬ã€ãã³ã·ãŒãæªåãããŸããäŸãã°ãé«ãCPU䜿çšçã瀺ãç¶ããéå¹çãªã¯ãšãªãŒãé·æéå®è¡ãããŠããå Žåãããã¯èª€ã£ããã¹ãããã«ãŒãçµåã®ããããç¥ããŸããã
ããããã±ãŒã¹ã§ã¯ã10åéã«ããã£ãŠ80%以äžã®CPU䜿çšçã瀺ããŠããã¯ãšãªãŒãã¢ããŒããããã«ãŒã«ãäœæããããšã§ãã¯ã©ã¹ã¿ãŒã®ã¹ã«ãŒããããšå¿çæ§ãäžããããšãã§ããŸãããã®ã«ãŒã«ã¯ãè«ççã«ã¯ä»¥äžã®ããã«ãªããŸãã
IF cpu_usage > 80% AND query_exec_time > 10m then ABORT
以äžã®ã¹ã¯ãªãŒã³ã·ã§ããã®èšå®ã§ã¯ã10åéã«ããã£ãŠCPU䜿çšçã80%ãè¶ ããŠããã¯ãšãªãŒã¯ãã¹ãŠã¢ããŒãããŸãã

80%以äžã®CPU䜿çšçã5å以äžç¶ããã¯ãšãªãŒãèšé²ãã10å以äžç¶ããå Žåã¯ã¢ããŒããããããã«ãŒã«ãæ¡åŒµããããšãã§ããŸãããã®ã«ãŒã«ã¯ãè«ççã«ã¯ä»¥äžã®ããã«ãªããŸãã
IF cpu_usage > 80% AND query_exec_time > 5m then LOG and IF cpu_usage > 80% AND query_exec_time > 10m then ABORT
以äžã®ã¹ã¯ãªãŒã³ã·ã§ããã®èšå®ã§ã¯ã5åéã«ããã£ãŠCPU䜿çšçã80%ãè¶ ããŠããã¯ãšãªãŒã¯èšé²ããã10åéã«ããã£ãŠCPU䜿çšçã80%ãè¶ ããŠããã¯ãšãªãŒã¯ãã¹ãŠã¢ããŒãããŸãã

ã·ããªãª 3ïŒ
鲿ããŠããªãã¯ãšãªãŒãç£èŠããèšé²ããã«ã¯ïŒ
äŸãã°ãããã¯ã¹ã¯ãŒã¯ããŒãç°å¢ã§ã¯ãETLãžã§ããS3ãã倧éã®ããŒã¿ãæœåºããAmazon Redshiftã«ããŒãããŠããã±ãŒã¹ããããŸããããŒã¿æœåºäžããã¥ãŒã§ã¹ã¿ãã¯ããŠãå šã鲿ããŠããªãããã«èŠããCOPYã³ãã³ããèŠã€ããããç¥ããŸããããã®ãããªã¯ãšãªãŒã¯ããŒã¿æœåºãé å»¶ãããããžãã¹äžã®SLAã«æªåœ±é¿ãäžããå¯èœæ§ããããŸãã
ã¯ãšãªãŒã远跡ãèšé²ããã«ãŒã«ãäœãããšã§ãããããã¯ãšãªãŒãææããããšãã§ããŸããäœãCPU䜿çšçã®ãŸãŸé·æéå®è¡ãããŠããã¯ãšãªãŒãèŠã€ãåºãã«ãŒã«ãäŸãã°1%ã®CPU䜿çšçã§10åéåäœããŠãããããªã¯ãšãªãŒãèšé²ããã«ãŒã«ãäœæããŸãããã®ã«ãŒã«ã¯ãè«ççã«ã¯ä»¥äžã®ããã«ãªããŸãã
IF cpu_usage < 1% AND query_exec_time > 10m then LOG
以äžã®ã¹ã¯ãªãŒã³ã·ã§ããã®èšå®ã§ã¯ã10åéã«ããã£ãŠCPU䜿çšçã1%æªæºã§ããã¯ãšãªãŒãèšé²ãããŸãã

ãŸãšã
Amazon Redshiftã¯åŒ·åãã€ãã«ãããŒãžããªããŒã¿ãŠã§ã¢ããŠã¹ã§ãããé«ãããã©ãŒãã³ã¹ãšäœãã³ã¹ãã®åæ¹ãã¯ã©ãŠãäžã§ãæäŸããŸããããããªãããã¯ã©ã¹ã¿ãŒãªãœãŒã¹ãç¬ãå ãããã¯ãšãªãŒïŒrogue queriesïŒã¯ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«æªåœ±é¿ãåãŒããŸãã
ãã®ãã¹ãã§ã¯ãã¯ãšãªãŒã¢ãã¿ãªã³ã°ã«ãŒã«ããã®çš®ã®ã¯ãšãªãŒã«ã©ã®ããã«å¯ŸåŠå¯èœããèŠãŠããŸããããããã®å 容ã¯ãããã¯ã¹ã¯ãŒã¯ããŒãç°å¢ã§ã®ã¯ã©ã¹ã¿ãŒæ§èœãšã¹ã«ãŒããããæå€§åããåæ»ãªããžãã¹éè¡ãå®çŸããäžã§åœ¹ç«ã€ã¯ãã§ãã
ã質åããææ¡ããããŸãããã以äžã«ã³ã¡ã³ããæ®ããŠããã ããŸããšå¹žãã§ãã
ïŒç¿»èš³ã¯AWS Japanãããã§ãã·ã§ãã«ãµãŒãã¹ä»²è°·ãæ åœããŸãããåæã¯ãã¡ãïŒ






