Closed8

【読書メモ】AWSで実現するモダンアプリケーション入門 〜サーバーレス、コンテナ、マイクロサービスで何ができるのか

niinii

第1章モダンアプリケーションとは何か

モダンアプリケーションとは、アプリケーションの設計、構築、管理を継続的に見直し、常に変化を受け入れ続ける開発戦略

url集

awsでのモダンアプリの説明
https://aws.amazon.com/jp/modern-apps/

1.3章で紹介されているAmazon CTOのブログ記事
https://www.allthingsdistributed.com/2019/08/modern-applications-at-aws.html

単語集

オフロード(1.2.1):
プロビジョニング(1.3.2):

niinii

第2章サンプルアプリケーションの紹介

niinii

第3章 アプリケーション開発におけるベストプラクティスを適用

3.3.1 コードベースとアプリケーションは1:1
3.3.2 curlを使うとOS組み込み関数なので暗黙的な依存となる
3.3.3 環境の差異は設定ファイルで読み込むのではなく、環境変数を使う

  • System Manager Parameter Store
  • Secrets Manager

3.3.5 APIではないアプリケーションとの通信とは何か・・・?
→MVC //todo: MVCはなぜAPIではないのか

アクティビティ

  • 設定として何を外部化するか
    環境によって違いが出るもの。タイムアウト値やログレベル等。
  • 設定の外部かをどのように取り入れるか
    DBに格納しておき、定期的にチェック。メモリに格納する。
    設定値格納用APIとかも作っておく?(認証とか必要で面倒かも)

url集

The Twelve-Factor App
https://12factor.net/ja/

Beyond the Twelve-Factor App(元の記事)
https://tanzu.vmware.com/content/blog/beyond-the-twelve-factor-app
Beyond the Twelve-Factor App(翻訳版)
https://kakakakakku.hatenablog.com/entry/2020/03/09/084833

niinii

第4章 データの取得による状況の可視化

4.1 ビジネスデータの取得について
複数のコンピューティング環境が混在しているが、それらからデータを取得したい...
→ログを用いてストリーミング、ログストレージに集約する
4.4 オブザーバビリティ(可観測性): システムの内部で何が起きているのかを説明できるか

アクティビティ

  • データの取得・活用方法
    APIのRequestCount、レスポンスタイム等を取得できている
    ログも集約しているが、Amazon QuickSight等のBIサービスを使用できていない
    →システムデータは取れているが、ビジネスデータが有効活用できていない
    傾向の変化は閾値をセットし、アラートをメールに送るように設計
niinii

第5章 サーバーレスやコンテナテクノロジーによる運用改善

5.1 サーバーレスはサーバーを意識しなくていいということ。EC2だけではセキュリティバッチを当てたり、インスタンスの数を手動で実行しなくてはいけないからサーバーレスではない。

5.5 ポイント情報は既存のRDSとは別に保存する...?
→これによるメリット、デメリットは?
5.5 ECSとEKSの採用理由は?

url集

Amazon SQS DLQ (5.4.2)
https://aws.amazon.com/jp/about-aws/whats-new/2021/12/amazon-sqs-dead-letter-queue-management-experience-queues/

用語集

可搬性(5.3): 1 つのハードウェア/ソフトウェア・プラットフォームで実装したプログラムを,ソース・コードの最小限の変更だけで別のシステムに移植できる
冪等性(5.4.3): べきとうせいと読む。「何回実行しても実行結果が同じ状態になる」ことを意味します。 サーバレスのプログラミングにおいて、べき等性とは、イベントの 繰り返しを識別し、データの重複、矛盾、損失を防ぐアプリケーションまたはコンポーネントの能力

niinii

第6章 CI/CDパイプラインによるデリバリーの自動化

url集

(6.3.2) Blue/Greenデプロイに関して
https://docs.aws.amazon.com/ja_jp/whitepapers/latest/blue-green-deployments/welcome.html

用語集

ビルドアーティファクト: 配布パッケージ、WAR ファイル、ログ、レポートなど、ビルドプロセスによって作成されるファイル

アクティビティ

  • パイプライン・ファーストをどのように評価するか
    これからのプロジェクトが続く年数、デプロイの難易度(属人化度合い)を総合的に見て考える必要がある。
niinii

第7章 要件にあったデータベースの選択

ElastiCacheはMySQLのキャッシュとして使える!

1. APIコールされる
2. APIサーバーのメモリに該当データがあるか確認
3.1 APIサーバーメモリにない場合、MySQLに問い合わせ
3.2 問合せ結果をAPIサーバーメモリ、ElastiCacheに入れる
4.1 APIサーバーメモリにある場合、ElastiCacheに問い合わせ
このスクラップは2023/08/25にクローズされました