Slide 1

Slide 1 text

AWSΛGUIͰૢ࡞͢Δͷ͸ தֶੜ·ͰͩΑͶʙʂ ਆށσδλϧɾϥϘ ᖛɹਅҰ ਆށσδλϧɾϥϘ Πϯϑϥษڧձ AWSษڧձ #2

Slide 2

Slide 2 text

ͯ͞ɾɾɾ ·ͣॳΊʹͰ͕͢ɺ

Slide 3

Slide 3 text

օ͞ΜɺAWSϦιʔεΛ ίʔυͰ؅ཧͰ͖ͯ·͔͢ʁ

Slide 4

Slide 4 text

͑ʁ·ͩϚωʔδϝϯτίϯ ιʔϧʂʁ

Slide 5

Slide 5 text

Ϛ ω ʛ δ ϝ ϯ τ ί ϯ ι ʛ ϧ ⁉︎ G U I த

Slide 6

Slide 6 text

ܾͯ͠ɺࠓ·ͰͷൃදΛ disΓ͍ͨΘ͚Ͱ͸͍͟͝·ͤΜ (ʀ´Дʆ)

Slide 7

Slide 7 text

ͱ͍͏Θ͚Ͱɺࠓ೔͸ AWSΛίʔυͰૢ࡞ɾ؅ཧ͢Δ

Slide 8

Slide 8 text

ͻ͍ͯ͸ࠓ೔͸ CLI (Command Line Interface) ʹ͍͓ͭͯ࿩͍ͨ͠͠Ͱ͢ɻ

Slide 9

Slide 9 text

୭Ͱ͔͢ʁ { ɹɹ“Myself”:{ ɹɹɹɹ“Name”: “Shinichi Hama (ᖛɹਅҰ)”, ɹɹɹɹ“BelongTo”: “Kobe Digital Labo Inc. WEB Section (גࣜձࣾਆށσδλϧϥϘ ιϦϡʔγϣϯຊ෦ WEBηΫγϣϯ)”, ɹɹɹɹ“Role”: “Infrastructure Engineer (ΠϯϑϥΤϯδχΞ)”, ɹɹɹɹ“LikeAWSService”:[ ɹɹɹɹɹɹ{ ɹɹɹɹɹɹɹɹ“AWS Service”: “Amazon S3”, ɹɹɹɹɹɹɹɹ“AWS Service”: “AWS IAM” ɹɹɹɹɹɹ} ɹɹɹɹ], ɹɹɹɹ“Histrory”: [ ɹɹɹɹɹɹ{ ɹɹɹɹɹɹɹɹ"TheNumberOfYearsWorked": 3(৽ଔೖࣾࡾ೥໨Ͱ͢ɻ), ɹɹɹɹɹɹɹɹ”RoutineWork”: "E-Commerce Site developments and SysOps work (ECαΠτͷ։ൃɺӡ༻อकΛͯ͠·͢)" ɹɹɹɹɹɹ} ɹɹɹɹ], ɹɹ} } [hama@Macbbok] ~ % aws-shell aws> kdl describe-presenter

Slide 10

Slide 10 text

΍ͬͱຊ୊Ͱ͢ɻ

Slide 11

Slide 11 text

։ൃݱ৔ͷΠϯϑϥ୲౰ͷ೰Έ ͦ΋ͦ΋ΠϯϑϥͰ͖Δਓ͕ؒগͳ͍ɻ

Slide 12

Slide 12 text

։ൃݱ৔ͷΠϯϑϥ୲౰ͷ೰Έ ͍͍ͩͨಉ͡࡞ۀͷ܁Γฦ͠ ৽ָͯͦ͘͠͠͏ͳҊ݅ͱ͔͸֎஫͞ΕΔ orz • ๞͖Δɻ • ϛεΔɻ • ౖΒΕΔɻ • ධՁ͕Լ͕Δɻ ͍΍͔ͯɺͦ΋ͦ΋͏·͘Ͱ͖ͯ΋ධՁ͞Εͳ͍… Πϯϑϥ͸Քಇͯͯ͠౰ͨΓલɺࢭ·ΔͱධՁ͕͕͞Δɻ

Slide 13

Slide 13 text

ཧෆਚͩʂʂʂʂʢٽʣ

Slide 14

Slide 14 text

։ൃݱ৔ͷΠϯϑϥ୲౰ͷ೰Έ • AWSΛ࢖ͬͯͯ΋ҰॹɻGUIͰѻͬͯΔݶΓɺखॱͱ͍ ͏ྨΛ࢒͠ʹ͘͘ɺޙ೚΋Ͱ͖ͣɺͣͬͱਓґଘͷ··ɻ • ಉ͡࡞ۀʹ͔͚࣌ؒͨ͘ͳ͍ɻϛεΓͨ͘ͳ͍ɻ • Πϯϑϥ୲౰ͩͬͯɺ׬શʹ٬؍Խ͠ɺཧղͯ͠Δ࡞ۀ ͘Β͍͸ࣗಈԽ͍ͨ͠ʂʂʂʂ

Slide 15

Slide 15 text

ࣗಈԽʹΑΔ ҆ఆԽɾܧଓԽΛ໨ࢦ͢ʂ

Slide 16

Slide 16 text

ίʔυͰAWSΛѻ͏͜ͱͰ શͯղܾʂʂʂ

Slide 17

Slide 17 text

ࠓ೔࿩͢͜ͱɾ࿩͞ͳ͍͜ͱ •࿩͢͜ͱʢΞδΣϯμʣ 1.AWSͷྑ͍ͳʔͬͯࢥ͏ͱ͜Ζ 2.AWS-CLIʹ͍ͭͯ 3.Infrastructure as code 4.CLIҎ֎ʹ΋(CloudFormation,CatalogService) •࿩͞ͳ͍͜ͱ •CloudFormationͷৄࡉͳ࢖͍ํͱ͔ɺ ࡉ͔͍αʔϏεͷઆ໌

Slide 18

Slide 18 text

AWSͷྑ͍͍ͳʔͬͯࢥ͏ͱ͜Ζ ৭ʑ͋Δ͚Ͳɺ ͣ͹Γɺ “ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ ɹɹɹɹɹɹɹ ” ͩͱ๻͸ࢥ͍·͢ɻ ϚωʔδϝϯτίϯιʔϧͰͰ͖Δ͜ͱͷ΄΅શͯͷૢ࡞͕API Ͱఏڙ͞Ε͓ͯΓɺCLI΍ɺSDKʹΑΔ֤ݴޠͰAWSϦιʔεΛ ѻ͏͜ͱ͕Ͱ͖Δ͜ͱ

Slide 19

Slide 19 text

AWS-CLI ࢖͍·͠ΐ͏ʂ

Slide 20

Slide 20 text

CLI͕ͳ͍ͱ͖ʂ ͜Μͳ΋ͷͷखॱॻ͕͍Δͬͯͳͬͨ೔ʹ͸΋͏ʂʂ ͑ɺ΋ͪΖΜઃܭॻ΋͍Γ·͢Αʁ

Slide 21

Slide 21 text

CLI͕͋Δͱ͖ʂ [hama@Macbbok] ~ % aws ec2 run-instances --image-id ami-374db956 --count 1 --instance-type t2.micro --key-name hama_test_id_rsa --security-group-ids sg-××××××× --subnet-id subnet-××××××× --associate-public-ip- address | jq . { "OwnerId": "××××××××××", "ReservationId": "r-××××××××××××", "Groups": [], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": "", "RootDeviceType": "ebs", "State": { "Code": 0, "Name": "pending" }, "EbsOptimized": false, "LaunchTime": "2016-10-02T17:16:34.000Z", "PrivateIpAddress": "10.0.4.101", "ProductCodes": [], "VpcId": "vpc-××××××××", "StateTransitionReason": "", "InstanceId": "i-×××××××××××××××××", "ImageId": "ami-374db956", "PrivateDnsName": "ip-10-0-4-101.ap-northeast-1.compute.internal", "KeyName": "hama_test_id_rsa", ɾ ɾ ɾ ʙҎԼলུʙ ͜Μ͚ͩͰ͢ɻ ͦͯ͠CLI͸JSONΛಡΈࠐΜͰ࣮ߦ΋Ͱ͖ΔͷͰɺ ͦͷjsonΛ࢒͓͚ͯ͠͹ɺͦΕ͕ઃܭॻʹͳΓ·͢ɻ จࣈ௨ΓɺίʔυͰ؅ཧͰ͖Δɻ

Slide 22

Slide 22 text

AWS-CLIΛ࢖͓͏

Slide 23

Slide 23 text

AWS-CLIΛ࢖͓͏ •for MAC(or for Linux) •PIPͷΠϯετʔϧ $ sudo easy_install pip (MACͷ࣌) •aws-cliͷΠϯετʔϧ $ sudo pip install awscli •for Windows ϒϥ΢β͔Βμ΢ϯϩʔυͨ͠Β ↓Έ͍ͨͳΠϯετʔϥʔ͕μ΢ϯϩʔυ͞ΕΔͷͰ ɹ͋ͱ͸ྲྀΕʹ਎Λ೚͍ͤͯͩ͘͞ʢgg͍ͬͯͩ͘͞ɻʣ

Slide 24

Slide 24 text

$ aws configure AWS access key ID [**ABCD]: AWS secret access key [****************EFGH]: Default region name [ap-northeast-1]: Default output format [None]:

Slide 25

Slide 25 text

σϞ

Slide 26

Slide 26 text

aws-cliΛ࢖͏্Ͱͷิ଍ɾ஫ҙ •CLIʹݶΒͣͰ͕͢ɺඞཁҎ্ʹIAMϢʔβʹݖݶΛ ༩͑ͳ͍Α͏ʹ͠·͠ΐ͏ɻ •ϩʔΧϧ͔Β࣮ߦ͢Δࡍ͸ɺaws-configureͰೝূ৘ใΛ อ࣋ͤ͟͞ΔΛಘ·ͤΜ͕ɺEC2ͷαʔό্͔ΒCLIͰ awsϦιʔεΛૢ࡞͢Δࡍ͸ɺIAMϩʔϧΛEC2ʹ෇༩͢Δɻ • جຊ̍linerͰͷCLIͷར༻͸ආ͚·͠ΐ͏ɻΉ͠ΖjsonΛಡ·ͤΔ Α͏ͳCLIͷ࢖͍ํΛ͍ͯͩ͘͠͞ɻ

Slide 27

Slide 27 text

aws-shellΛ࢖ͬͯΈΑ͏ • aws-cliศར͚ͩͲɺͦͷ൓໘ɺଟػೳա͗ͯαϒίϚϯυ໊ ΍Φϓγϣϯ໊ɺΦϓγϣϯͷ࢖͍ํΛ֮͑Δͷ͕େมɻ • ͦΕͳΒGUIͰ͍͍͔ͳʔ • ͦΕ͡Ό͍ͭ·Ͱͨͬͯ΋தֶੜͷ··Ͱ͢ʂ • ࿅श͠·͠ΐ͏ʂ ͦΜͳ͋ͳͨʹɺaws-shellʂʂ

Slide 28

Slide 28 text

aws-shellΛ࢖ͬͯΈΑ͏ •αδΣετʗΦʔτίϯϓϦʔτ •αϒίϚϯυ •Φϓγϣϯ •ΦϓγϣϯʹԠͨ͡஋ •AWSϦιʔε •ϑΝδʔݕࡧ •ϔϧϓදࣔ •γΣϧίϚϯυ •ϓϩϑΝΠϧαϙʔτ •ཤྺ؅ཧ ҎԼͷػೳʹରԠ

Slide 29

Slide 29 text

aws-shellΛ࢖ͬͯΈΑ͏ Πϯετʔϧ͸ $ pip install aws-shell ͷΈʂ

Slide 30

Slide 30 text

σϞ̎

Slide 31

Slide 31 text

jqͷεεϝ • ࠷ऴతʹ͸CLI୯ମͰ࢖͏ͷͰ͸ͳ͘ɺCLIͷ݁ՌΛ͞Βʹ࢖ͬͯɺॲཧ Λߦ͏Α͏ͳεΫϦϓτʹΑΔ࡞ۀͷࣗಈԽ͕ਐΉ͜ͱʹͳΔɻ • jqίϚϯυͱ͸JSON͔Β؆୯ʹ஋Λൈ͖ग़ͨ͠Γɺूܭͨ͠Γɺ੔ܗ͠ ͯදࣔͨ͠ΓͰ͖ΔJSON༻ͷgrepͱ͔awkΈ͍ͨͳίϚϯυɻ • awsίϚϯυͷϨεϙϯεΛjsonܗࣜʹ͓ͯ͘͠ͱɺ͜ͷjqͱ૬ੑ͕ඇৗ ʹΑ͘ɺجຊతʹηοτͰ࢖ΘΕͯ·͢ɻ

Slide 32

Slide 32 text

jqͷεεϝ •୯७ͳ࢖͍ํ͸άά͍ͬͯͨͩ͘ͱͯ͠ɺҎԼͷΑ͏ͳ࢖͍ํͰ࢖ͬͨΓ͠·͢ɻ 1.Value͚ͩදࣔ $ aws ec2 describe-instances | jq '.Reservations[].Instances[].Tags[].Value' "app.example.com" "db.example.com" "elasticsearch.example.com" "example.com" 2.ϓϥΠϕʔτIPΞυϨεͱTagʢName)Λλϒ۠੾ΓͰදࣔ $ aws ec2 describe-instances | jq -r '.Reservations[].Instances[] | .PrivateIpAddress + "\t" + .Tags[].Value' 192.168.1.125 app.example.com 192.168.1.14 db.example.com 192.168.1.250 elasticsearch.example.com 192.168.1.230 example.com

Slide 33

Slide 33 text

CLIҎ֎ͷαʔϏε •CloudFormation •ࣗ෼͕࡞Γ͍ͨ؀ڥΛఆٛͨ͠ϑΝΠϧ(template)Λ࡞ͬͯɺͦ ͷఆٛॻΛಡΈࠐΜͰࣗಈͰ؀ڥΛ࡞ͬͯ͘ΕΔαʔϏεɻ •AWSͷϦιʔε୯ҐͰ͸ͳ͘ɺVPCͷωοτϫʔΫͱ͔΋ؚΊ ͨશͯͷ؀ڥ୯ҐͰͷΠϯϑϥߏஙͷࣗಈԽΛߦ͏ɻ CLIͰͷ؅ཧʹ͑͞׳Ε͖ͯͨΒૣʑͱͬͪ͜ʹҠΓ·͠ΐ͏ɻ

Slide 34

Slide 34 text

cloudFormationΠϝʔδ

Slide 35

Slide 35 text

Infrastructure as code •AWSͱ͍͏Ϋϥ΢υαʔϏεΛϑϧʹ׆༻͢Δ͜ͱͰɺ Infrastructure as codeΛ࣮ݱ͢Δɻ •Πϯϑϥ΋ͦͷଞͷιʔείʔυͱ෼ִ͚ͯͳ͘ɺ؅ཧɾӡ༻Ͱ ͖Δ࣌୅͕དྷͨɻ •ΠϯϑϥΤϯδχΞͷઐ໳ੑ͸Լ͕Δͱࢥ͏ɻ •ϑϧελοΫͳΤϯδχΞΛ໨ࢦ͢ͷ͔ɺΫϥ΢υαʔϏεΛ׬ ᘳʹ࢖͍͜ͳ͢ʰεʔύʔΠϯϑϥΤϯδχΞʱʹͳΔͷ͔ͷબ ୒ͷ೔͸͍ۙͱײ͡Δɻ

Slide 36

Slide 36 text

·ͱΊ •AWS-CLIΛͱΓ͋͑ͣ࢖ͬͯΈΔͱ͜Ζ͔Β࢝Ί·͠ΐ͏ɻ ɹ→࢖͑͹Θ͔Δ͜ͱͷํ͕ଟ͍ ɹˠ͋ͱ৭ʑۀ຿తʹศརɻ •infrastructure as codeʹΑΔࣗಈԽ͸खஈͰ͋ͬͯɺ໨తͰ͸ͳ͍ɻ →ࣗ෼ͨͪͷ΍͍ͬͯΔ͜ͱͷ҆ఆԽɾܧଓԽΛ໨తͱͯ͠ ɹࣗಈԽͱ͍͏खஈͰɺߏ଄Խ͞Εͨۀ຿ͷҰ෦ΛࣗಈԽ͢Δɻ • શͯͷਓ͕AWSΛCLIͰҙຯ΋஌Βͣʹѻ͏ͷ͸ɺ۪ࡦɻ • Ͱ΋ɺΠϯϑϥΛAWSΛઐ໳తʹ΍Ζ͏ͱ͍ͯ͠Δզʑ͘Β͍͸ͤΊͯCLI Ͱѻ͑ΔΑ͏ʹͳ͓ͬͯ͘͜ͱ͕ɺॾʑ͍ΖΜͳ৔໘Ͱ໾ʹͨͪ·͢ɻ

Slide 37

Slide 37 text

ALL You Need Is Code !!