@hihihiroroのLog

ダラダラと。本ブログは、個人の意見であり、所属会社とは関係がありません。

202208 振り返り

ちょっとだけ涼しくなったなと思う日が増えてきた。
それでも連日暑いので家から出る時間が相変わらず増えない。運動を一定したほうが良いことはわかっているので頑張るかのお気持ち。

べんきょうかい

今月はあまり出ることができなかった。
スクラムフェス仙台も前日に思い出しチケットを買ったので、キーノートしか聞けてない。
ビデオ公開されたら順番に見ていきたい。

ほん

技術書も小説も普段よりは読むことができた。
漫画は相変わらず読んでいるがそろそろ買う量を減らしていきたいと思っている。

えいが

ONE PIECE 面白かった。 お盆の間は実家に帰ってこもっていたのであまり映画を見に行くことができなかった。
まあ、コロナまた増えているみたいだからしばらく少なくしておこう。

  • ONE PIECE FILM RED
  • バイオレンスアクション

ぶろぐ

お休みがたくさんあったので積んでいる本を読んでみた。

hihihiroro.hatenablog.com

hihihiroro.hatenablog.com

hihihiroro.hatenablog.com

hihihiroro.hatenablog.com

hihihiroro.hatenablog.com

hihihiroro.hatenablog.com

「AWSではじめるデータレイク」を読んだ

読むんだと決めて買ってから1年以上経ってしまったけどようやく読んだ。

序章 データレイクを始めよう
第1章 データレイクの構築
第2章 データレイクの活用
第3章 データレイクの運用
第4章 データレイクのセキュリティ
第5章 ハンズオンの概要 - ビジネスデータのデータレイク -
第6章 データを可視化する
第7章 サーバレスSQL によるデータ分析
第8章 データを変換する
第9章 データを分析する(データウェアハウス)
第10章 システムの概要 - ログデータのデータレイク -
第11章 ログを集める
第12章 ログの保管とカタログ化
第13章 ログを加工する
第14章 ログを分析する

本書は3部構成になっている。1部ではデータレイクのコンセプトが解説されている。2部では基本的なデータレイクの構築を試すことができる。最後の3部では応用的なデータレイクの構築を試すことができる。基本的な内容としてはファイルからデータを取り込んで試している。応用編ではログを取り込んでのデータレイク作成、分析を試すことができた。タイトル通りなので構築はAWS 上でになる。

コンセプトについては以下の内容となっている。
1章では用語の説明やデータレイクのアーキテクチャの説明からそれぞれのレイヤで必要となるコンポーネントについてそれぞれ説明がされている。その中でもデータの保存先のストレージについての説明がされている。可用性や耐久性、スケーラビリティ、コスト、セキュリティや権限周りについて解説されている。またデータを貯めるだけでは使いにくいとの説明からデータカタログの重要性やデータを使いやすくするための変換ツールについての説明がされている。
2章では蓄積されたデータを活用するための方法として、BI、アドホックSQL 分析、定常的なSQL 分析、応用的な分析と4つが説明されている。また、それ以外にストリームデータの活用としてリアルタイムダッシュボードとストリーム分析アプリケーションが説明されている。利用者の区分によって適した活用方法が変わってくる。それ以外にもやりたいことにより使うべきシステムも変わることが解説されている。それぞれでうまく使えるものを使える基盤を作るのが良いのだろう。
3章では作ったデータレイクを運用していくために必要なことが説明されている。まずはデータレイクが正しく動いていることを保証するために「正常」の定義を行うことからはじめている。その後SLA を守るための監視、パフォーマンスのための監視と改善などが説明されている。あとは大事なデータをなくさないためのバックアップ、いらないデータの削除、アクセス履歴取得の必要性が書かれている。監視は目的に合わせてやるべきことを分ける必要があると思った。できてないことはやってみたいと思った。
4章ではセキュリティについて解説がされている。データレイクを1つのサービスと見立てのセキュリティについてまとめられている。具体的にはアクセス制御や暗号化、権限管理について解説されている。権限については異動の話など具体的な話も出てて面白かった。

このあとはAWS のサービスを使ってデータレイクの構築を試すことが続く。簡単に手軽にできたので面白かった。ただ、これから利用者やデータがどんどん大きくなっていったときはどうなるのかは気になった。

まとめ

  • データレイクについてまとめられていてわかりやすかった
  • アーキテクチャの話もいくつか出ていて実際にどう組めば良いか想像しやすかった
  • 実際にサービスを使って見ることができたので面白かった

「推薦システム実践入門」を読んだ

仕事に関係するかなと思って読んでみた。

1章 推薦システム
2章 推薦システムのプロジェクト
3章 推薦システムのUI/UX
4章 推薦アルゴリズムの概要
5章 推薦アルゴリズムの詳細
6章 実システムへの組み込み
7章 推薦システムの評価
8章 発展的なトピック
付録A Netflix Prize
付録B ユーザ間型メモリベース法の詳細

まず推薦システムの概要と歴史が事例を含めて解説されている。推薦以外に似ているものとして検索システムについても少しだけ解説されていた。その後推薦システムの開発をする事になったときのメンバやプロセスについての解説、おすすめしたアイテムの表示の方法が紹介されていた。ただ推薦アイテムを出すのではなく、理由も表示するなどのユーザ体験まで考えるのが大事なんだなと思った。
その後推薦アルゴリズムのいくつかについて解説されていた。自分で組むことはないのでアルゴリズムの解説は面白かった。いくつもあるものから実際にみんなが選んで実際のサービスに組み込んでいるんだなと思いながら読んでいた。

6章の「システムへの組み込み」部分が自分の仕事に一番近いところだろうと思って重点的に読んだ。鮮度とユーザからの呼び出し方法によっていくつかのパターンが紹介されていた。このあたりではあまり目新しいものがなかったので自分たちのシステムでもそんなに間違っていないのだろうなと思った。
システムを作るだけではなく、推薦システムの評価についても解説されている。予測誤差だけではなく、アイテムの多様性を測る指標などいくつか紹介されていた。システムを改善するためにも評価を行うことは必要だなと思っているので良かった。

まとめ

  • 設計して作って評価してまでの一通りが書かれていてわかりやすかった
  • システムでもアルゴリズムで使うデータの部分しかやってないのでアルゴリズムなど知れて面白かった
  • 個人情報などの扱いが厳しくなっているので今後どこまでできるのだろうかというのが気になっている

「クラウドネイティブ・アーキテクチャ」を読んだ

クラウドを使うようになって時間もたっているので、そろそろちゃんとクラウドでの考え方を学んでみよう、読んでみようと考えていたのを思い出したので買って読んでみた。

第1章 クラウドネイティブ・アーキテクチャの概要
第2章 クラウド導入の取り組み
第3章 クラウドネイティブ・アプリケーションの設計
第4章 テクノロジースタックの選択方法
第5章 スケーラビリティと可用性
第6章 セキュリティと信頼性
第7章 コストの最適化
第8章 クラウドネイティブな運用
第9章 Amazon Web Services
第10章 Microsoft Azure
第11章 Google Cloud Platform
第12章 クラウドのトレンドと今後の展望

本書ではクラウドネイティブ成熟度モデル(Cloud Native Maturity Model : CNMM) が説明されており、これによってどこまで成熟できているかが判定されていた。本書の中での基軸は以下の3つ。

  • クラウドネイティブなサービス
  • アプリケーション中心の設計
  • 自動化

全体的にはクラウド導入の取り組みとして、クラウド導入フレームワークの詳細の説明がされている。そしてビジネス、人、ガバナンス、セキュリティ、運用などの観点からクラウド移行の決断をする理由についての説明がされていた。
そして、アプリケーションの設計としてマイクロサービスやコンテナ、サーバレスでの説明、設計をする上での考え方などが紹介されている。マイクロサービスの説明の中ではサービス指向アーキテクチャの説明とそれぞれの違いについても書かれていて面白かった。

その後、ライセンスや価格などからテクノロジースタックの選び方の説明がされている。このあたりは同じようなサービスからどれを使うかなどを選ぶときには考えることが少しはあるかなと思った。このあとは具体的な話が増えてくる。まずはスケーラビリティと可用性の高いシステムを運用するための冗長性、広範囲な監視、IaC などについて説明されている。システムが自動復旧できるような作りにするための監視などの話は面白かったから自分たちでできてないことはやらないといけないなと思った。
またセキュリティをクラウドネイティブ適応する方法が紹介されいる。従来のセキリュティプロセスを当てはめるのではなく、クラウド用に用意、提供されているものを使うことが大切だということが説明されている。その後コストについての説明もされている。オンプレとの価格の違いやコスト分析をするための監視、タグ付け方法が説明されている。コストは安くなるだけのことはないと思うが、無駄に使ってないことは監視したいなと思った。

運用の章ではオンプレ時とクラウド時の運用チームの違いについての説明がされている。IaC による運用の大切さが説明されている。また、マイクロサービスになっていることを前提に提供するAPI の保守について説明されていた。ここまでは全然できていないため、ここまですすむことができたらまた読んでみたいと思った。

本書で紹介されていたDevSecOps のマニフェストがまとまっていて良いなと思ったので今後ちゃんと守るようにしていこうと思う。

Leaning in over Always Saying “No”
Data & Security Science over Fear, Uncertainty and Doubt
Open Contribution & Collaboration over Security-Only Requirements
Consumable Security Services with APIs over Mandated Security Controls & Paperwork
Business Driven Security Scores over Rubber Stamp Security
Red & Blue Team Exploit Testing over Relying on Scans & Theoretical Vulnerabilities
24x7 Proactive Security Monitoring over Reacting after being Informed of an Incident
Shared Threat Intelligence over Keeping Info to Ourselves
Compliance Operations over Clipboards & Checklists

引用元URL : https://www.devsecops.org/

まとめ

  • クラウドネイティブと言ったときのやっておくべきことを学べた
  • 自分が運用しているシステムで何ができてるかを確認したいなと思った
  • 本書から更新されていることがどれくらいあるのか確認をしたい

「カオスエンジニアリング」を読んだ

以前に入門と書かれている本を読んでカオスエンジニアリングに興味を持ったので読んでみた。

hihihiroro.hatenablog.com

1章 複雑なシステムとの出会い
2章 複雑なシステムの舵を取る
3章 原則の全体像
4章 Slack の惨劇シアター
5章 Google DiRT : 災害からの復旧テスト
6章 Microsoft における実験の多様化と優先順位づけ
7章 LinkedIn メンバーに対して配慮すること
8章 Capital One におけるカオスエンジニアリングの導入と進化
9章 先見性を生み出す
10章 人間的なカオス
11章 ループの中の人々
12章 実験の選択に関する課題(と、その解決策)
13章 カオスエンジニアリングの費用対効果
14章 オープンな心、オープンな科学、そしてオープンなカオス
15章 カオスの熟成モデル(CMM
16章 継続的ベリフィケーション
17章 サイバーフィジカルで行こう
18章 HOP とカオスエンジニアリングの出会い
19章 データベースにおけるカオスエンジニアリング
20章 セキュリティカオスエンジニアリングの事例
21章 おわりに

カオスエンジニアリングとは、本番稼働中のサービスにあえて擬似的な障害を起こすことで、実際の障害にも耐えられるようにする取り組みのこと。システムの複雑さが増しているが、カオスエンジニアリングによって脆弱性を発見し、顧客に影響を与える前に停止を防ぐことを目的としている。

第Ⅰ部は、舞台準備として複雑なシステムの説明、カオスエンジニアリングの適応についての説明がされている。3章まででカオスエンジニアリングの説明がされ、その後は様々な会社の人たちが実際にカオスエンジニアリングを実践している話が書かれている。実践者が自分たちで試すときの工夫や実体験が書かれているので試してみる手がかりなどについてわかりやすかった。

また、アプリケーションだけではなく組織に対して行っている話などもありどこにでも適応できるんだなと思った。アプリケーション、インフラから適応を勧めていきたいが他にも適応できるところがありそうだからまた、落ち着いたら読み直したいなと思う。

まとめ

  • システムを例にカオスエンジニアリングの原則を読んだ
  • 実践者の実体験や取り組んだ視点を感じれて良かった
  • ツールなどがまだまだ出てきているみたいなので情報収集を引き続き頑張る

「コンテナ型仮想化概論」を読んだ

コンテナと言うとDocker についてを見ることが多いので他のものについても勉強できるのかと思って買ってみた。

第1章 はじめに
第2章 コンテナ型仮想化の概要
第3章 FreeBSD Jail
第4章 Solaris ゾーン
第5章 OpenVZ
第6章 LXC
第7章 Docker
第8章 Windows版 Docker
第9章 その他のコンテナ型仮想化ソフトウェア
第10章 次世代のコンテナ型仮想化技術
第11章 本書のまとめと今後の展望

コンテナ仮想化の歴史やアーキテクチャについて初めの方では説明がされている。ただ、このあたりは知っている人向けであるためさらりと書かれている。
その後3章から8章までコンテナ仮想化のいくつかの実装例を実際のインストール方法や、コマンドについて詳しく説明されている。それ以外にもそれぞれでよく出るエラー内容などについても説明がされていてそこは面白かった。使えないコマンドなどが説明付きでされているので試してみようかなと思った。
11章では上記で紹介されていた実装例以外も紹介されている。そこではPodman やrkt などDocker と類似性のあるソフトウェアについて使い方付きで解説がされていた。さらに、次世代のコンテナ型仮想化ソフトウェアとして、Unikernel やmicroVM 技術についても説明がされていた。全然勉強できてない範囲だったので面白く読むことができた。

タイトルから想像していたのは、コンテナ型技術についてのまとめがあって、それらの技術がアプリケーションでどのように使われているのかが説明されているのかなと思っていた。それよりは具体的な実装例が多く紹介されているのがちょっと想像と違ったなと思っては読んでいた。9、10章は思っていたものに近く読んでいて面白かった。また、触ったことないランタイム技術がたくさん紹介されていたので久しぶりに触ってみようかなと思った。

まとめ

  • 数種類のコンテナ仮想化技術を見れて面白かった
  • 使ったことあるものも使ったことないものも説明が多くて楽しかった
  • 参考文献がそれぞれにいくつかついているので勉強が広げれそうだと思った

「Kubernetes on AWS」を読んだ

いつか読もうと思っていたのを本屋でみかけたので買ってしまった。

第1章 コンテナ技術の普及とKubernetes
第2章 Kubernetes 環境の構築とサンプルアプリケーションのデプロイ
第3章 Kubernetes でアプリケーションを動かす仕組み
第4章 本番運用に向けた考慮
付録A ツールの導入(Windows 編)
付録B ツールの導入(Mac 編)
付録C AWS アカウントとIAM ユーザの作成

最初の章ではコンテナの説明から入り、Kubernetes のコンセプトと用語の説明がされている。AWSKubernetes をマネージドで使用するためのサービスとしてAmazon EKS の説明がされている。そしてEKS の特徴としてVPC との統合によるネットワークの説明、IAM による認証認可の説明がされている。またデータプレーンをEKS から独立したEC2 を指定する、EKS に統合されたノードグループとしてのEC2 を使用する、EC2 の運用を開放されたFargate の使用ができることが紹介されている。

2章ではEKS クラスタにアプリケーションをデプロイするまでの手順が順番に紹介されている。アプリケーション、ここで作成するリソースの説明がまずはされている。その後実際にAWS リソースをCloudFormation を使用して作成していった。インフラが出来上がった後、kubectl コマンドを実行することでアプリケーションのデプロイまでを行う。実際にVPC やEKS クラスタにイメージ置き場のECR、その他にもデータベースとしてRDS やファイル置き場のS3などの作成を行う。AWS のリソースを順番に作りながら確かめていくのでコンテナについてだけではなくAWS についても少しは勉強できたので良かった。
3章ではKubernetes の動作と設定方法の説明がされていた。Pod、ReplicaSet、Deployment、CronJob、Jobなどの説明と設定方法が書かれていた。外からアクセスするためのService の説明、設定情報を使用するためにConfigMap、Secret の使い方が説明されている。Pod を安全に運用するために、立ち上がりを確認するReadiness Probe とLivenss Probe が、安全に停止するためのpreStop の紹介がされている。Pod を安全に立ち上げるための設定としてrequest とlimits についての説明もされていた。この章での説明でKubernetes 上でアプリケーションを動かす事ができるようになった。

最後の章では本番運用するために考慮するべきポイントがまとめられていた。CloudWatch Container Insights を使った監視、モニタリングの方法やCloudWatch Logs を使ってのログ管理。オートスケールによる安定化や、クラスタ、ノード、Pod でのセキュリティ考慮事項。GitOps によるクラスタ構成管理方法も紹介されている。その他にもクラスタのバージョンアップ対応手順や、Kubernetes を支えるエコシステムの紹介もいくつかされている。実運用する際には考えなきゃいけないことなどが書かれているので面白かった。

まとめ

  • Amazon EKS 上でアプリケーションを動かすことが試せた
  • 本番運用を行う際に考えることがいくつかまとめられているので勉強になった
  • 構成がいくつか考えられるのでそれぞれでの考慮事項については再度学ぼうと思った