Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EC2の起動テンプレートをAWSCLIで作ってみた

amarelo_n24
October 28, 2021

 EC2の起動テンプレートをAWSCLIで作ってみた

2021/10/28 JAWS-UG朝会 #26 登壇資料

amarelo_n24

October 28, 2021
Tweet

More Decks by amarelo_n24

Other Decks in Education

Transcript

  1. EC2の起動テンプレートをAWS CLIで作ってみた
    2021/10/28
    JAWS-UG 朝会

    View Slide

  2. 自己紹介
    名前 :藤田 直幸
    Twitter :@amarelo_n24(コーヒー焙煎人兼エンジニア)
    Facebook:https://www.facebook.com/naoyuki.fujita.37
    取得済AWS認定 :CLF、SAA、DVA
    今後の受験予定 :SOA、SCS
    好きなAWSサービス:AWS CLI、AWS CloudShell、Cloud9

    View Slide

  3. 2021/10/13 に開催されたJAWS-UG金沢支部×初心者支部 コラボ
    イベントAmazon EC2 Auto Scalingスケーリング基礎編ハンズオン
    の復習をAWS CLIでやってみました。
    イベントページ
    https://jawsug-kanazawa.doorkeeper.jp/events/128283
    AWS Hands-on for Beginners Amazon EC2 Auto Scalingスケーリング基礎編ハンズオン手順書
    https://zenn.dev/jawsug_kanazawa/books/auto-scaling-2021-confirmation

    View Slide

  4. Auto Scalingの話をしようと思っていましたが、
    起動テンプレートの作成で気づきがありましたので、
    その話をしようと思います。

    View Slide

  5. 1.起動テンプレートとは
    2.起動テンプレートの作成
    3.まとめ
    話すこと

    View Slide

  6. 1. 起動テンプレートとは

    View Slide

  7. ・EC2インスタンスを起動するための設定情報。
    - AMI、インスタンスタイプ、セキュリティグループ等
    ・Auto Scalingグループ作成時にEC2インスタンス設定に使える。
    ・1つ以上のバージョンを作成できる。
    - 既存の起動テンプレートを再利用して、別バージョンを作成できる。
    - 不要になったバージョンは削除できる。
    起動テンプレートとは(簡単に)

    View Slide

  8. 2.起動テンプレートの作成

    View Slide

  9. ユーザーデータのテキストファイルを作成
    起動テンプレートに登録するユーザーデータの作成

    View Slide

  10. CLIでユーザーデータを読み込ませる場合、base64エンコードが必要。
    ユーザーデータのbase64エンコード
    普通にエンコードすると改行が入るため、
    sed –z ‘s/¥n//g’ で
    改行を取り除く必要がある。
    やらないとエラーになるため、ここで少しハマった。

    View Slide

  11. そもそもなぜGUIではユーザーデータ入力できるのに、
    CLIではbase64エンコードが必要??
    ユーザーデータのbase64エンコード
    ここにユーザーデータbase64エンコード値を
    入力できるということは、
    エンコードしていないデータを入れた場合は、
    base64エンコードされてテンプレート作成さ
    れている?

    View Slide

  12. 起動テンプレート設定JSONファイルの作成
    SecurityGroupIdsの値は、Stringでは
    なくリスト。[](角カッコ)で囲う必要がある。
    これを見落としていてハマった。

    View Slide

  13. EC2コマンドのサブコマンド[create-launch-template]で作成。
    JSON形式で結果が表示されれば成功。
    起動テンプレート作成

    View Slide

  14. GUIで起動テンプレートとユーザーデータ設定確認
    やはり裏ではbase64エンコード
    情報を持っていて、画面表示時に
    デコードしている?

    View Slide

  15. 起動テンプレートの詳細は、サブコマンド[describe-launch-templates]で確認。
    CLIで起動テンプレートの詳細を確認

    View Slide

  16. サブコマンド[describe-launch-template-versions]で確認する。
    CLIで起動テンプレートのバージョンの確認

    View Slide

  17. ユーザーデータは、base64エンコードされたテキストデータで保存されていた。
    やはりGUI画面表示時にデコード表示している(と思われる)。
    CLIで起動テンプレートのバージョンの確認

    View Slide

  18. 3.まとめ

    View Slide

  19. ・起動テンプレートの作成をAWS CLIでやってみました。
    ・ユーザーデータをbase64エンコードして作成することに
    疑問だったけど、GUIとCLI両方で確認して納得!
    ・ハンズオンの復習はGUIとCLI両方でやった方が、仕組みが
    良くわかる!
    ・Auto Scalingそのもののこと、今回のハンズオンをCLIで実行
    した手順については、LT登壇かブログ執筆したい!
    まとめ

    View Slide

  20. AWS Hands-on for Beginners Amazon EC2 Auto Scalingスケーリング基礎編ハンズオン手順書
    https://zenn.dev/jawsug_kanazawa/books/auto-scaling-2021-confirmation
    AWS Hands-on for Beginners Amazon EC2 Auto Scaling スケーリング基礎編
    https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Auto_Scaling-2021-reg-
    event.html?trk=aws_introduction_page
    Amazon EC2 Auto Scaling (ユーザーガイド)
    https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-
    scaling.html
    起動テンプレート(ユーザーガイド)
    https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/LaunchTemplates.html
    AWS CLI Command Reference
    https://docs.aws.amazon.com/cli/latest/reference/autoscaling/index.html
    参考文献

    View Slide

  21. View Slide