AWS運用専門の勉強会「Ops JAWS#4」に登壇してきました #jawsug #opsjaws

2016.03.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS運用管理コミュニティが主催するAWS運用に関する勉強会Ops JAWS#4 - OpsJAWSOps JAWS#2に参加、登壇のレポートです。

雰囲気

19時にはほぼいっぱいになりました。

opsjaws_opening

酒徳さんのご挨拶、Amirの乾杯のご発声にてOpsJAWS開演。

AWS OpsWorksがOpsJAWSにやってきた!

OpsWorksの概要

まずは、AWSJ舟崎さんよりOpsWorksの概要説明

  • アプリケーションのライフサイクル管理サービス
    • 構成管理
    • デプロイ
    • 自動化
  • EC2インスタンス起動の後の作業をリモート(ログインせずに)から全て自動化できる
    • ソフトウェアインストール
    • アプリケーションのデプロイ
  • OpsWorksの動作概要
    • EC2の中にChefエージェントが定期的にOpsWorksと通信し、発行された一連のコマンドを取得
    • Chef Clientのローカルモードでレシピを実行
  • 注意事項
    • 実体はEC2インスタンスなので、SSH/RDPログインしての作業も可能

OpsWorksによる運用管理

そして、AWS OpsWorks Product ManegerであるAmir Golan氏が登壇。

  • Operation using AWS OpsWorks(本日のアジェンダ)
    • Why do you need OpsWorks?(なぜOpsWorksを使うの?)
      • model and group your applications(本番、ステージング等のようにモデリングとグルーピング)
      • manage the life-cycle of your instanes(インスタンスのライフサイクル管理)
      • contraol access management(RDP/SSHログインなどのアクセス権限制御)
      • monitor the health of your resources(専用のMetricsで監視)
      • analyze logging information(トラブル時のログ解析)
      • mitigate operational problems(障害復旧)
  • Configure your instances using AWS OpsWorks(OpsWorksを使ってインスタンス制御)
    • Uses Chef to configure the software on the instances(Chefを使ってソフトウェア設定)
    • associates runbooks(i.e. Chef cookbooks) with your instances(runbookをインスタンスと紐付け)
    • appplies runbook configuration changes using life-cycle events(ライフサイクルイベントを利用してrunbookを修正)
  • Model your applications and group your applications(アプリケーションのモデリング、グルーピング)
    • StackとLayerを活用して、Flexibleにリソースを管理可能
  • Lifecycle events(ライフサイクルイベント)
    • Setupイベント
      • インスタンスブート時に毎回呼ばれる
      • パッケージインストール等
    • Configureイベント
      • インスタンスのステータス変更と連動して呼ばれる
      • 設定情報が最新か確認
    • Deployイベント
      • 新しいバージョンのデプロイ時に呼ばれる
    • アプリを構築する場合の例
      • Setupイベント、Deployイベントはフローに従って実行
      • 構成変更(DBサーバ追加、Appサーバ追加)を契機にConfigureイベントで設定を適切に修正
      • 新しいレシピの単体実行も可能
  • How does the AWS OpsWorks magic happen?(OpsWorksの仕組み)
    • インスタンスがOpsWorksにKeepAlive HeartBeatを送り、LifeCycleイベントを受信
    • OpsWorksからjsonの構成ファイルが格納されたS3へのポインタを取得
    • インスタンスがjson構成ファイルをダウンロード
    • pull cookbookds and other build assets from your repo(cookbookを取得)
    • execute cookbooks(cookbook実行)
    • upload run log(ログをアップロード)
    • report on run status(ステータスをレポート)
  • OpsWorks Access Management(アクセス制御)
    • provide Iam Users, SSH/RDP and sudo admin privileges(IAMユーザ、SSH/RDP、sudo等の権限管理が可能)
    • provided limited access on a group level(Stack単位等で権限制御が可能)
    • 特定の時間だけアクセスさせる設定も可能
  • Monitor the OpsWorks status(監視)
    • 14 free one miniute metrics (Cpu, Memory, Load, Proocess Count, 等の1分間隔で参照できる14のメトリクス)
    • Aggregation on the group level (OpsWorks Stack, Layer層で集約して管理)
    • CloudWatch optimized dashboards (最適化されたダッシュボード)
  • Analyze Loggging Information(ログ分析)
    • Troubleshoot Chef run results(Chef実行ログを使ってトラブルシュート)
    • Track application logs using CloudWatch Logs(CloudWatch Logsとの連携も可能)
  • OpsWorks Usage Examples(利用例)
    • bash shell script実行デモ
      • オンラインになっているEC2インスタンスにコマンド実行
      • json形式の定義情報を渡す
      • 数十秒ですぐにログを出力することが可能
      • 不具合が必要な場合に、必要な情報を通知または復旧作業そのものを実行できる
    • Permissions設定画面からsudoの権限を追加デモ
      • AWSマネージメントコンソールからチェックボックスで簡単にアクセス制御可能
  • How do I Get Started with OpsWorks?(何から始める?)
    • grab some community cookbooks(コミュニティcookbook活用)
      • https://supermarket.chef.io/
    • learn more(公式ドキュメント)
      • https://aws.amazon.com/opsworks/
    • get started(AWSマネージメントコンソールから)
      • https://console.aws.amazon.com/opsworks/

CloudWatch Events Hands-on

ハンズオンの講師をやらせて頂きました。

使用したLambdaのコードは以下です。

[gist id="5b1df9e90e20fe173685"]

参加者の皆さんが非常にAWSに精通された方で、ほとんどサポート無しで進めました!素晴らしい!
上記の手順でやられた場合、必ず最後にルールの削除、もしくはDisableを行って下さい。
サーバが起動できなくなります。

非常に楽しかったです!!

まとめ

JAWSのイベントにAWSのPMの方が来るという異色の回となったこともあり、ものすごい数の来場者数でした。
次回は4/20(水)にOpsJAWS #5が開催予定とのことですので、興味ある方は是非お越しください。