$30 off During Our Annual Pro Sale. View Details »

AWSをGUIで操作するのは中学生までだよねー

 AWSをGUIで操作するのは中学生までだよねー

2016/10/03
KDLインフラ勉強会 AWS勉強会#2

Shinichi Hama

October 03, 2016
Tweet

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. ୭Ͱ͔͢ʁ
    {
    ɹɹ“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

    View Slide

  10. ΍ͬͱຊ୊Ͱ͢ɻ

    View Slide

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

    View Slide

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

    View Slide

  13. ཧෆਚͩʂʂʂʂʢٽʣ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. AWS-CLI
    ࢖͍·͠ΐ͏ʂ

    View Slide

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

    View Slide

  21. 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Λ࢒͓͚ͯ͠͹ɺͦΕ͕ઃܭॻʹͳΓ·͢ɻ
    จࣈ௨ΓɺίʔυͰ؅ཧͰ͖Δɻ

    View Slide

  22. AWS-CLIΛ࢖͓͏

    View Slide

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

    View Slide

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

    View Slide

  25. σϞ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  30. σϞ̎

    View Slide

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

    View Slide

  32. 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

    View Slide

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

    View Slide

  34. cloudFormationΠϝʔδ

    View Slide

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

    View Slide

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

    View Slide

  37. ALL You Need Is Code !!

    View Slide