Above & Beyond

日々のアウトプット記録

AWS DevOps祭り 2018

昨日は AWS DevOps祭り 2018(2018 年12月3日開催) に参加してきました。

classmethod.connpass.com

f:id:kabukawa:20181201115117p:plain

場所は、AWSの新しい目黒オフィスである 目黒セントラルスクエアの21F会のスペース。 AWS Loft以外の場所に入るのは初めて!(笑) f:id:kabukawa:20181203132437j:plain

しかし、会場、メチャ広いな。。。


目次


AWS DevOps祭り 2018 とは

イベントの概要を引用します。

AWSを利用したDevOpsを実践する上で役に立つ情報を集めたAWS DevOps祭りを開催します。AWS CodeシリーズやAWS CloudFormationのre:Invent アップデート情報、AWSにおけるDevOps事例の紹介を行います。

まぁ、そのまんま、ですね。AWS を使って構築する DevOps 環境などについて、情報を共有してもらえる有り難いイベントです。しかも無料!


セッション

セッションのメモを書きます。資料は公開されたら追加します!

とりあえず会場でもらった水の写真(笑) f:id:kabukawa:20181203132550j:plain


セッション1:AWS Management Tools サービス アップデートのご紹介

アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト大村 幸敬 さんの発表。

AWS CloudFormation などの AWS Management Tools 関連サービスの最新アップデート情報をどこよりも早くお伝えします。

f:id:kabukawa:20181207140213p:plain

AWS Management Tools サービス アップデートのご紹介

メモ:

直近3ヶ月からre:Invent2018までのアップデート

1,DevOpsとAWS Management Tools

Metrics For DevOps

  • 作り始めてからデプロイされるまでのストリームが重要ストリームのベロシティをどう改善するか

ベロシティ向上の阻害要因

  • 不安

ベロシティ向上のために自動化を

  • すべてを自動化する
  • どんな手順でも明確にされ自動化することは可能

オンプレミスでの開発の一般的な体制とスケジュール

  • インフラと開発のチームが別
  • 開発のプロセスが長い
  • オンプレはハードウェアがあるから仕方ない

クラウドに持っていくとどうするか?

  • そのまま持っていくとあまり変わらない
  • アプリ開発とインフラが違うチームだと結局ダメ
    →アプリとインフラ、運用を合わせてチームにすればいい。

  • アカウントの管理

  • コスト管理

運用のやり方は?

アカウントのガバナンスと洗い出しをやるチームを作れば?

運用における2つの選択肢

  • 分散化とガードレール ←早く進めるにはこちらが望ましい
  • ロックダウンと事前承認

クラウドを活用したDevOpsのポイント

  • ビジネスチームがアプリ・インフラ・運用を担当
  • 共通基盤・運用チームはパターン化した環境の提供と

2,AWS Management Tools

  • Provisioning
  • Configuration
  • Monitoring
  • Operations and

AWS Cloud Foramation

  • 250以上のAWSリソースの作成を自動化
  • リソースのアップデートを安全かつロールバック可能な形で実施
  • サーバー、コンテナ、サーバーレスいずれのアプリ携帯でも対応可能

アプリ形態によるデプロイ対象の違い

  • コンテナのほうがユーザーが管理すべき部分が少なくなるので楽になる。
  • サーバーレスも同様

AWS Service Catalog

固定のベストプラクティスを作成できる

AWS OpsWorks

  • マネージドなコンフィグレーションサーバーを提供

AWS Cloud Watch

  • ログ

AWS Config & AWS Config Rules

  • 継続的記録、継続的アセスメント

AWS CloudTrail * アカウント

AWS Systems Management

アプリとインフラのパイプライン

3,各サービスの使い所とアップデート

CFn - テンプレート開発のサポート

  • cFn-lint サービスとしてのチェック

  • cfn-nag
    セキュリティ関連のチェック

  • Taskcat
    様々な環境で動くかをチェック

  • Cloud Development Kit

  • DSLs
    色々な言語でDSL

  • VSCodeプラグインが用意された

  • 色々なもののサジェストが出るようになった

cform-VSCode

  • 雛形コードを自動生成

CloudFormationでスタック差分の検出機能をリリース

  • CFnで作成したリソース状態と現状との差分を検出できるようになった
  • スタックをデプロイをしたあとで手動で実施した変更作業によって発生した差をチェックできる
  • 現状ではサポートリソースに制限あり

Macros

  • テンプレートの標準的な機能では実現できない処理をLambda関数を呼び出すことで実現
  • 検索や置換などの単純な操作からテンプレート全体の変換をできる

Dynamic Reference

  • 他のサービスに格納されたデータを動的に参照

パラメータストアの参照

  • セキュアストリングの参照もできるようになった

AWS CDK

Systems Manager

  • メンテナンスウィンドウを定義して各種オペレーションを実行できる

  • サーバー上のコマンド実行

  • APIの呼び出し
  • Lambda関数などの呼び出し

定期的な情報収集

  • ステートマネージャー
  • インベントリ
  • Patch Manager

構成情報など

  • パラメータストア
  • ドキュメント

リソースグループ

  • リソースをグループ化して管理
  • タグエディタ

  • セッションマネージャーでマネジメントコンソールからOSへシェルアクセス

  • 通信ポートを開放せずにサーバーへのシェルアクセスが可能
  • 定期実行はRunCommandで

Automationでの任意の操作を記述可能

  • 手順を記述したyamlを実行する

Step FunctionsでAPI呼び出しができるように

  • ビジュアルに処理を記述

AWS Systems Managerパッケージ管理機能

  • Inventry及びAutomationのマルチアカウント対応

AWS Systems Managerは使ったリソースの代金以外はコスト0円。

  • Inventryとセッションマネージャー

4,Monitoring- CloudWatch

インタラクティブなログ分析を実現するCloudWatch Logs Insight

  • ElasticSearchを使わなくてもCloudWatchでできる
  • 東京も使えるようになっている
  • スキャンしたログの量による課金

Automatic Dasgboard

  • ベストプラクティスに基づいたダッシュボードの自動生成
  • 複数のメトリック計算結果に基づき、アラーム発行

グラフを外部から取得可能に

  • グラフの画像イメージをAPIで取得可能

Audit- CloudTrail&AWS Config&Config Rules

5,マルチアカウント関連のアップデート

VPCとアカウント分離レベルの違い

VPCによる分離

  • VPC間通信はデフォルトNG
  • APIアクセスは共有

アカウントによる分離

  • VPC感通信はデフォルトNG
  • API相互アクセスはデフォルトNG

PrivateLinkによるプライベートネットワーク経由によるAPIアクセス

  • 専用線だけでなくVPNでも使えるようになった。
  • ラズパイでプライベートネットワーク

マルチアカウント環境におけるガバナンスを強化する

  • AWS Control Tower

マルチアカウント管理をするときに便利な機能

クロスアカウントでのリソース共有が可能に

  • AWS Resource Access Manager
  • マルチアカウントで同じリソースを共有

複数のアカウントで1つのVPCを共有できる

Transit Gateway

  • 自分でソフトウェアルータを管理すること無く複数のVPCや拠点間を相互に接続・制御する

EFSが複数アカウントVPCからアクセス可能に

CFn StackSets

  • 一つのテンプレートを複数のAWSアカウント及び複数のリージョンに展開可能

CloudWatch Event Bus

  • 異なるアカウントに対してCloudWatch Eventを発行

AWS Security Hub

  • アカウントが増えてくるとそれぞれのアカウントで起きている事象を管理するのが難しい
  • レポートが作成される。現在プレビューなので無料。

AWS Config Aggregator

AWS Systems Manager

  • Inventry及びAutomationbのマルチアカウント対応

アカウントレベルの払い出し管理がより容易に


セッション2:AWS Developper Tools サービス アップデートのご紹介

アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 福井 厚 さんの発表。

AWS Code シリーズなどの AWS Application Development 関連サービスの最新アップデート情報をどこよりも早くお伝えします。

f:id:kabukawa:20181207140315p:plain

AWS Developper Tools サービス アップデートのご紹介

メモ:

re:Invent 2018で発表されたサービス、及びサービスのアップデートの紹介

  • AWS Developper Toolsとは
  • re:Invent 2018で発表された最新アップデート
  • re:Invent 2018以前のアップデート

AWS Developper Toolsとは?

  • Source
  • Build
  • Test
  • Deploy
  • Monitor

AWS Cloud9

  • クラウドベースのIDE
  • ブラウザのみでコーディング、実行、デバッグ
  • リアルタイムでペアプロを可能
  • ダイレクトなターミナルアクセス
  • サーバーレスの優れた開発環境を提供
  • フル機能のエディタ
  • 幅広いランタイムのサポート
  • フル機能のデバッガ

AWS CodeStar

  • AWS上でのアプリケーションの展開、デプロイ、ビルド
  • 様々なテンプレートが予め用意されている
  • 裏ではCFnが動いている
  • 管理するためのコンソールを提供

AWS CodeCommit

  • Git互換の量料無制限のサービス
  • バックエンドはS3を使っている
  • Post Commit Huckを提供しているのでSNSやLambda 関数を呼び出し可能

AWS CodeBuild

  • フルマネージドのビルドサービス
  • 継続的なスケールと同時実行ビルド
  • Dockerイメージで提供されている

Code Pipline

AWS Developper Toolsアップデート

  • CodeDeployがECS/FargateへのBlue/Greenデプロイメントをサポート
  • 東京でも利用可能
  • Blue/Green Deployを実行するにはCodeDeploy IAM Roleを付ける必要がある
  • 自動的にBlue/Green Deployのモニターをする画面も自動的に生成される。
  • 失敗した場合は元のターゲットに戻る

AWS CodePipelineがECRに対応

  • CodePipelineでECRをソースプロバイダとして利用できるようになった。
  • taskdef.jsonとappspec.yaml作成
  • AWS CodePipeline

AWS Toolkit for popular IDE

  • AWS Toolkitが対応
  • PyCharm向けがリリース済み。IntelliJVSCodeがプレビュー

re:Inventでのアップデート

AWS CodeCommitがCLIとマネジメントコンソールから操作可能に

AWS CodeBuildで複数の入力ソースと出力を指定できるように

Cloud9でTypescriptのサポートを開始

CDKもTypescriptで開発されている

AWS CodeBuildでBitBucketプルリクエストのビルドをサポート

  • WebHook経由でイベント検知

BeansTalkがALBのNLBをサポート

CodePipelineの実行高速化、クロスリージョンアクションがサポート可能に

OpenJDKのLTS

GAは来年の1Q


セッション3:DevOps: 変化の激しい環境でビジネス競争力を向上させる具体的な方法

クラスメソッド株式会社 DevOps支援室 マネージャー 藤村 新 さんの発表。

クラスメソッドでは、お客様の組織における DevOps 支援を目的とした DevOps メソッドというサービスを提供しています。
本セッションでは、DevOps が生まれた背景や歴史、クラスメソッドにおける DevOps の定義、提供している DevOps 支援の具体的な内容とその導入事例、また DevOps を使ってビジネス競争力を向上させる具体的な方法についてお話します。

f:id:kabukawa:20181207140552p:plain DevOps: 変化の激しい環境でビジネス競争力を向上させる具体的な方法

メモ:

DevOps=パリス・ヒルトン

  1. DevOpsとアジャイルと私
  2. DevOpsもやいする私のもやもや
  3. DevOps支援室の取り組み
  4. ビジネス競争力を高める具体的な方法
  5. まとめ

  6. DevOpsとアジャイルと私
    2003年くらいからの歴史

  7. DevOpsもやいする私のもやもや
    5年遅れの葛藤
    DevOpsってずるくない?
    2017年の数字を見ると頻度を上げることはできたけど、障害の頻度は上がった。

全部DevOpsの手柄になっている

DevOpsって名前が悪くない?

当初はDevとOpsの対立構造解消にフォーカス

DevOpsってなぜ定義しないのか?
XXはDevOpsではないというのが多い。

アジャイルの価値と原則

  1. DevOps支援室の取り組み

定義なくして支援なし!

定義してみた
変化の激しいビジネス環境において
組織の ビジネス競争力を向上 させること

組織のビジネス競争力を向上させるために行う
すべての活動の総称

単なる標語

DevOps導入のステップ

  1. リードタイムの短縮
  2. フィードバックループの継続的な短縮、強化
  3. 継続的な学習と実験の文化の創出

リードタイムの定義
ある機能を作りたいと考えてからエンドユーザーの届くためにかかる時間

導入大変なので支援サービスが有ってよかった

  1. ビジネス競争力を高める具体的な方法

VSM(Value Stream Mapping)とは

一番のボトルネックに集中
リードタイムをKPI
具体的な短縮目標を決めて部門横断目標にする

可視化が重要

  1. まとめ

  2. まずはVSMを実施
    リードタイム短縮ボトルネックを把握

  3. 聞き取れませんでした。。。

セッション4:事例紹介:テレビ・レコーダーのバックエンドにおける CI/CD への取り組み

ソニーネットワークコミュニケーションズ株式会社 CA3部 Metaサーバーチーム テクニカルリード 佐藤瞬さんの発表。

ソニー製のテレビ、レコーダーにテレビ番組情報や視聴ランキングなどを配信する Meta サービスを運用しています。
本セッションでは、この Meta サービスの運用チームにおける CI/CD の取り組みについて紹介させていただきます。

speakerdeck.com

メモ:

Bravia Metaサービス
AWSで構築

SWFのシンプルアイコンがない
ステップファンクションへの移行をしろってことか?

  1. CI/CDパイプラインの構築
    40本作っている

  2. コンテナのデプロイ
    ALBでBlue/Green Deployをしている。

  3. EC2インスタンスのAMI更新
    Ansible/Packerで構築

  4. Serverlessアプリのデプロイ

など

  1. Dodepipelineの導入経緯

Code化されたPipelineは存在しなかった

  • Jenkinsの除外
  • Jenkins資産を活用
  • コスト管理

  • CodePipelineを導入してみて

  • Sourceの柔軟性

  • GitHub以外のSourceを指定できる
  • 複数リポジトリ対応

導入してよかった点

  • AWSのほかサービスとの連携

困りごと

  • 色々あったけど改善されてきている

  • 現状ワークアラウンド的なことをしている部分

  • SourceでGit Tagを指定できない(Branchのみ)
  • 実行時にパラメータ指定ができない

  • Canary Deploymentへの取り組み

基本的にはBlue/Green DeployだがCanay Deploymentも試験的に実施

  • 試験的な位置づけ
  • 負荷を見るために実施

App meshが出てきたので再設計したい

継続的デリバリーについて

継続的デリバリーの活動では継続的にデプロイしていくことになる
←リスク

デプロイはリスクでもある
一方でデプロイしなければ価値は上がらない

リスク管理

  • リスクの低減
    • 信頼できるテスト作成
    • デプロイ手法を工夫
    • 切り戻し対策

SLI/SLO・エラーバジェット

  • エラーバジェットを満たしているかがデプロイに問題がないかの指標

月一回くらいで見直し運用

  1. まとめ

CodePipelineなどAWSサービスをがっ弦使ってパイイプライン構築


まとめ

別のイベントが有って懇親会の参加はしませんでした。 待合スペースの写真を貼ってくので、雰囲気だけ!

f:id:kabukawa:20181203125220j:plain