@hihihiroroのLog

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

「AWSクラウドネイティブデザインパターン」を読んだ

クラウド上で動いているシステムを毎日見ているが、クラウドネイティブ?となったので読んでみることにした。

目次は以下、

  • 第1部 運用を効率化する
    • 第1章 責任共有モデルを意識してアーキテクチャを選択する
    • 第2章 テスト容易性を高める
    • 第3章 小規模かつ可逆的な変更を頻繁に行う
    • 第4章 セキュリティを作り込む
    • 第5章 DevOpsとプラットフォームエンジニアリング
  • 第2部 回復力を高める
    • 第6章 スケーラブルなアーキテクチャを実装する
    • 第7章 障害からの自動的な復旧を実現する
    • 第8章 回復力をテストする
  • 第3部 可観測性を高める
    • 第9章 可観測性を実装し運用する
    • 第10章 AWS のサービスを活用してテレメトリを収集する

1章では責任共有モデルについて紹介されていた。ここは別に今までちゃんと気にしたことがなかった。クラウド側の責任と利用者側の責任がサービスによって決まっているのはとても分かりやすいなと思った。何を使って構築するかの際には気にしてみようと思った。
これは、自分の部署が開発などをおこなっているうえで、どこまでが自分たちで責任を持つべきなのか、どこからは任せるべきなのかをきちんと線引きすることをやってみたいなと思った。

また、最近サービスの料金設計を考えていた際に利用者の増減によって変更が大きい料金と変更がない料金があることに気がつくようになった。横断組織として、だれかが使うのをやめた時に他の利用者に影響が大きく出てしまうような設計はよくないのだろうなと思った。見直しているとコンピュート領域が立ち上がりっぱなしのものがいくつかある。そこが影響大になるのだろうなと気がつくことがあった。
解決をしようとするとサーバレスな構成にしていくことって大事だよなと感じることが増えてきた。しかし、サーバレスにすると今までサーバに入って見れば良いやと思っていたことができなくなってびっくりすることがある。

この問題を解決するためにはしっかりとしたテストを行えるようなアプリケーションにする、テストを行うための環境を作成する、エラーやメトリクスを取得することを必ずやる。これらを達成できるようにしていきたいと思った。トラブルにならないことよりも、いかに早く回復できるシステムになるかを考えながら作り直したり、新しいものを作っていったりしたい。

そのためにはDevOps の文化を思い出して定着させていかなきゃと思うことが増えてきたので、再度勉強しよ。

まとめ

  • 運用の効率化、回復力、可観測性が大事な考え方とのこと
  • システムの振る舞いを見れるようにしていきたい
  • DevOps 文化に浸りたい