「その日はAWS Builders Online Seriesを受講してました！」って言えるためのアリバイメモ

2022年1月20日のAWS Builders Online Seriesの内容をつらつらとメモしたので残しておきます。

##受講したセッションは以下の通り
- T1. オープニング
- T4-1. コンテナとサーバーレスの使い分け
- T4-2. 今日から始めるサーバーレス　〜AWS LambdaとAWS Step Functionsで小さな課題を解決するところから〜
- T4-3. はじめてのコンテナワークロード　〜コンテナとAWSのコンテナサービスが解決する課題とは〜
- T4-4. AWS基盤上でマイクロサービス/ドメイン駆動設計って、結局何をどうすることなのか
- T1. クロージング

##T1. オープニング
AWSの新しいアップデートについて紹介されていた。
変化する時代において、AWSはパスファインダーズ（先駆者たち）に新しい道具を提供している。
この道具を使えば、時間当たりの作業量を劇的に上げていける。
さらにこれらを掛け合わせることで、reInvent（再発明）することもできる。
身が引き締まります。

##T4-1. コンテナとサーバーレスの使い分け
Lambdaを使えば、頭の中にあるコードを書き出すだけでアプリケーションが作成できる。
Lambdaは、200以上のサービスからトリガーすることができる。

イベントの発生時に何かしらのコードを動かせるという優れものだが、Lambda自身ではイベントを作れず他のサービスに発火してもらう必要がある。

ここでは、コンテナとLambdaのどちらを使うべきか振り分ける「ディシジョン（decision）ツリー」が紹介されていた。
サービスの違いを学んでおくことで、効率的な設計をすることができるようになる。

##T4-2. 今日から始めるサーバーレス　〜AWS LambdaとAWS Step Functionsで小さな課題を解決するところから〜
このセッションでは、サーバーレスが力を発揮する方法についての事例がいくつか紹介されていた。

1.たまにやる処理をサーバーレスで自動化する
例えば、Twitterで1日に一回つぶやきたいなら、Lambdaを使うとリクエストベースの料金体系なので、お得。（<-[これくらいは無料枠で出来ちゃうだろう](https://aws.amazon.com/jp/lambda/pricing/ 'Lambdaの使用料')）

EventBridge -> Lambda -> SNSのAPI
さらに、Lambda ->　DynamoDBを使うことで、動的につぶやく内容を変えることも。

2.プログラムを書かずにStep FunctionsのGUIだけで自動化する
例えば、Step Functionsでイベント時にEC2を自動で停止させることができる。
Start　-> （ DBから対象を取得 -> ） インスタンス停止　-> End
とポチポチやるだけ。

##T4-3. はじめてのコンテナワークロード　〜コンテナとAWSのコンテナサービスが解決する課題とは〜
1.Dockerを利用した基本ワークフロー
Dockerfileを置いて -> docker buildを使うと -> コンテナイメージができてしまう
DockerFileをシェアするだけなので、単純。＝環境差分がなくなる。

2.コンテナオーケストレーション
コンテナオーケストレーションを使えば、APIで「今からコンテナを3つのAZに分散して、10個にデプロイして、このALBに繋ぐように」なんてことも書けてしまう。
また、自動復旧などが可能になるのも魅力的だ。

##T4-4. AWS基盤上でマイクロサービス/ドメイン駆動設計って、結局何をどうすることなのか
1.早いスピードで変わっている業界
1964年の平均企業寿命は33年だった。
2027年の平均企業寿命はわずか12年になるだろう、と言われている。

書店 -> amazon、
タクシー -> Uber、
DVD -> Netflix
→競合他社よりも早く進化することが大事

2.「Innovation Flywheel」
実験、傾聴、アイデア、実験、傾聴、アイデア、実験・・・
まずは使ってみて、フィードバックを傾聴して、新しいアイデアを生み出していく、という連続
→できるだけ早く実験を繰り返すのが大事

大きなスケールのプロジェクトを立てるアプローチもあるが、
事業計画が数ヶ月、数年で事前計画を立てている間に、競合他社に遅れをとる。

時間やお金がかかりすぎて、リスクになる。
また、リスクの発見自体も遅れるというリスクもある。

3.高頻度で少しずつリリースするMVP（Minimum Viable Product）が注目されている
一枚岩のアプリケーションでは見通しが悪くなってしまう
テストやビルドに時間がかかり、膨大な時間がかかってしまう
→個別に自立して、それぞれにアップデート/リリースできるのが大事

##T1. クロージング
オープニングに続き、アップデート情報の詳細が紹介されていた。
正確な情報は[AWSの最新のクラウドイノベーション](https://aws.amazon.com/jp/new/?whats-new-content-all.sort-by=item.additionalFields.postDateTime&whats-new-content-all.sort-order=desc&awsf.whats-new-analytics=*all&awsf.whats-new-app-integration=*all&awsf.whats-new-arvr=*all&awsf.whats-new-blockchain=*all&awsf.whats-new-business-applications=*all&awsf.whats-new-cloud-financial-management=*all&awsf.whats-new-compute=*all&awsf.whats-new-containers=*all&awsf.whats-new-customer-enablement=*all&awsf.whats-new-customer%20engagement=*all&awsf.whats-new-database=*all&awsf.whats-new-developer-tools=*all&awsf.whats-new-end-user-computing=*all&awsf.whats-new-mobile=*all&awsf.whats-new-gametech=*all&awsf.whats-new-iot=*all&awsf.whats-new-machine-learning=*all&awsf.whats-new-management-governance=*all&awsf.whats-new-media-services=*all&awsf.whats-new-migration-transfer=*all&awsf.whats-new-networking-content-delivery=*all&awsf.whats-new-quantum-tech=*all&awsf.whats-new-robotics=*all&awsf.whats-new-satellite=*all&awsf.whats-new-security-id-compliance=*all&awsf.whats-new-serverless=*all&awsf.whats-new-storage=*all '最新のクラウドイノベーション情報')をご覧ください。

- AWS CloudOne：Transit Gateway Based Global Network：リージョン間を結ぶネットワークなども一箇所で管理できる。まだ、Direct Connect はサポートされていない。

- AWS Private 5G：日本では提供を予定していない。パブリック5Gの話じゃない。
CBRS（Citizens Broadband Radio Service）: アメリカ軍の使っているネットワークの一部を、アメリカでは免許不要で民間利用できる仕組みがある。そのプライベート5Gを使えるようにするサービス。

- AmazonVPC Network Access Analyzer：VPCを複数使い分けたりしていると、セキュリティホールがあったりするかもしれない。これを探知してくれるサービス。

- Graviton3：Graviton2より、25％の高速化。不動小数点計算が２倍。暗号処理が２倍。機械学習処理を３倍高速化する。使用料も安くなる仕組み。
推論専用のInferentiaに加え、学習用のTrainiumが新たにリリースされた。

- AWS Mainframe Modernization：メインフレームワークロードの移行時間を最大３分の2に短縮
 - COBOLからJavaの変換を自動化する
 - 専用のテスト空間を作る

- AWS Migration Hub Refactor Spaces：一つの巨大なアプリケーションを機能ごとに抜き出すというもの。マイクロサービスアーキテクチャの一つ。

- Amazon Control Tower Updates：VPNを許可しないVPCを作るとか、東京リージョンだけ使えるようにする、等が可能になった。

- AQUA（Advanced Query Accelerator）：データウェアハウスに関わるサービス。

- AmazonAthena：セレクト文だけでなく、書き込み、削除、更新、タイムトラベルクエリが使用可能になった。

- SageMaker Canvas：CSV形式のデータをアップロードして、ノーコードで予想売上などが予測できたりする。従来使われていたPythonなどが不要に。

- SageMaker（セージメーカー）：クレジットカードがなくてもAIを学べるようになった。
- SageMaker Training Compiler：Pythonのトレーニングコードの処理を早くしてくれる。たった2行のパラメータを引き渡すだけなので、機械学習を使う方はぜひ利用すべし。

- AWS SDKs For Swift、Kotlin、Rust：今後はRustに力を入れていく、というAWSの姿勢が感じられる発表。

- AWS Cloud Development Kit（CDK）：クラウドウォーメーションを簡素化してくれるサービスができた。従来はサービスごとにモジュールを読み込んでいて、バージョン管理も煩雑だった。AWS　CDKは意図的に指定しない限り、安定版の最新がアップデートされる。
また、Build cloud infrastructure fasterで検索して、他の誰かが作った環境を使うこともできる。

- Amplify Studio：Figmaのデザインを投入すると、Reactのコードが自動で出てくるようになった。

- EC2 M1 Mac Instance：Nitroコントローラーがついていて他のEC2と同じようにMacの操作ができる。

- Re:Post　：不明な点があったときに、質問すると誰かが答えてくれるかも。

##感想とか
色々なツールを組み合わせることで発明ができる、とAWS。
使えるツールを増やしていきたい。

これからもAWSのサービスは、作業を効率化してくれるツールとなるだろう。
EC2でやっていたことをLambdaでできたらかなりコストは下がる。
障害時にコンテナが自動復旧してくれたら休日や夜中にPCを開く必要もない。

取り急ぎ、StepFunctionsとLambdaを使ってみたい。

本番環境にデプロイがあったらイベントを発火し、
指定したEC2のボリュームからスナップショットを作成し、
そのスナップショットからAMIを作成し、
AutoScalingGroupの起動テンプレートのAMIと差し替える・・・

ディシジョンツリー的にはできそうだが、
以前にAWS CLIで書いたスクリプトをLambda用に書き直せるかが課題となりそう。