amareloのブログ(仮)

IT系勉強会で感じた想いや知見をメインに書いていきます。

JAWS-UG朝会 #26 参加レポート

10/28 JAWS-UG朝会 #26 に参加しました。 昨日、#27が行われましたが、#26のレポートを書いておいて公開していませんでした(汗) 今更ですいませんが、公開します。

目次

イベントページ

jawsug-asa.connpass.com

セッション① AWSソリューションのCFnで学ぶNaC NTTデータ 山本 泰士さん

  • TransitVPCとは?

    • 中継デバイスを経由し、VPCやオンプレミス間を中継するHubネットワーク
    • SpokeVPCのVGWにタグを追加するだけで、自動的にTransitVPC~SpokeVPC間のIPsecトンネルを確立・接続する。
      • 手動作業はVGWに特定のタグを付与するところのみ。
    • TransitGatewayやAutoScalingなどのサービスを組み合わせたり、vSRXやFortiGate、CISCO以外の機器を組み合わせることもできる。
      • AutoScalingと組み合わせた場合は、トラフィックに応じてSCR自動増減。スケーラビリティ向上。
  • TransitVPCのCloudFormation

    • Parametersセクション
      • スタック作成時に自由にパラメータ設定可能(デフォルト値もある)
        • 既存スタック・リソースのパラメータとの重複などは十分なケアが必要。
    • Resourceセクション
  • カスタムリソースとは?

    • 所定の書式でリソースを定義することで、関連付けられたLambdaを呼び出し、自由度の高いロジックを実装することが可能。
      • 呼び出し先はLambda、SNSも可能
  • TransitVPCのカスタムリソース

    • S3イベント作成の流れ(CloudFormationでタイプ指定できない例)
      • S3バケットにパラメータが格納されたことをトリガとしてLambda送信するように、S3にイベント通知を設定
    • RSAキー作成の流れ(CloudFormationテンプレートだけで実装できない一例)
      • 秘密鍵・公開鍵・フィンガープリントを生成・格納・設定し、Configurator関数がCSR1000vにアクセスできるよう設定
  • コード理解の不足による失敗談

    • 意図しないTransitVPC~SpokeVPC間の接続
      • 別のTransitVPCと同じタグを設定し、別のTransitVPC~SpokeVPC間で接続した。
    • AMI ID差異によるプロビジョニング失敗
      • MarketPlace内のAMIは更新していたが、CloudFormationテンプレートが更新されておらず、本番環境でプロビジョニング失敗した。
  • まとめ

    • CloudFormationとLambdaの組み合わせで詳細な設定が可能
    • なんでもかんでもLambdaに書くと可読性と保守性の良さが無くなる。
      • CFnとLambdaのバランスが重要
    • CFnとLambdaの内容を理解することで、有事の際の対応が楽になる。

セッション② AWS IoTのスゴいところご紹介 アイレット株式会社 本間 崇平さん

AWS IoT について

  • AWS IoTの仕組み

    • モノとなるデバイスへ制御を伝送したり、物の情報(テレメトリー)をAWS IoTを経由してアプリへ伝送することが可能となる。
  • AWS IoT Coreについて

    • インターネットに接続されたデバイスから、クラウドアプリケーションやその他のデバイスに簡単かつ安全に通信するためのマネージド型クラウドサービス
    • 数十億個のデバイスと数兆のメッセージをサポートしている。
  • バイス通信プロトコルメッセージブローカー

    • MQTT
      • 制約のあるデバイスように設計され、軽量で広く採用されているメッセージングプロトコル
    • MQTT over WSS
    • HTTPS
    • LoRaWAN
  • メッセージブローカー

  • モノの管理

    • IoTの物とは、クラウド内部の物理デバイスの表現と記録
    • 物理デバイスAWS IoTと連携するには、物の記録が必要
      • 物の名前をMQTTクライアントIDとして使用することがAWSで推奨されている。

AWS IoT のすごいところ

  • 証明書とポリシ

    • ポリシを作成して認可アクションのセットを定義できる。
    • 一つ以上のリソースのアクションを承認可能
  • ルールアクション

    • ルールがトリガされた時に動作を指定する。
    • 機能に応じて最適なリソースを選択できる
    • ログ保存と出力
  • FleetProvisioning

    • 動的に証明書払い出して解決してくれる。
  • DeviceShadow

    • 電源状態をシャドウに保存していれば、シャドウ参照で電源ONOFFが分かる。

まとめ

  • IoTのサービスは豊富にあるためすべて網羅はできていない
  • 要件次第ではIoTのマネージメントサービスを上手く活用することがベストプラクティスな手法となる。

LT① 辛くない CloudFormation 株式会社モリサワ 小室 貴史さん

資料

speakerdeck.com

辛いCloudFormation

  • 巨大なテンプレートで読むのが大変
    • ちょっとした変更のデプロイが困難
  • そのまま投入できない物
    • 初回のみ音対応が必要でコメントアウトとか
    • テンプレート内にリソースが追加されて依存関係が発生
      • CFn内では並行してリソースが作成される。
  • クロススタック参照の多用
    • 参照元のスタックの削除変更ができなくなって運用時に困る。

辛くないCloudFormation

  • 程よい大きさのテンプレートにする。
    • リソースのライフサイクルで分ける。
  • スタック作成順は残す。
    • クロススタック参照で困らないようにする。
    • Gitにテンプレとともに保存する。
  • すべてをCFnでムリにやらない。CLIも活用する。

LT② Quick Sight Qを使ってみよう アイディーエス 小寺 加奈子さん

  • QuickSight Qとは?
    • 機械学習を利用した自然言語クエリ機能
    • 利用にはEnterPriseエディションの利用が必要
    • 現時点では日本のリージョンでは未サポート

自分のLT

speakerdeck.com

資料にも書いて発表時にも話しましたが、ハンズオンは可能な限りGUICLI両方でやった方がいいなぁと改めて思いました。 これまでもCLI専門支部で感じてきたことですが、様々なハンズオンをやるたびに気づきやつまずきがたくさんあって、 何度も何度も思い知らされます!

最後に

自分の登壇の時に画面共有に手間取ってしまったのは痛恨の極みです。。。 3か月ぶりの登壇で少し緊張していたり、新しいモニターを買ってから初めての登壇だった・・・など、色々重なっていたと思います。 でも言い訳ですね(汗)環境変更後は余裕を持った行動をしないとなと思いました。