Slide 1

Slide 1 text

@Amimoto_Ami amimoto-ami.com AMIMOTO (HHVM) + AMAZON RDS

Slide 2

Slide 2 text

AMAZON RDS ͱ͸

Slide 3

Slide 3 text

εέʔϥϒϧ ར༻Մೳͳ6ͭͷDB Τϯδϯ ϦϨʔγϣφϧσʔλϕʔε ༰қͳઃఆͱӡ༻

Slide 4

Slide 4 text

ϝϦοτ •εέʔϧՄೳͳ CPUɼIOPSɼετϨʔδ
 •ࣗಈ·ͨ͸೚ҙͷόοΫΞοϓ͕
 εφοϓγϣοτ͔ΒՄೳ
 • ϚϧνΞϕΠϥϏϦςΟκʔϯͷσϓϩΠ
 • ϓϥΠϚϦͷো֐ൃੜ࣌ʹ͸
 ଈ࠲ʹηΧϯμϦ΁੾Γସ͑Մೳ

Slide 5

Slide 5 text

σϝϦοτ • DB ΁ͷγΣϧΞΫηε͕Ͱ͖ͳ͍ • Ϣʔβݖݶʹ੍໿͕͋Δ • MySQL ͰͷϨϓϦέʔγϣϯ͕ແޮ • ि4࣌ؒͷϝϯςφϯε΢Οϯυ΢දࣔ • ࢭΊΒΕͳ͍ RDS Πϯελϯε

Slide 6

Slide 6 text

RDS ΁DBΛ
 Ҡߦ͠Α͏

Slide 7

Slide 7 text

RDS ͷͳ͍ΞʔΩςΫνϟ

Slide 8

Slide 8 text

RDS ͷ͋ΔΞʔΩςΫνϟ

Slide 9

Slide 9 text

AWS ίϯιʔϧ ΁ϩάΠϯ

Slide 10

Slide 10 text

MySQL Λ Amazon RDS ಺ʹ࡞੒

Slide 11

Slide 11 text

σʔλϕʔεΤϯδϯͷબ୒

Slide 12

Slide 12 text

σʔλϕʔεΤϯδϯͷબ୒

Slide 13

Slide 13 text

σʔλϕʔεͷ֤छઃఆ

Slide 14

Slide 14 text

σʔλϕʔεͷৄࡉઃఆ

Slide 15

Slide 15 text

σʔλϕʔεͷ࡞੒

Slide 16

Slide 16 text

࡞੒͞Εͨ σʔλϕʔε

Slide 17

Slide 17 text

SSH ͰΠϯελϯε΁ϩάΠϯ

Slide 18

Slide 18 text

EC2 Λ RDS ΁઀ଓ͠·͢ 1. SSH Ͱαʔό΁઀ଓ͠·͢:
 
 $ ssh -i /Users/USERNAME/Desktop/example.pem ec2-user@instance_ip or domain
 2. ࣍ͷίϚϯυΛ࣮ߦͯ͠ MySQL ΁઀ଓ͍ͯͩ͘͠͞:
 
 $ mysql -h {endpoint} -P 3306 -u {mymasteruser} -p 


Slide 19

Slide 19 text

{endpoint} ͸ AWS Management Console ͷ RDS ৘ใͰ֬ೝͰ͖·͢
 {mymasteruser} ͱ ύεϫʔυ͸ RDS ࡞੒࣌ʹࢦఆͨ͠΋ͷΛೖྗ͍ͯͩ͘͠͞

Slide 20

Slide 20 text

σʔλϕʔεͷϚΠάϨʔγϣϯ wp-cli Ͱ MySQL ͔ΒσʔλΛΤΫεϙʔτ͠·͢:
 
 $ wp --path=/path/to/wordpress db export
 
 
 /path/to/wordpress ͸ WordPress ͷΠϯετʔϧσΟϨΫτϦΛࢦఆ͍ͯͩ͘͠͞ɻ
 AMIMOTO AMI Ͱ͸௨ৗ /var/www/vhosts/{instance_id} ͱͳ͍ͬͯ·͢ɻ


Slide 21

Slide 21 text

σʔλϕʔεͷϚΠάϨʔγϣϯ ΤΫεϙʔτͨ͠σʔλΛ RDS ΁Πϯϙʔτ͠·͢:
 
 $ mysql -h {endpoint} -P 3306 -u {mymasteruser} -p {databasename} < dump.sql
 
 {endpoint} ͸ AWS Management Console ͷ RDS ৘ใͰ֬ೝͰ͖·͢ɻ
 {mymasteruser} ͱ {databasename} ͸ RDS ࡞੒࣌ʹࢦఆͨ͠΋ͷΛೖྗ͍ͯͩ͘͠͞

Slide 22

Slide 22 text

wp-config.php ͷฤू // ** MySQL settings - You can get this info from your web host ** // $db_data = false; if ( file_exists('/opt/aws/cloud_formation.json') ) { $db_data = json_decode(file_get_contents('/opt/aws/ cloud_formation.json'), true); if ( isset($db_data['rds']) ) { $db_data = $db_data['rds']; $db_data['host'] = $db_data['endpoint'] . ':' . $db_data['port']; } } if ( !$db_data ) { $db_data = array( 'database' => 'RDS_DATABASE_NAME_HERE', 'username' => 'RDS_USER_NAME_HERE', 'password' => 'RDS_PASSWORD_HERE', 'host' => 'RDS_ENDPOINT_HERE', ); }

Slide 23

Slide 23 text

wp-config.php ͷฤू RDS_DATABASE_NAME_HERE: σʔϕʔεͷৄࡉઃఆͰઃఆࡁΈͷσʔλϕʔε໊ RDS_USER_NAME_HERE: σʔλϕʔεͷ֤छઃఆͰઃఆࡁΈͷϢʔβ໊ RDS_PASSWORD_HERE: σʔλϕʔεͷ֤छઃఆͰઃఆࡁΈͷύεϫʔυ RDS_ENDPOINT_HERE: RDS ͷΤϯυϙΠϯτ wp-config.php ΁্ͷઃఆΛೖΕͨ͋ͱ WordPress ʹ઀ଓͰ͖Δ͔͔͘Μ͍ͯͩ͘͠͞ɻ

Slide 24

Slide 24 text

AMIMOTO AMI ͷ MySQL ΛࢭΊΔ MySQL Λ RDS ΁Ҡಈͤ͞Δͱ AMIMOTO AMI ಺ͷ MySQL ϓϩηε͕ෆཁʹͳΓ·͢ɻ ઃఆϑΝΠϧΛฤूͯ͠ MySQL ϓϩηεΛऴ͍ྃͤͯͩ͘͞͞ɻ AMIMOTO AMI Ͱ͸ϛυϧ΢ΣΞͷઃఆ͸ /opt/local/amimoto.json ʹ͋Δ 
 chef-solo Λ࢖͍ͬͯ·͢ɻ

Slide 25

Slide 25 text

AMIMOTO AMI ͷ MySQL ΛࢭΊΔ MySQL Λ RDS ΁Ҡಈͤ͞Δͱ AMIMOTO AMI ಺ͷ MySQL ϓϩηε͕ෆཁʹͳΓ·͢ɻ ઃఆϑΝΠϧΛฤूͯ͠ MySQL ϓϩηεΛऴ͍ྃͤͯͩ͘͞͞ɻ AMIMOTO AMI Ͱ͸ϛυϧ΢ΣΞͷઃఆ͸ /opt/local/amimoto.json ʹ͋Δ 
 chef-solo Λ࢖͍ͬͯ·͢ɻ 
 MySQL Λఀࢭͤ͞Δʹ͸ϑΝΠϧΛ࣍ͷΑ͏ʹॻ͖׵͍͑ͯͩ͘͞:
 {
 "nginx" : { "config" : { "user" : "nginx", "group" : "nginx" } },
 "php" : { "config" : { "user" : "nginx", "group" : "nginx" } },
 "mysql" : { "enabled" : false },
 "phpfpm" : { "enabled" : true },
 "run_list" : [ "recipe[amimoto]" ]
 }

Slide 26

Slide 26 text

AMIMOTO AMI ͷ MySQL ΛࢭΊΔ AMIMOTO AMI HHVM ൛ͷ৔߹͸ҎԼͷΑ͏ʹมߋ͍ͯͩ͘͠͞: { "nginx" : { "config" : { "user" : "nginx", "group" : "nginx" } }, "php" : { "config" : { "user" : "nginx", "group" : "nginx" } }, "mysql" : { "enabled" : false }, "hhvm" : { "enabled" : true }, "run_list" : [ "recipe[amimoto]" ] }

Slide 27

Slide 27 text

AMIMOTO AMI ͷ MySQL ΛࢭΊΔ ࠷ޙʹ࣍ͷίϚϯυΛ࣮ߦ͍ͯͩ͘͠͞:
 
 $ sudo /opt/local/proviosion 
 $ mysql stop service

Slide 28

Slide 28 text

ja.amimoto-ami.com/slack ࣭͝໰͓ड͚͍ͨ͠·͢:

Slide 29

Slide 29 text

@Amimoto_Ami amimoto-ami.com THANK YOU! AMIMOTO (HHVM) + AMAZON RDS