omuronの備忘録

個人的な備忘録

「JAWS-UG朝会 #35」 #jawsug_asa 受講メモ

JAWS-UG朝会 #35

jawsug-asa.connpass.com

資料を流用して手直しするために朝6時前から起きて作業して挑みました。

セッション

セッション① SageMakerをスモールスタート

TerraDrone コーイチさん

  • SageMaker でできることのスケールが大きくとっつきにくい
    • SageMaker: カスタム可能な機械学習プラットフォーム
      • データセット、変更時のモデルの自動トレーニン
      • モデルを使用する API のサーバーの自動デプロイ
      • データセットが用意されている、探してモデル作成できる
      • ロジック(テンプレート)が選べる
  • SageMaker 使ってみる
    • 基本設定は「高速セットアップ」推奨
    • SageMaker Studio 起動 -> JumpStart
      • モデル作成は3行目あたり
      • Deploy Model でインスタンスサイズを選択してデプロイ
        • Open Notebook ですぐ使えるサンプルが準備されている

ドローンに物体検知 AI を接続して対象を認識ズームしたりするのに使っているそうです。
機械学習だと物体検知はメジャーですがどうやってビジネスに使っているか聞けると面白いですね。

セッション② Twitter Botを作ってカスタマイズとトラブルシュートをした話

藤田直幸さん

speakerdeck.com

  • Builders.Flash の「お役たち Twitter Bot を作りながら学ぶ AWS ドリル」をした話し
    • EventBridge : Lambda 定期実行で自動投稿
    • Systems Manager Parameter Store
      • TwitterAPI キーや Token 保存
      • 曜日ごとの投稿メッセージ保存
    • DynamoDB : ツイート内容格納
      • メッセージを可変にするようにカスタマイズ
      • aws dynamodb batch-write-item 利用して一括登録

「何もしてないのにエラーが発生して、調べたらTwitterが落ちてた」
WebAPI 使っているとあるあるなことですね。

LT① AWS Config Custom Rules、ノーコードで書けるかな?

NTTテクノクロス株式会社 渡邉洋平さん

speakerdeck.com

  • AWS Config : AWS リソースの構成変更をロギングするサービス
  • ノーコードで書けるカスタムルールがあるらしい
    • 今までは Lambda で実装する必要があった
    • 「カスタムポリシールールの作成」
      • ドキュメントとサンプルが少なくて辛かった
      • Guard 使えば無理なく十数行で表現できそう

Config のカスタムルールはやろうやろうと思ってまだちゃんと調べてないやつだ。
大事なのはわかってるんだけど...

LT② AWS Glue 触ってみた

小室貴史

speakerdeck.com

LT③ AWS Resilience Hubを触ってみた話

加藤 裕士さん

www.slideshare.net

  • レジリエンスとは?
    • 復元力、回復力、弾力を意味する
    • 対応能力、危機管理能力
  • AWS Resilience Hub
    • アプリを中断から保護
    • リカバリ・コストを削減しビジネス継続性を最適化
    • 検証のアプリが必要 -> サンプルアプリが準備されている
    • CDK が必要
    • 評価結果を元に推奨事項が表示される

このサービス知りませんでした。

所感

朝会の登壇枠は大人気ですね。
すぐ埋まっちゃうので、登壇しようと思ったらだいぶ先になってしまい、忘れた頃に出番が来ました。

今回も幅広く面白かった。

「AWSの基礎を学ぼう 第八十九回 AWS Config 」 #awsbasics 受講メモ

awsbasics.connpass.com

監査系に利用する AWS Config の回です。

セッション

AWS Config

講師:アマゾン ウェブ サービス ジャパン、シニアエバンジェリスト 亀田氏

AWS Config

  • Config
    • AWS リソースに対して継続的に監査
    • 変更履歴、構成変更を記録
    • CloudTrail とは主語が違う
      • Config: リソースベースで記録
      • CloudTrail: AWS全体
    • クエリで検索可能
      • サンプルクエリも準備されている
    • 対象リソースを ALL から個別にすることで料金を減らすことができる
  • Config Rules
    • コンプラに準拠しているかチェックできる
    • 改善アクションが可能になる
    • マネージドルールとカスタムルールがある
      • マネージドルールは180個以上準備されている
    • 適合パックが準備されている
      • マネージドルールを都度選択するのは大変だから予めパック化されている
      • 業界でよく使うルールがまとめられている
      • immutable なので変更したい場合は新しいルールを追加する必要がある
      • AWS Organizations 内で、適合するパックを複数選択できる
    • Control Tower のガードレールは Config Rule が使われている

所感

Config をオンにすると結構お金がかかってしまうので、オンにするのを躊躇することが多い状況でした。
EC2 とか RDS を夜間停止するとそれらも記録されて課金対象になったりするし。
この部分で困ってたので、対象リソースを ALL から個別にすることで、Config の使用料を減らすことができるのを知れたのはとても良い収穫でした!

「AWS好きエンジニア LT会 vol.2 ~コンテナ編~ 」 #btc_aws_lt 受講メモ

btc.connpass.com

BTC さんのイベント!

セッション

Docker初心者がコンテナ再入門する

BTC 長濱さん

  • AWS Hands-on for Beginners
    • 「ECS 入門」を受講
      • Docker RUN と CMD の違いが難しかった
        • CMD は Docker 上での実行

コンテナを使ったバッチ実行環境を考える

BTC 廣末さん

  • Fargate Spot の使い所
    • 強制終了が怖いけどほぼ無い
    • 中断の頻度みても5%以下
    • スポット価格履歴もあまり変わってない
    • AWS Batch はリトライできる
  • 処理量が決まってない Batch 処理は?
    • Lambda : 楽だけど15分制限
    • EKS : 可搬性はいいけど難しい
    • Batch on EC2 : 立ち上がり遅い
    • Fargate : 業務継続性やバッチレスポンス求められないときは有効

Karpenterを試してみた

BTC 中山さん

  • AWSOSS の Karpenter
    • k8s クラスターのノードレベルのオートスケールツール
  • Karpenter vs Cluster Autoscaler
    • CA : 事前にオートスケール設定がいる
    • Karpenter : 事前作成不要でできる
  • EKS に Karpenter を導入
    • 公式手順わかりやすく簡単

コンテナイメージでLambdaを実装しよう

BTC 安部さん

  • コンテナを使う理由
    • zip 形式は250MB だけどコンテナは10GB まで
    • OpenCV など特定ライブラリの利用が簡単
    • ローカルで動作確認簡単
    • コールドスタート速い
  • デメリット
    • マネコンでソース見れない
    • イメージの作成,プッシュ時間かかる
  • 使い方
  • 自動デプロイ
    • AWS SAM 使うと楽

EKSの運用あれこれ ~バージョンアップ編~

BTC 宮國さん

  • EKS 考えることいっぱい
  • バージョンアップについて
    • インプレース:アップデート作業少ないクラスタ変わらないが、バージョン戻せない
    • ブルーグリーン:新バージョン検証できて戻せるけど、切り替えて順が複雑で新旧環境の準備がいる
      • 環境を戻せるのが心理的に安全で良い
  • バージョンアップ準備
    • 影響調査、eksctl 特有の変更確認、アドオンのバージョン要否、アプリの影響
    • ブルーグリーン切替手順準備
  • 手順は陳腐化しやすい、バージョンアップは毎回やったほうがリスクが減る

重い腰を上げてECS Blue/Greenデプロイに挑戦

BTC 熊谷

  • ローリングアップデートからブルーグリーンへの切替について
    • デプロイタイプを CODE_DEPLOY で作成
      • ECS::Service は新規作成でしか作れない
    • ALB のターゲットグループを2環境を作成して切替
    • ブルーグリーンでは CodeDeploy が必須
    • CodeBuild では imageDetail.json という名前でイメージ定義ファイルを作る必要あり

所感

5分でちゃきちゃき進む LT 聞くのは久しぶりでした。

熊谷さんの話良かった。 ブルーグリーンデプロイ実装をちゃんとできてない気がするので後で資料振り返ろう。 ローリングアップデートからブルーグリーンに切り替えると ECS の Service 再作成になるし、ALB なども全部作り直して Route53 から切り替える形であれば移行できるかな。

「AWSの基礎を学ぼう 第八十八回 Amazon CloudWatch RUM/Evidently/Synthetics 」 #awsbasics 受講メモ

awsbasics.connpass.com

CloudWatch に追加された Web サイト側の情報を見たり試したりする RUM/Evidently/Synthetics の回です。

セッション

Amazon CloudWatch RUM/Evidently/Synthetics

講師:アマゾン ウェブ サービス ジャパン、シニアエバンジェリスト 亀田氏

Synthetics Monitoring

  • Synthetics Monitoring
    • ヘッドレスブラウザ(Chrome)で定期的にアクセスして監視
      • 1度だけ、1/5/60分に一回
        • 実行頻度に対して CloudWatch アラームを設定できる
    • Canary (カナリヤ)を定義、複数定義可能
      • Lambda の関数で実行
        • node.js or Python
        • Lambda レイヤーとして登録される
    • BluePrint(雛形)準備されている
      • ハートビート
      • API カナリヤ
      • リンク切れチェッカー
      • GUI ワークフロービルダー
    • X-Ray との統合
      • ServiceLens として動作

CloudWatch RUM

  • Real User Monitoring
    • 実ユーザーを元に監視する
      • AWS の中からじゃなくて外からの監視
    • HTML にスクリプトを埋め込んで利用
    • CloudWatch アラームと連携可能
    • Apdex : ユーザー満足度指標
    • クッキーを食わして動く
      • リロードしてもPV数に再カウントしない
    • エラーとセッションを組み合わせた分析と可視化
    • ブラウザ:Chrome/Firefox/Egde/Safari のみ、IEOpera などは未対応
    • ユーザージャーニー:パスの遷移を可視化、クッキーにセキュア属性がつくのでhttps前提

CloudWatch Evidently

  • CloudWatch Evidently
    • 機能追加時の結果データ(CVR やページロード平均時間)の比較検証
    • AB テストを支援する機能

所感

RUM は手軽に始めれるのでまずはこれから試してます。
CloudWatch アラームを仕込めるのは知らなかったので、また調べて試してみよう。

「AWSの基礎を学ぼう 第八十六回 AWS Organizations と AWS Control Tower 」 #awsbasics 受講メモ

awsbasics.connpass.com

あまり触る機会がない AWS Organizations と AWS Control Tower です。

セッション

Amazon CloudWatch

講師:アマゾン ウェブ サービス ジャパン、シニアエバンジェリスト 亀田氏

AWS Organizations と AWS Control Tower

  • AWS Organizations を使わなくても親子アカウントは作れる
    • さらなる階層構造や一括したセキュリティ設定をする場合は利用する
  • AWS Control Tower は Organizations がほぼ必須

AWS アカウントをどう展開する?

  • 例えば...
    • セキュリティの境界
    • リソースの管理単位
    • 課金の分離
    • 単一アカウントでリソースの制限になる場合
  • ボリュームディスカウントが管理アカウント単位で効くメリットあり

AWS アカウントの役割

  • 支払いアカウント:支払い専用の親アカウント
  • リソースアカウント:普段使う AWS リソースを作るアカウント
  • 管理用アカウント:セキュリティ設定専用のアカウント
  • ログアカウント:ログを集める監査用アカウント
  • 役割を定義するだけで AWS アカウントとしては同じなので注意

ユーザーアカウント

  • 複数ユーザーアカウントは作らない
    • (AD とか持っていれば)認証を ID プロバイダに委任する
    • (AD とか持ってなければ)AWS SSO を利用する
  • IAM はバージニアリージョンに実態があるので、バージニアの障害に影響を受ける

AWS Organizations

  • AWS アカウント全体の一元管理を実現するサービス
    • 組織単位によるアカウントのグループ化
    • ポリシーによるグループ単位での一括統制、管理
  • アカウント管理の簡素化
  • 請求の簡素化
  • OU:組織単位、論理的なグループ、これで複数階層を擬似的に実現

Organizations の構成ステップ

  1. 組織の作成
  2. アカウントの作成、または招待
  3. 組織単位の作成と AWS アカウントの紐付け
  4. ポリシー作成
  5. ポリシーのアタッチ

SCP とは

  • OCP の1種
  • AWS サービスの制御をアカウント単位で構成
  • 大まかな構成のみに利用するのが好ましい
    • 細かな制御は IAM ポリシー
    • 頻繁に並行しない、Organizations 全てに影響するため

AWS Control Tower

  • ベストプラクティスに基づく AWS 管理基盤を構築
  • ガードレール設置
    • 予防適当性:SCP
      • ログ暗号化やアクセスログ強制化
      • 監査ログ変更不可
      • Config 設定変更
    • 発見的統制:Config
      • EBS ボリューム暗号化
      • S3 パブリック禁止
      • MFA 必須
  • AWS Config 適合パック
    • Config Rule で実装されるガードレール集
    • AWS Control Tower Detective Guardrails Conformance Pack など

所感

ネストされた組織単位がサポートされるようになりました!
AWS アップデート激しいから、この「AWS エバンジェリストシリーズ AWSの基礎を学ぼう」で資料公開されないのもうなずけますね。
アップデートの話をキャッチアップできるのもいいところ。

「AWSの基礎を学ぼう 第八十七回 Amazon CloudWatch 」 #awsbasics 受講メモ

awsbasics.connpass.com

みんな使っている Amazon CloudWatch ですね。

セッション

Amazon CloudWatch

講師:アマゾン ウェブ サービス ジャパン、シニアエバンジェリスト 亀田氏

Amazon CloudWatch 概要

  • モニタリングとパフォーマンス管理
  • 1ヶ月で800兆を超えるメトリクス監視、2兆を超えるイベントトリガー、50ペタバイトのログ(2018.03時点)
  • CLoudWatch Logs : ログを受け止める
    • CLoudWatch Logs Insight : ログの可視化、SQL ライクな構文での問い合わせ、クエリのエクスポート可能
  • CLoudWatch Metrics : メトリクスが送信される、Logsからも送信される
    • CLoudWatch Alarms : メトリクスに応じたアクション

ログとメトリクス収集

  • 各環境からリアルタイムでログ収集
    • EC2 以外にオンプレも対応
  • CloudWatch Agent 利用で、OS 内の情報も取れる
    • メモリ内容を可視化したい場合は Agent 利用が必要
      • カスタムメトリックスに入る
  • CloudWatch Metrics
    • 70を超えるサービスからメトリクスを自動的に収集
    • 時系列データとしてリージョン単位で保存
    • Statistic : Sum, Max, Min, Average, Sample Count, Percentile
  • しきい値を1度超えただけでアラートを出すと意味のないアラートになりがちなので注意
    • リリース直後は短め、安定したら眺めにするなど
    • 1分より短い時間の粒度で取得すると課金されるので注意

モニタリング

  • ダッシュボードで可視化
  • 異常検出機能あり
  • ServiceLens : X-Ray と連携してアプリの正常性やパフォーマンス、可用性を可視化して分析
  • Synthetics : 模擬モニタリング、ブラウザでのアクセスをテスト

自動実行

  • CloudWatch Alarms
    • アラームからの自動実行できる
    • Lambda, SNS, Chatbot, OS への命令など
  • データ欠落時の処理の評価方法の指定可能
    • メンテナンスのときなどに利用できる
    • 無視するのか異常にするのか?
  • M out of N (N個中のM) という指定が可能
  • オートスケール

分析

  • データ容量と保持期間
    • 15ヶ月のメトリクスデータ保存
    • Logs は無期限

Insights

  • CloudWatch Container Insights
  • CloudWatch Lambda Insights
  • CloudWatch Contributor Insights
  • CloudWatch RDS 監視機能
    • これは Insight という名前ではない

所感

CloudWatch は機能盛りだくさんですね。
まずは、ハイパーバイザー層のメトリクス監視から使うのが何も考えなくていいから簡単でしょうか。

オートスケールしたくなると Alarm 機能もちゃんと理解する必要がありそうです。
CDK とかで作るとこのあたり抽象化されて簡単にできる気がします。

「JAWS-UG朝会 #34」 #jawsug_asa 受講メモ

JAWS-UG朝会 #34

jawsug-asa.connpass.com

開始前に macOS 落ちて焦りました。
ラジオ体操には間に合わなかったけど、セッションはギリギリ間に合いました。

セッション① AWSを活用して社内ISUCONを開催したはなし

野村総合研究所 山口渡さん

speakerdeck.com

  • ISUCON:「いい感じにスピードアップコンテスト」の略
  • 高速アプリケーション:多くの人が快適に利用できるアプリケーション
  • Web アプリを高速化するには?
  • NRI 社内でも ISUCON 企画
    • 人材育成、人材発掘、社員交流を目的に始めた
    • 70人参加、幅広い職種、協力会社も参加
    • 普段の業務では関わらない領域にチャレンジ
  • 社内 ISUCON 運営
    • 3ヶ月前:改善対象Webアプリ題材検討
    • 2ヶ月前:Webアプリ、ベンチマーカー、ポータルサイト、コンテスト基盤を開発
    • 0.5ヶ月前:運営内で模擬 ISUCON
  • 改善対象の Web アプリ
    • リアリティのある架空のサイトを作る(民泊サービス)
    • AWS で構築
      • チームごとに踏み台+3台の Web サーバー
      • Terraform Cloud で EC2 を112台(28チーム分)構築
  • ポータルサイト概要
  • ベンチマーカー
    • Go でコンテナ化して AWS Batch for Fargate
      • AWS Batch:ジョブ作成から実行まで速い
    • ポータルサイトからの実行をトリガーに Lambda で AWS Batch ジョブを作成
    • ベンチマーカーがコケた、ファイルディスクリプタが足りない?
      • Fargate はファイルディスクリプタ設定変更できないので諦め
      • テストをローカルでしていて、その環境では枯渇することがなかった

社内で作るレベルじゃないぐらいすごい。
Docker 使っていても、ローカルと Fargate で Quota が異なって、それに依存するエラーが発生したりするのは要注意ですね。

セッション② スタートアップでどのようにControl Towerを導入したか

WHITE CROSS株式会社 Kazuki Oguraさん

  • AWS 環境の問題点
    • 単一 PVC で複数プロダクトや環境が稼働していた
    • IAM ユーザーやロールの管理が統制されてない
    • AWS Control Tower で解決
  • AWS Control Tower
    • Landing Zone のセットアップが可能
      • Organizations でマルチアカウント環境
      • AWS SSO, CloudTrail 一括設定など
    • ガードレールセットの提供
      • 強く推奨の例:EBS暗号化、RDS/S3パブリックアクセス検知、ルートユーザのアクセスキー作成不許可
  • 導入までにしたこと

すでにマルチアカウント環境だと、後から Control Tower 入れるの大変そうでできてないんですよねぇ。
ルートアカウントの MFA をどうすべきか困っていたので、ユビキー利用は考えてみたい。

LT① Lambdaで最近やらかした話

もつさん

speakerdeck.com

  • Kinesis -> Lambda -> 別 SaaS 連携
    • Lambda:レコード取得して SaaS へ POST
  • Lambda のエラーがめっちゃ出てた
    • Kinesis からのデータ接続をカット
    • Lambda 再試行パラメータを最低値へ変更
      • イベントソースマッピングを利用、失敗すると Kinesis の有効期限まで繰り返す
      • 無限ループバグもあった
  • まとめ
    • Lambda で処理の失敗が継続することを考慮してなかった
    • アラート設定しましょう

Lambda 無限起動は焦りますよね...
課金がそれほどされなかったのが救い。

LT② うわっ…AWSのセキュリティ系サービス、多すぎ…? オンプレエンジニアにも分かりやすく整理してみた

KDDI 御田 稔さん

speakerdeck.com

  • セキュリティって?
    • 何かあると大問題だけど、普段は大丈夫なもの
    • どうせ怒られるのは責任者
  • クラウドだと
    • 全世界から簡単に攻撃される
  • 有効化するだけで使えるもの
    • Config, Security Hub(予防), GuardDuty(検知)
  • 起こったときは?
    • Detective で可視化できる!
      • AI がログを可視化
      • CloudTrail ログを Athena で見なくても済む

まさに LT って感じで、電光石火で凝縮された素晴らしい内容でした。
資料も面白いしまた復習しておこう。

LT③ アプリ側のコードを書いていた人がLambdaに触れて気づいたこと

さき(H.Saki)さん

speakerdeck.com

  • Lambda
    • main とハンドラ関数がなぜ別と疑問に思った
    • コールドスタートとウォームスタートがある
    • 起動時刻を利用するコードを書いた
      • main 関数で起動時間を取った
        • 1回目はうまく行ったが、2回目以降おかしい
        • ウォームスタートではハンドラ関数しか実行されない!

Lambda の特性ですね。
言われてみてなるほどと思いました。

所感

AWS Summit で盛り上がってた ISUCON の招待を知ることができました。
それを社内企画でできるのは、さすが NRI って感じですね。

今日は知らないことだらけで朝から学びが多かった。