omuronの備忘録

個人的な備忘録

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

awsbasics.connpass.com

ML がクラウドの問題を自動検知する Amazon DevOps Guru です。

セッション

Amazon DevOps Guru

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

Amazon DevOps Guru

  • ML を活用したクラウド運用サービス
    • ML の経験不要、問題を自動検出し、アウリケーションの可用性を向上
    • Aramのしきい値の設定作業を軽減、大量アラーム防止
  • CloudWatch のメトリクス監視
    • ML を使った異常の検出
    • イベントとの関連付け
      • 影響を受けているスタック
    • レコメンデーションの構築
      • 実行可能なアクションの提案、システム状態の迅速な改善
    • インサイトの生成
    • CFn や CloudTrail から設定変更イベントの検知

DevOps Guru for RDS

  • データベース関連の問題の検出、診断、修正
    • ワークロードに合わせて異常検知を微調整
    • DB メトリクスに基づき DB 異常の理由を提示

利用時の注意点

  • 起動直後はベースラインの学習を行うため、数十分は対象リソースを通常稼働させておく
  • RDS は自動でオプトインされる

所感

お金的に高くないのであれば、起動しておいて損はない感じですかね。
対象リソースを多くしなければ、そこまで費用はかからなさそうです。

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

JAWS-UG朝会 #37

jawsug-asa.connpass.com

最近寝不足でギリギリ起きて急いで参加。

セッション

セッション① Aurora PostgresのParameter Group(監査・ログ系)を調べてみた

富松 広太さん

speakerdeck.com

  • 要件
  • アクセスログ
    • パラメータグループ log_connections=1 log_disconnections=1
  • SQL 実行履歴
    • パラメータグループ pgaudit.role=1 pgaudit.log=all -misc pgaudit.log_statement_once=1 pgaudit.log_relation=1 pgaudit.log_parameter=1 shared_preload_libraries=pgAudit

パラメータグループの詳しいお話。
アプリ屋さんと相談しながら設定するのであまり深く考えずに設定しがちです。

セッション② AWS認定とAWS_CLI

伊藤真司さん

  • AWS マネジメントコンソールのデメリット
    • 画面仕様に依存、属人化でのオペミス、手順変更の重労働
  • AWS CLI
    • v2 は Python 組み込み済み、Docker あり
    • v1 でも困ることはない
    • CloudShell は v2、Cloud9 は v1
  • コマンドオプション
  • VPC エンドポイントでよりセキュアに
    • Cloud9 から実行する場合 VPC エンドポイント経由で実行できる

手順書には CLI 必須ですね。
私は CloudShell で実行することが多いです。

LT① もうLambdaだけではだめ、Stap Functionで疎結合にしよう

Iret株式会社 GOさん

  • Step Functions
    • アップデートで Lambda つかわなくても SDK 呼べるようになった
    • Lambda を使うと Lambda の中で複数処理がされて可読性が落ち、エラーの調査コストも大きい

Step Functions 使うと可視化はできるけど、作るのは単体 Lambda と比べて大変かも?

LT② 35世代保持する設定のRDSスナップショットが60個あった件

Iret株式会社 松田 啓佑さん

  • PosgreSQL でシングルAZで、夜間10時間停止していた
  • 自動バックアップを35日間=35個設定していたが、62個スナップショットができていた
    • 自動バックアップだと1-2日分は余分に発生する仕様
    • RDS のバックアップ保存時間の計算時に停止時は含まれない仕様
      • 保持期間の設定は、24時間単位での計算になる
        • 35 x 14/24 = 60 で計算があいそう

自動バックアップ期間に停止時間が含まれないのは知らなかった。
本番だと停止しないのでこの罠に陥らなさそうだし、本番以外はバックアップを取らないから気がつくことがありませんでした。

LT③ DirectConnect上でAWS Site to Site VPNでのプライベート接続に乗り換えてみた

NTTデータ 山本 泰士さん

speakerdeck.com

  • DirectConnect でも WAN 区間の暗号化要件が根強い
    • 仮想アプライアンス製品でオンプレルータ間で暗号化していた
    • TGW とオンプレルータ間の AWS だけで暗号化できるようになった

VPN 使ったことありません...

所感

RDSスナップショットの話がとても面白かった。
これ発見して原因に気がついて腑に落ちる瞬間気持ちよさそう。

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

awsbasics.connpass.com

AI がコードレビューしてくれる Amazon CodeGuru です。

セッション

Amazon CodeGuru

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

Amazon CodeGuru

  • CodeGuru Reviewer
    • コードレビューサービス
      • (動いているけど)改善をしたほうが良い箇所の指摘
      • 開発を手伝ったりバグを指摘するものではない
      • クリティカルな問題や発見が困難なバグを特定
        • null を操作しようとしたりするケース
      • Java / Python に対応
      • 90日間ログ保存
    • カテゴリとしては AI サービス
    • 対応リポジトリ
      • CodeCommit, GitHub, BitBucket
  • CodeGuru Profiler
    • アプリのパフォーマンスを可視化
      • 実行コストの高いコード業を特定
    • 改善を提示することでインフラ費用の削減につながる
    • JVM ベースの言語(Java, Scala, Kotlin)に対応
      • JVM のエージェントで動作
        • エージェント使いたくない場合はコードに Profile を組み込みでも可能
      • Lambda は環境変数に設定を追加し、Profile の設定も必要
    • Python はプレビュー

所感

CodeGuru が出たときは、料金がすごく高く感じて使うのがなかなか難しいなーと思った記憶があります。
一度値下げされて、随分使いやすい料金になりましたね。

dev.classmethod.jp

私は Java はほとんど使ってないし、Python もちょっとしたツールとかしか使ってないから、対応言語が増えないとお世話になることはまだなさそうかな。

Glue DataCatalog のクロスアカウント連携

Glue DataCatalog にクロスアカウントで連携する際にハマったので備忘録。
結論から言うと、Glue の DataCatalog に専用の設定があり、アクセス権限を追加できます。
( S3 のポリシー設定みたいな感じですね)

アクセスさせたい Glue DataCatalog 側の設定

{
  "Version" : "2012-10-17",
  "Statement" : [ {
    "Effect" : "Allow",
    "Principal" : {
      "AWS" : "arn:aws:iam::12456789012:role/xxx"
    },
    "Action" : "glue:*",
    "Resource" : [
        "arn:aws:glue:ap-northeast-1:12456789012:catalog",
        "arn:aws:glue:ap-northeast-1:12456789012:database/*",
        "arn:aws:glue:ap-northeast-1:12456789012:table/*" ]
  } ]
}

アクセス元の Role 設定

CloudWatch Logs から Firehose Delivery Stream を使って、別アカウントの Glue Table 情報を参照しようとしてうまくいきませんでした。
参照先の Glue DataCatalog で上記設定をして、アクセス元のロールを参照先の Pricinpal に設定することでクロスアカウントアクセスができました。
アクセス元が Firehose の場合のロール作成例です。

  AWSGlueServiceRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: role-name
      Policies:
        - PolicyName: policy-name
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action:
                  - glue:GetTable
                  - glue:GetTableVersion
                  - glue:GetTableVersions
                Resource:
                  - !Sub arn:aws:glue:ap-northeast-1:12456789012:catalog
                  - !Sub arn:aws:glue:ap-northeast-1:12456789012:database/*
                  - !Sub arn:aws:glue:ap-northeast-1:12456789012:table/*
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Action: sts:AssumeRole
            Effect: Allow
            Principal:
              Service: firehose.amazonaws.com

最後に

ドキュメント探しても全然わからなくていつものブログに助けられました。

dev.classmethod.jp

CloudFormation 対応もしてなさそうで、CFn ドキュメント読んでてもそれっぽい設定もないし、このブログを見つけれなかったら解決できなかったのでとても感謝です!

「AWSの基礎を学ぼう 第九十六回 AWS Cloud WAN と Amazon Direct Connect SiteLink 」 #awsbasics 受講メモ

awsbasics.connpass.com

データセンターからプライベート線を引き込む場合に利用できる Cloud WAN のお話です。

セッション

Amazon Interactive Video Service

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

  • 現在の AWS インフラ
    • 26リージョン、84AZ、410+Egde、108の Direct Connect ロケーション
    • Direct Connect 利用して、データセンターと AWS を直接接続できる
    • VPC が複数あって接続する場合は Transit Gateway がオススメ
  • AWS Cloud WAN
    • オンプレミスと VPC を一元管理できる
      • VPC 間をグローバルなフラットネットワークで接続してルーティングする
      • リージョンをあとから追加可能
    • 実態は L3 ルーター
    • Transit Gateway を独立して Cloud WAN を Peering することもできる
      • Direct Connect Gatway をアタッチしたい場合は、Transit Gateway 経由になるため、この構成になる
    • Core Network Policy (CNP) にてネットワーク設定を JSON で行う
    • Network Manager でトポロジーツリー(どこが落ちてるかとか)見ることができる
  • Direct Connect SiteLink
    • Direct Connect からデータセンター間の通信の折返しが直接できるようになった
      • 以前はクラウド(VPC)まで行く必要があり、EC2 とかで処理をする必要があった

所感

オンプレでの重要情報や、データセンターを持っていない限り使うことはなさそうかな。
Direct Connnect で専用線を引き込むことが前提となると思うので、インターネットを経由したら駄目な要件がない限り使うことがなさそうです。

「AWSの基礎を学ぼう 第九十五回 Amazon Interactive Video Service 」 #awsbasics 受講メモ

awsbasics.connpass.com

今回も映像関連の Amazon IVS です。

セッション

Amazon Interactive Video Service

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

Amazon Interactive Video Service 概要

  • 素早く簡単にセットアップできるマネージドライブストリーミングサービス
    • 動画配信の専門知識無くても可能
    • ライブ配信に必要な一連のコンポーネントをサポート
    • 3-5秒の超低遅延
    • S3 に映像を保存できるようになった
  • 裏側は基本非公開
    • Twitch が本体
    • Twitch を AWS のサービスとして公開
    • AWS としても他とは異なり独立したサービス
  • CDN 組み込み済み
    • 何を使ってるかは非公開
    • CloudFront 独自の機能などが使えない
  • RTMPS プロトコル利用
    • OBS 以外にも、RTMPS に対応していれば別のクライアントも使える
  • 関連サービス
    • Amazon Chime / Amazon Chime SDK
      • Chime SDK は Slack のハドルでも使われてる
    • Elemental Medita Services & CloudFront
    • Kinesis Video Stream

所感

ゲーム配信とかでよく見る Twitch って、Amazon が買収してたんですね。
IVS は一般向けで、Elemental Sevices はプロ向けという棲み分け。

「AWSの基礎を学ぼう 第九十四回 AWS Elemental Media Services Overview 」 #awsbasics 受講メモ

awsbasics.connpass.com

映像やライブ配信に使うサービスの Elemental Media Services です。

セッション

AWS Elemental Media Services Overview

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

AWS Elemental Media Services Overview

  • 動画配信の課題
    • マルチデバイス、マルチビットレートへの対応
    • 初期投資、余剰設備の維持
    • スパイクアクセスへの対応
  • メディア・サービス郡
    • Contribution : エッジサービス
      • Elemental MediaConnect, Elemental Link, Elemental Live
    • Transcoding : AWS にきたものをインタネット向けにトランスコンバート
      • Elemental MediaConvert, Elemental MediaLive
    • Origination : 画角サイズ調整
      • Elemental MediaPackage, Elemental MediaStore, S3
    • Monetization & Personalization : CF の IP を元に自動で広告配信
      • Elemental MediaTailor
    • AVS : Amazon Interactive Video Service
  • 配信方法
    • HTTP Streaming : 分割されたメディアファイルを http で配信、CDN が使える
      • Media Segment という細かいサイズに分割された動画ファイル
      • Manifest ファイルで Media Segment の位置を示す
  • AWS Media Services で実現するライブ配信構成
    • Live 映像をエンコードして Elemental MediaConnect にアップロード
    • Elemental MediaLive で生配信
    • Elemental MediaStore や MediaPackage で画角調整
    • 必要に応じて Elemental MediaTailor で広告設定
    • CloudFront 経由で配信

所感

動画配信の方法だけじゃなく、技術的な裏側を少し知ることができたり、H.265 が流行る前に AV1 が出てきてそっちが盛り上がったりと、動画周りの知らない話を聞くことができたのが面白かったです。
インライン広告という本編の上に被せる形で配信する方法もあるんですね。