JINKEI Simple Stackを作る https://github.com/amimoto-ami/hans-on-materials/blob/master/howto/simple-stack.md
WordPresswithCloudFront + AMAZON RDS + S3@Amimoto_Amija.amimoto-ami.com
View Slide
ΞʔΩςΫνϟ
AMAZON CloudFrontAMAZON RDSAMAZON S3w ߴ͍োੑΛ࣋ͭ%#w $%/Ͱίϯςϯπͷ৴ΛߴԽw ίετϝσΟΞετϨʔδ࣮ݱ͢Δ͜ͱ
AWSαʔϏεͷ্ཱͪ͛ϓϥάΠϯͷઃఆWorkflow४උ
ߏஙલͷ४උ
http://bit.ly/1VAnJ8qίϚϯυ·ͱΊ
AWS CLIΠϯετʔϧCloudFrontରԠWorkflowAMIMOTO AMIͷ४උߏஙલͷ४උ
https://aws.amazon.com/marketplace/pp/B01DAONMCK/
AMIMOTOΛ্ཱͪ͛ͨΒ͜ͷը໘·ͰਐΜͰࢭΊ͍ͯͩ͘͞
AWS CLIw "84ͷ$-*πʔϧw ίϚϯυϥΠϯ͔Βૢ࡞Մೳw $MPVE'SPOUͷηοτΞοϓʹར༻"84$-*
IAMϢʔβʔͷ࡞ॳظઃఆWorkflowAWS-CLIͷΠϯετʔϧ
1. Mac PC AWS ίϚϯυϥΠϯΠϯλʔϑΣΠε (aws-cli) ΛΠϯετʔϧ aws-cli ͷΠϯετʔϧํ๏ೋ௨Γ: - AWS ϢʔβΨΠυϖʔδͷखॱͰߦ͏: http://docs.aws.amazon.com/cli/latest/userguide/installing.html - Mac ͷ߹ ύοέʔδϚωʔδϟͷ Homebrew ΛͬͯΠϯετʔϧΛ͢Δ: http://brew.sh/index.html "84$-*ͷΠϯετʔϧ
࣍ͷίϚϯυΛλʔϛφϧίϐʔ&ϖʔετ͍ͯͩ͘͠͞ɻ $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" $ brew install wget $ brew install awscli .BDͰΠϯετʔϧ
8JOEPXTͰΠϯετʔϧw %PXOMPBEUIF"84$-*.4*JOTUBMMFSGPS8JOEPXT CJUIUUQTTBNB[POBXTDPNBXTDMJ"84$-*NTJw %PXOMPBEUIF"84$-*.4*JOTUBMMFSGPS8JOEPXT CJUIUUQTTBNB[POBXTDPNBXTDMJ"84$-*NTJ
Identity and Access Management Ҡಈ͠·͢
ϢʔβΛ࡞͠·͢
Ϣʔβ໊Λೖྗͯ͠ΞΫηεΩʔΛੜ͠·͢BNJNPUPDMJBNJNPUPDMJ
ηΩϡϦςΟΫϨσϯγϟϧΛอଘ͠·͢
ϙϦγʔΛϢʔβద༻͠·͢
͜͜Ͱ CloudFrontFullAccess Λબ͍ͯͩ͘͠͞
͞Βʹ AmazonS3FullAccess Λબ͍ͯͩ͘͠͞
ϙϦγʔͷద༻͞Εͨ IAM Ϣʔβͷঢ়ଶͰ͢
aws configure --profile amimoto-cli
ઃఆΠϝʔδAWS Access Key ID [None]: XXXXXXXXXXXXXXXXXXXX AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Default region name [None]: ap-northeast-1 Default output format [None]: JSON
AWS Access Key ID ͱAWS Secret Access Key
aws --profile amimoto-cli configure set preview.cloudfront trueઃఆίϚϯυ
aws --profile amimoto-cli cloudfront helpಈ࡞֬ೝ
AWSαʔϏεͷηοτΞοϓ
Amazon RDSAmazon S3WorkflowCloudFront
AMAZON CloudFront•AWSͷϗετ͢ΔCDNαʔϏε•αΠτͷߴԽͱෛՙݮΛ࣮ݱ•ো࣌ͷϑΣΠϧΦʔόʔʹରԠ
export origin_url='{ORIGIN URL}'; aws --profileamimoto-cli cloudfront create-distribution --cli-input-json "$(curl -l -s https://raw.githubusercontent.com/amimoto-ami/create-cf-dist-settings/master/source_dist_setting.sh | sh)""84$-*͔ΒηοτΞοϓ
WordPress ϧʔτσΟϨΫτϦΠϯετʔϧ͍ͯͩ͘͠͞ɻ {ORIGIN URL HERE} - ΦϦδϯαʔόͷυϝΠϯ໊Λೖྗ͍ͯͩ͘͠͞ɻ IP ΞυϨεͰͳ͍ͷͰ͝ҙ͍ͩ͘͞ɻϋϯζΦϯͰ{ORIGIN URL HERE}EC2ͷύϒϦοΫDNSΛࢦఆ͠·͢ҙ
&$ʹύϒϦοΫ%/4͕ͳ͍߹
[email protected]OPSUIFBTUDPNQVUFBNB[POBXTDPN`BXTQSPpMFBNJNPUPDMJDMPVEGSPOUDSFBUFEJTUSJCVUJPODMJJOQVUKTPO DVSMMTIUUQTSBXHJUIVCVTFSDPOUFOUDPNBNJNPUPBNJDSFBUFDGEJTUTFUUJOHTNBTUFS[email protected]@TFUUJOHTIcTIೖྗΠϝʔδ
ηοτΞοϓྃ·Ͱ̎̌ʙ̏̌
Amazon S3Amazon RDSWorkflowCloudFront
AMAZON S3•AWSͷετϨʔδαʔϏε•Խ͞Ε͍ͯͯোʹڧ͍•ϑΝΠϧɾ༰ྔʹ্ݶͳ͠
AWS ίϯιʔϧͰ S3 Λબ͍ͯͩ͘͠͞
όέοτΛ࡞͠·͢
όέοτ͔Γ໊͍͢લΛ͚͍ͯͩ͘͞
όέοτͷ֓ཁը໘
Endpoint Λ߇͍͑ͯͩ͘͞
Enable website hosting Λબ͍ͯͩ͘͠͞
Index Document index.html Λೖྗ͍ͯͩ͘͠͞
[Save] Λԡͯ͠ઃఆΛอଘ͍ͯͩ͘͠͞
AMAZON RDS•AWSͷϗετ͢ΔDBαʔϏε•εϖοΫมߋͳͲ͕̍ΫϦοΫͰ•ෳʢϨϓϦΧ࡞ʣ؆୯
AMAZON RDSMariaDBAmazon AuroraબΔDBΤϯδϯMySQL
DBΓସ͑WorkflowηοτΞοϓ
ೖྗ͢Δ• DB Instance IdentifierɿDBΠϯελϯε໊• Master UsernameɿDBͷϧʔτϢʔβʔ໊• Master PasswordɿDBͷϧʔτϢʔβʔύεϫʔυ• Confirm Passwordɿύεϫʔυͷ֬ೝ͋ͱͰ͏ͷͰɺςΩετΤσΟλͳͲʹϝϞ
".*.050Ͱ͏σʔλϕʔε໊
ٳܜ
σʔλϕʔεͷ63-
MPDBMDPOpHQIQΛฤू$ sudo su -# cd /var/www/vhosts/{INSTANCE_ID}# vim local-config.php
มߋ͢Δॴʢ11ʙ18ߦۙʣif ( !$db_data ) {$db_data = array('database' => '{Database Name}','username' => '{Master Username}','password' => '{Master Password}','host' => '{RDS_ENDPOINT}',);}
CloudFrontͷDNSͰαΠτʹΞΫηε
ඞཁͳใΛೖྗͯ͠ΠϯετʔϧΛ࣮ࢪ
Πϯετʔϧྃͷը໘
AMIMOTO(EC2)ͷMySQLΛఀࢭ͢Δ
# vim /opt/local/amimoto.json
MySQLͷࣗಈىಈΛఀࢭ• Before{"mod_php7" : { "enabled": true },"run_list" : [ "recipe[amimoto]" ]}• After{"mod_php7" : { "enabled": true },"mysql": { "enabled": false },"run_list" : [ "recipe[amimoto]" ]}
# /opt/local/provision
ʮσʔλϕʔεଓΤϥʔʯ• local-config.php·ͩAMIMOTOͷDBΛࢀর͍ͯ͠·͢• local-config.phpͷ༰Λ͏Ұݟ͍ͯͩ͘͠͞
WordPressϓϥάΠϯͷηοτΞοϓ
C3 CloudFront Cache ClearCF Preview FixPluginsNephila clavata
CF Preview FixC3 CloudFront Cache ClearNephila clavataPlugins
WordPress ͷμογϡϘʔυͰ Nephila clavata ϓϥάΠϯΛ༗ޮԽ
ϓϥάΠϯͷઃఆΛߦ͍·͢
ೖྗ͢Δ• AWS Access Keyɿamimoto-s3ͷaccesskey• AWS Secret Keyɿamimoto-s3ͷsecret key• AWS RegionɿϦʔδϣϯʢҙʣ• S3 Bucketɿઌ΄Ͳ࡞ͨ͠S3όέοτͷ໊લ• S3 URLɿઌ΄Ͳ࡞ͨ͠S3όέοτͷURL• Storage ClassɿSTANDARD
Amazon S3 ্Ҡಈͨ͠ WordPress ϝσΟΞϥΠϒϥϦ
CF Preview FixC3 CloudFront Cache ClearPluginsNephila clavata
$$MPVE'SPOU$MFBS$BDIF• WordPress͔ΒCloudFrontͷΩϟογϡআ• هࣄެ։ɾߋ৽࣌ͱखಈͰআ• CloudFrontΩϟογϡআ࣌ʹ՝ۚ͞ΕΔͷͰཁҙ
ϓϥάΠϯΛηοτΞοϓ͢Δ$ cd /var/www/vhosts/{INSTANCE_ID}$ wp plugin activate c3-cloudfront-clear-cache$ wp c3 update distribution_id $ wp c3 update access_key $ wp c3 update secret_key
[CF Preview Fix] ϓϥάΠϯΛΠϯετʔϧͯ͠༗ޮԽ͠·͢
Ϧιʔεͷআ
AMAZON CloudFrontCloudFrontͷແޮԽ
AMAZON RDSAmazon RDSͷআ
AMAZON S3Amazon S3ͷআ
4όέοτͷআ• ϝσΟΞϑΝΠϧશͯআ͞Ε·͢• όέοτ໊ΛଞͷϢʔβʔ͕औಘ͢ΔՄೳੑ͋Δ
IAMIAMͷআ
AMAZON CloudFrontCloudFrontͷআ
EC2ͷআ͓Εͳ͘
http://ja.amimoto-ami.com/slack/࣭͓͝ؾܰʹ:
@Amimoto_Amija.amimoto-ami.comTHANK YOU!WordPresswithCloudFront + AMAZON RDS + S3