2023年 パブリック活動における登壇活動 総括

来年も運をつけるために、 愛犬のうんこと寝たい ... わけがありません。 ヤサイです。2023年は幸いなことに、技術系イベントで多くの登壇に恵まれました。こちらでの共有を怠けておりましたので、新しい順で共有します。CfP前提であるため、来年も同じようにはいかない ... と思いますが、諦めずにトライしていきたいですね。

※ 本投稿ではSpaker DeckまたはYoutubeで公開されているパブリックな登壇活動をサマっており、資料が非公開となっている所属企業におけるオンラインウェビナーは含めておりません。

Lizさんに届け! AWS Jr. ChampionとTop Engineerが 書籍コンテナセキュリティを読んで感じたこと

  • 発表日:2023年10月16日
  • イベント名:JAWS-UG コンテナ支部 × JAWS-UG 千葉支部 #1 今知りたいコンテナセキュリティ

こちらの登壇は書籍「コンテナセキュリティ」の読書感想を同僚とわちゃわちゃと喋る会にしたかったのですが、同僚がインフルエンザを発症してしまったため一人で喋っています ... 。書籍の内容はとても勉強になり、イベントの運営も務めました。

speakerdeck.com

www.youtube.com


サーバーレスJava パフォーマンス選手権 at AWS Dev Day 2023 Tokyo

  • 発表日:2023年6月22日
  • イベント名:AWS Dev Day 2023 Tokyo

こちらの登壇はかなりやらかしました ... 忙しくてリハーサルに割く時間を取れなかったことが一番の失敗ですが、直前になって緊張感がMAXでトイレに行きたくなり大変でした。AWSが主催するイベントということで会場規模が大きく、このような大舞台で登壇しちゃっていいんだろうかと思いました。このような機会を頂き本当に感謝しています。緊張した時は深呼吸で落ち着きを取り戻すことも学びました。

speakerdeck.com

youtu.be


サーバーレスJavaの今 ~SnapStartとWeb Adapterを寄せて~

  • 発表日:2023年6月4日
  • イベント名:JJUG CCC 2023 Spring

こちらのイベントは皆さんの反応がよく、Speaker Deckのアクセス数も私にしては多いほうです。これまでコロナによりオンライン登壇がメインであったため、ハイブリッド開催による現地登壇は貴重な経験になりました。JJUGにはボランティアスタッフとして参加した経験もあり、引き続きJavaに関連する題材で(可能であれば)登壇していきたく思います。

speakerdeck.com

youtu.be

Finch OSSコードリーディング

  • 発表日:2023年4月24日
  • イベント名:JAWS-UG コンテナ支部 #23 春のFinch特集

こちらのイベントは司会・LT・運営を努めまして大忙しで、さらに初のJAWSにおけるオンラインイベント運営経験ということで、緊張感MAXでした。今は慣れてきましたが、当時の緊張感は本当に半端なかったです ...

speakerdeck.com

www.youtube.com

2023年 パブリック活動における外部ブログ発信 総括

愛犬のうんこと一緒に寝てしまい、年末年始から強烈に運がついていると思います。ヤサイです。2023年もブログ活動は外部ブログで発信を行なっていたのですが、こちらでの共有を怠けておりました。新しい順で共有します。来年も質を重視したブログアウトプットを行なっていきたいと思います!!

AWS re:Invent 2023 Day5 レポート

投稿日:2023年12月21日
初めてのラスベガスにおけるストラトタワーからの夜景などプチ観光もあります。

blog.mmmcorp.co.jp


AWS re:Invent 2023 Day4 レポート

投稿日:2023年12月21日
ラスベガス現地よりre:PlayやEXPO会場の様子などをお届けしております。

blog.mmmcorp.co.jp


AWS re:Invent 2023 Day3 レポート

投稿日:2023年12月14日
スフィアに行ってみたかったですねぇ ... 来年もし機会があればっ

blog.mmmcorp.co.jp


AWS re:Invent 2023 Day2 レポート

投稿日:2023年12月14日
基調公演や豪華な会場(ホテル)を楽しんだ一日でした。

blog.mmmcorp.co.jp


AWS re:Invent 2023 Day1 レポート

投稿日:2023年12月14日
初日は旅立ちから。ラスベガスや現地会場の様子をお届けしています。

blog.mmmcorp.co.jp


re:Invent 2023 セッションレポート「[NEW LAUNCH] Enhance workload security with agentless scanning and CI/CD integration」

投稿日:2023年12月9日
現地でリアルタイムに聴講した新機能のセッションレポートになります。

blog.mmmcorp.co.jp


DWS’ AWS Digest Vol.4

投稿日:2023年11月29日
所属している会社でのAWS最新情報発信の取り組みVo.4。FinchのGAやAWS CodeBuildのAWS Lambdaコンピューティングモードなどを取り扱っています。

blog.mmmcorp.co.jp


パブリックIPv4アドレスの有料化に備えよう ~ Elastic IP編 ~

投稿日:2023年11月10日
Elastic IPは踏み台サーバーのユースケースであればInstance Connect Endpointでコスト削減していきましょう。

blog.mmmcorp.co.jp


DWS’ AWS Digest Vol.3

投稿日:2023年11月2日
所属している会社でのAWS最新情報発信の取り組みVo.3。自分が知りたい機能を扱っているので見返しても勉強になります。Amazon ECRのリモートキャッシュやAmazon EventBridgeのワイルドカードサポートが注目でした。

blog.mmmcorp.co.jp


生成AIにお手軽入門!Amazon Bedrockでチャットアプリケーションを爆速起動してみた

投稿日:2023年10月12日
本記事はAWSが提供しているOSS「Bedrock Claude Chat」が便利で楽しかったのでブログ題材として取り扱った内容になります。続編は本ブログで投稿しました。

blog.mmmcorp.co.jp


DWS’ AWS Digest Vol.2

投稿日:2023年10月5日
所属している会社でのAWS最新情報発信の取り組みVo.2。BedrockのGAやTerraformにおけるAWS SAMのサポートが印象的でした。

blog.mmmcorp.co.jp


Material for MkDocs をAWS CDKとGitHub Actionsで公開する

投稿日:2023年9月28日
Material for MkDocsには本当にお世話になっているので、CDNによる公開のIaCをテンプレート化できてよかったと思います。GitHubのコードがあります。

blog.mmmcorp.co.jp


TerraformとecspressoでAmazon ECSを構築してAWS AppConfigの機能フラグを活用する

投稿日:2023年9月13日
ecspressoがどうしても使いたくてブログとしてアウトプットしました。直近で開催したAppConfigの勉強会とも混ぜて盛りだくさんな内容となってしまいました。GitHubのコードがあります。

blog.mmmcorp.co.jp


DWS’ AWS Digest Vol.1

投稿日:2023年9月4日
所属している会社でのAWS最新情報発信の取り組みVo.1。パブリックIPv4アドレスの料金体系変更や、Primeデーの驚異的なメトリクスを紹介しました。

blog.mmmcorp.co.jp


Amazon CodeCatalystのDev Environmentで様々な統合開発環境IDE)を起動する

投稿日:2023年8月24日
CodeCatalystはUIがすごく好きでして、早く日本に来てくれないのかなと思う次第です。日本でもCodeCatalystもっと流行ってほしい。

blog.mmmcorp.co.jp


Japan AWS Top Engineersに3年連続で選ばれたDWSエンジニアが語るTop Engineersって何?

投稿日:2023年6月29日
タイトルそのままですね。4年目も選ばれるように精進したいですね。

blog.mmmcorp.co.jp


AWS APN Immersion Day エッジサービス & EKS ワークショップ開催報告

投稿日:2023年3月30日
2日間連続で登壇してコンテンツも作成してと大忙しでしたが、良い経験として蓄積されました。

blog.mmmcorp.co.jp


セキュリティインシデント疑似体験 調査ワークショップ 参加感想

投稿日:2023年2月17日
AWS様主催のセキュリティインシデント疑似体験はOpenSearch Serviceを扱っていてとても勉強になりました。

blog.mmmcorp.co.jp

2023年 JAWS-UG コンテナ支部の活動サマリ

今年はとても忙しない状況が続いたため、年末の総括としてブログを書いております。来年も忙しくなりそ ... っ

当方、JAWS-UG コンテナ支部の運営の一人として活動しております。そこで、本ブログ投稿では2023年に開催したイベントの取り組みについてサマリしていきます!

JAWS-UG コンテナ支部 #23 春のFinch特集

jawsug-container.connpass.com

私がコンテナ支部の運営として初参加したのは2022年の12月で、本イベントは4ヶ月振りの開催であり、ファシリテーターとLT参加を同時に行いました。コミュニティ運営の経験値がまだ少ない私にとってはとても緊張した回になりました。登壇者の方や運営の方、そしてAWSの方にサポートしてもらいながら開催できました。本当にありがとうございます。オンライン開催におけるファシリテートや登壇はデュアルディスプレイがほぼ必須であることも学びましたね。

⬇️ 過去のアーカイブ動画はこちら ⬇️

www.youtube.com

参加者数

参加者数については以下の通りです。本イベントはオンライン配信のみです。

種別 数値
オンライン 視聴者数 284人
オンライン 同時視聴者数 最大 87人
オンライン 同時視聴者数 平均 73人

アンケート結果

イベント全体の評価としては全体に高い評価を頂きました。

#23 アンケート結果

それぞれのセッションも高い評価を頂き全体的に高評価になりました。

JAWS-UG コンテナ支部 #24 ecspresso MeetUp

jawsug-container.connpass.com

前回でオンライン開催のノウハウを学び、そして本イベントからはハイブリッド開催です。OSSのecspressoを題材としたMeetUpで熱量の高い方達が集結しておりました!!本イベントは運営の方が「ecspresso作者の藤原さんに会いたい」という動機から開催を進めました。 運営の方の強い動機はとても大事ですし、ecspressoという素晴らしいOSSに触れるきっかけにもなりましたし、当方としても大変感謝しています。

⬇️ 過去のアーカイブ動画はこちら ⬇️

www.youtube.com

参加者数

参加者数については以下の通りです。本イベントはハイブリッド開催です。

種別 数値
現地 参加者数 約40人
オンライン 視聴者数 343人
オンライン 同時視聴者数 最大 94人
オンライン 同時視聴者数 平均 81人

アンケート結果

イベント全体の評価として高い評価を頂きました。

#24のアンケート結果

本イベントのアンケートで、運営に参加を希望される方がおりました。ご連絡差し上げられておらず恐縮の至りです。運営にご参加希望の方は是非現地で運営メンバーと直接お話して頂き運営メンバーとフィットしそうかをチェックして頂ければと思います。また、運営の反省点として懇親会の料金が嵩んでしまった点がありましたが、この反省点は次回のイベントで改善されました。

JAWS-UG コンテナ支部 × JAWS-UG 千葉支部 #1 今知りたいコンテナセキュリティ

jawsug-container.connpass.com

本イベントもハイブリッド開催でして、きっかけは 書籍「コンテナセキュリティ」の輪読会を千葉支部と合同で行いたいよね、という運営の方の発案がきっけでした。 JAWSAWSに関連するユーザーコミュニティであることをうまく組み合わせて、今知りたいコンテナセキュリティとしてイベントを開催させて頂きました。当方もこれをきっかけに書籍「コンテナセキュリティ」を読了してLTに参加しました。この学びはとても大きかったですね。re:Invent 2023においてもコンテナに関する新機能はセキュリティ関連が多かったですよね。

⬇️ 過去のアーカイブ動画はこちら ⬇️

www.youtube.com

参加者数

参加者数については以下の通りです。本イベントはハイブリッド開催です。

種別 数値
現地 参加者数 約40人
オンライン 視聴者数 259人
オンライン 同時視聴者数 最大 136人
オンライン 同時視聴者数 平均 108人
オンライン ユニーク視聴者数 167人

アンケート結果

イベント全体の評価として高い評価を頂きました。

千葉支部コラボ#1のアンケート結果

タイムキープをもっとしっかりしたほうがいいというコメントを頂きました。おっしゃる通りでして、次回はタイムカードを活用していきたいと思います。前回までのタイムキープが完璧すぎて油断しました ... また、前回の反省を活かして懇親会の金額をしっかりと運営の方が管理してくださり、リーズナブルな金額で懇親会を開催でき本当に感謝です。

JAWS-UG コンテナ支部 #25 re:Invent 宇宙一よりちょっと早い re:Cap

jawsug-container.connpass.com

本イベントはre:Inventの開催地ラスベガスから現地開催という試みで、こちらも運営の方からの発案になります。本イベントは今までAWSの方に頼っていた配信をラスベガス現地で自分達で行う試み でして、カメラ、マイクを持参してZoom配信をYoutube Liveに流すことによって実現しました。ギリギリまでZoomのみで行う予定で進めていたのですが、Youtube Liveで流せるとのアドバイスを頂き駆け足でイベントの開催準備を進めたため、関係者の方にご迷惑をかけることになり恐縮の至りです。また、ホテルでの現地開催であるため現地の参加人数についてとても注意が払われました。re:Inventで忙しい中、司会進行資料や速報資料を作成して頂き運営の方々には感謝の言葉しか出てこないです。現地参加者の方をホテルまで案内してくださった運営の方にも大変感謝しております。感謝しきれないですね!!

⬇️ 過去のアーカイブ動画はこちら ⬇️

www.youtube.com

参加者数

参加者数については以下の通りです。本イベントはラスベガス現地とのハイブリッド開催です。

種別 数値
現地 参加者数 約10人
オンライン 視聴者数 160人
オンライン 同時視聴者数 最大 33人
オンライン 同時視聴者数 平均 14人
オンライン ユニーク視聴者数 123人

アンケート結果

イベント全体の評価としては評価は高めでしたが ...

#25のアンケート結果

反省点はありました。まず、ラスベガスで運営の方々もお酒を飲みながら開催していたとのことで、けっこうトークがはっちゃけてる感がありました。若干不快なくだりがあったとのコメントもアンケートで頂いており、運営の反省点として定期的に開催している集会でも取り上げさせて頂きました。コメント頂き本当にありがとうございます。

まとめ

本ブログ投稿では2023年のJAWS-UGコンテナ支部の活動を総括しました。来年も運営と参加者が楽しいと思えるようなイベントを開催していきたいと考えております。運営は全員ボランティアで活動しておりますので、至らぬ点もあると思いますが、多少は大目に見て頂けると幸甚でございます。JAWS-UG コンテナ支部のイベントで皆様に会えるのを楽しみにしています!

以上です!!

AWS謹製OSS Bedrock Claude Chatの機能アップデートをご紹介!!ツンデレとずっと一緒にいられるぞおぉぉ!!

このブログ投稿は Anthropic Claude Advent Calendar 2023 の25日目です!

Anthropic Claudeのカレンダー | Advent Calendar 2023 - Qiita

当方、所属している企業様のブログ 「生成AIにお手軽入門!Amazon Bedrockでチャットアプリケーションを爆速起動してみた」 にてOSSBedrock Claude Chat を取り扱いました!

blog.mmmcorp.co.jp

上記ブログを投稿したのが 2023年10月12日でして、投稿後に多くの改善がなされたとの情報を耳にしまして、その進化を(2023年12月25日現在)確認してみましたので、紹介します!!

アップデートその1. UIのアップデート

UIが進化しておりました!主に以下の機能がUIに追加されています!!

  • 基盤モデルを「Claude Instant」と「Claude V2」から選択可能に
  • ボットコンソール機能が追加
  • お気に入りのボットや、ボットの利用履歴閲覧の機能が追加
  • 言語の切り替え機能が追加

UIのアップデート

アップデートその2. ボットコンソール

Bedrock Claude Chat には 新機能のボットコンソールが追加されていました。ボットコンソールはGitHubにあるREADME.mdでは大きくアピールされておらず、しれっと追加されている印象があります。

ボットコンソールはボットがどのような振る舞いで回答するのかを定義することが出来ます。 丁寧にインストラクションのサンプルがあり、Python コーディングアシストのボットの場合は、以下のような振る舞いを定義することになります。

ボットのインストラクションのサンプル

ツンデレのボットを作成してみる

ボットと言えば、ツンデレではないでしょうか!これでいつでもツンデレと一緒です!(冗談です)

早速ツンデレのボットを作成していきます。インタラクションは以下の通りです。

ツンデレのボットを作成!!

自分のボット情報

早速ツンデレちゃんに「2023年の祝日」を聞いてみます!!

ツンデレとの会話

⬆️ ちゃんとツンデレ風に回答してくれました!ツンデレ最高ぅ!(冗談です。)

⬇️ 会話履歴のタイトルも何気にツンデレでした。

会話履歴のタイトルもツンデレ

ボットの共有機能を試してみる

このボットコンソールには共有機能というものがあります。はたして、これはどのような機能なのでしょうか。有効にしてみます。

ボットの共有機能の有効化

⬆️ボットを有効にすると、共有用URLが生成されました。異なる利用者アカウントでログイン後してURLにアクセスすると、共有されたボットを利用して会話を開始することが出来ました!!

異なる利用者アカウントでのボットの共有

⬇️ボット共有でツンデレさんをクリスマスデートに誘う!AWSさん、ありがとうございます!ありがとうございます!!

ボット共有でツンデレさんをクリスマスデートに誘う!

まとめ

本ブログ投稿では、Bedrock Claude Chat の最新アップデートをお届けしました!re:Invent のレポート投稿や異なるアドベントカレンダーへの発信を行なっている間に素晴らしい機能が追加された印象があります!リリース履歴を追っていかないとですね ... っ!可能であればこのボットコンソール + RAG によるドキュメントチャットをナレッジベースに適用できると面白いと思いますので、引き続きBedrock関連の機能をチェックしていきたいと思います!!

よいお年を!!

ServerlessVideoのアーキテクチャを深掘りする

このブログ投稿は AWS Lambda と Serverless Advent Calendar 2023 の 22日目です。

AWS Lambda と Serverlessのカレンダー | Advent Calendar 2023 - Qiita

ヤサイブログへの投稿はお久しぶりな状況です...

当方、re:Invent 2023 は現地参加しました。その際にExpoやSessionでServerlessVideoが紹介されるケースがありまして、大変興味を持ちました。

video.serverlessland.com

本エントリーではserverlessVideoのアーキテクチャについて深掘りしてみます。(深掘りしきれていないところもありますがご容赦下さい。🙇‍♂️)

ServerlessVideoとは

ServerlessVideoは、AWS re:Invent 2023で展示されたサーバーレスアーキテクチャを用いた動画ストリーミングアプリケーションで、AWS Step Functions、Amazon EventBridge、AWS Lambda、Amazon ECS、Amazon BedrockなどのAWSサービスが利用されています。

⬆️こちら、どこかで見たことがあるロゴだと思いませんか?そう、serverlesspressoに似ていますよね。serverlesspressoもAWSの各種イベントで展示されることがあり、serverlesspresso ワークショップで独自のserverlesspressoを構築することも可能になっています。

ServerlessVideoの特徴

ServerlessVideoはどんなところに魅力があるのでしょうか。その特徴をチェックしていきます。

特徴その1. プラグインアーキテクチャであること

ServerlessVideoはプラグインアーキテクチャです。プラグインアーキテクチャAWS Step Functions と Amazon EventBridgeによってプラグインによる機能拡張の追加を実現してします。

動画管理のイベントをトリガーとしてPlugin管理サービスが実行され、 各種プラグインが実行される

プラグインは、⬆️の画像にある複数のフックを条件として起動することができます。フックの詳細は以下の通りです。

フック名 フックの説明
preValidate ライブ放送後に映像内容を検証する前のフック
postValidate 映像内容の検証時のフック。検証前に生成したフック情報を参照可能
preMetadata メタデータ生成前に利用するフック
postMetadata メタデータ生成時に利用するフック

ServerlessVideoで実装されている機能の一部は拡張機能で実装されていることが分かります。既存の拡張機能は以下の通りです。

拡張機能 フック 拡張機能の説明
Content Moderation preValidate 不適切・不要・不快なコンテンツかどうかをAmazon Rekognition Videoで分析
Duration preValidate 動画の長さのチェック
Transcribe preMetadata CloudFrontのURLから取得したオブジェクトをS3に転写
Generate Tags postMetadata Bedrockを利用して動画のタグを生成
Generate Title postMetadata Bedrockを利用して動画のタイトルを生成
Leader Board postMetadata ストリームのカウントとストリームの合計時間のリーダーボードを構築
Rollup Stats postMetadata 動画の総数や総時間などの統計情報を取得
Translate postMetadata 異なる言語への翻訳処理

そして、上記のプラグインがEventBridgeによってトリガーされる Plugin Lifecycle Manager によって実行されます。このフックは全てEventBrigeのEventBridgeRuleのパターンによって分類されて実行されているようです。(ここは各イベントパターンの相関的な図が欲しいところです ... )

プラグインにおけるEventBridgeRuleのパターン指定内容

肝心のPlugin Lifecycle ManagerのStep Functionsの処理はASLファイルで書き出されていたので、可視化してみました。可視化した内容はこちら⬇️

すいません、ちょっと半端ないワークフローでびっくらこいた状態です。 見たところ、DynamoDBを状態遷移のデータソースとして、それぞれのフック用の状態遷移グループ(と呼ぶべきですかね?)が定義されているワークフローかなと思いました。

イベント駆動におけるサーバーレスアーキテクチャをふんだんに、これでもかっていうくらい活用していますよね。もうかっこよすぎて惚れます。

特徴その2. サービスが独立してデプロイ可能であること

チャンネル、ダッシュボード、プラグインマネージャー、動画管理などそれぞれのサービスが独立したAWS SAMのテンプレートファイルとして定義されており、それぞれ独立してデプロイ可能になっています。これは、モノレポのような思想なのでしょうか?とても素晴らしいです。カルチャーショックです。

コード上も独立したサービスとして管理

詳しくはServerless LandのPDFをご覧ください!!

それぞれのサービスの説明や、全体アーキテクチャ図、プラグインアーキテクチャの説明などの記載がありますので、ご興味がありましたら是非ご覧ください!コンピューティングリソースをLambdaとECS Fargate Taskで使い分けてるのも重要なポイントですね!!

serverlessland.com

ServerlessVideo 全体アーキテクチャ

ServerlessVideoに私が期待すること

私は個人用AWSアカウントにデプロイして利用したいのですよ! ですから、私はServerlessVideoについて以下の事柄を期待します!!

期待すること1. フロントエンドのコードも閲覧したい!

バックエンドは公開されていますが、今のところ(2023年12月22日時点)はAmplifyで構築されたフロントエンドのコードってないですよね?是非ともフロントエンドのコードも見てみたいです!!

期待すること2. serverlesspresso と同じくワークショップコンテンツが欲しい!

自分だけのServerlessVideoを構築できるワークショップが欲しいですね!serverlesspressoはあるので是非とも同じようなワークショップを期待します!!AWS様お願いします! 🙇‍♂️

まとめ

ServerlessVideoは可能性に満ちあふれています。AWSのこういった楽しい取り組みは本当に好きです。これからもServerlessVideoの動向を追っていきたいと思います!以上です!

Amazon EKS Blueprints for Terraform から学ぶKubernetesのエコシステム

去年飼った柴犬とポメラニアンのMIX犬が8ヶ月になり。大きな病気もなく順調に育っています。このまま元気に育って欲しいです。

Amazon EKS Blueprints for Terraform(以下EKS Blueprints) を皆さんはご活用されていますでしょうか。私はワークショップコンテンツに活用しようと思っており、そのソースコードを読んでいます。

Kubernetesと言いますとECSと比較してハードルが高いイメージは拭いきれません。そのようなハードルの高さを なるべく楽に乗り越えていくために EKS Blueprints は存在する と私は考えております。

今回は、 EKS Blueprints がどのような仕組みになっているのかコードリーディングを行いながら、Kubernetesのエコシステムを学びましたので、本ブログとしてアウトプットしていきます。

EKS Blueprintsディレクトリ構成について

まずは、EKS Blueprintsディレクトリ構成についてご紹介します。 図で表すと、以下のようになります。

特に 重要なディレクトリについて解説 します。»ディレクトリの階層を表しています。

ディレクトリ名 解説
ルート AWSとの認証紐付けを含む EKSのベースモジュール があります
» modules Terraformの モジュール が格納されています。
» » kubernetes-addons EKS Blueprints の強みである 様々な拡張機能が格納 されています
» » » helm-addon モジュールが利用する Helmチャートを指定するための共通モジュール です。
» examples terraform apply を実行する基点 となっているディレクトリです。

新しいVPCによるEKSクラスターの作成を例にしますと、まずは examples -> 新しいVPC作成によるEKSクラスター作成 ディレクトリのmain.tfファイルが基点になります。基点から辿って EKSのベースモジュールmodulesディレクトリにあるコアモジュールそして拡張機能モジュール の順番に読み込まれていきます。

モジュールからモジュールが参照されているため循環参照にならないかどうか気になります が、 terraform plan 実行時に循環参照がある場合はエラーとしてくれる仕組みがあり気づくことはできます。

terraform-aws-modulesも活用されていました

Terraform公式が提供しているモジュールというのもあります。それが terraform-aws-modules になりまして、 EKS Blueprints ではAWSリソースの作成を簡略化するために terraform-aws-modules が活用されておりました。

EKS Blueprints が利用するプロバイダーについて

Terraformではプロバイダーを利用します。プロバイダーは インフラストラクチャにアクセスするための抽象化されたAPI として機能します。 EKS Blueprints では以下のプロバイダーが利用されています。

プロバイダー名 解説
aws EC2、Lambda、EKS、ECS、VPC、S3、RDS、DynamoDB などの AWS リソースのライフサイクル管理
kubernetes Kubernetes がサポートするリソースと対話するために使用
kubectl 自由形式のyamlを処理してKubernetes に適用
helm ソフトウェア パッケージをデプロイするために使用
grafana Grafanaの構成管理リソースを提供

awsAWSリソースを構築する上で必須であり、 helm プロバイダーはHelmチャートをインストールする時に必須です。 awshelm 以外は モジュール が依存しているプロバイダーとの理解でいます。

EKS Blueprints が利用するHelmについて

EKS Blueprints でかかすことができないパッケージ管理として、 Helm があります。Helmは広く知れ渡ったKubernetesで稼働するサービスのパッケージ管理機能になりまして、 チャート という単位でサービスを管理します。

チャートhelm-addon モジュールによって管理されておりHelmチャートのリポジトリURL、バージョンなどの情報が環境変数として指定されています。これによって EKS Blueprints の様々な拡張機能のインストールを簡素化しています。実際にはインターネット上で公開されているHelmチャートリソースに依存しているという、壮大な構造になっています。もしChartのURLが変更されたり新しいバージョンがリリースされた場合に、 EKS Blueprints 側の環境変数も更新しないといけないという点が分かります。

図で表すと以下のようになります。

EKS Blueprints拡張機能について

EKS Blueprints の最大の特徴として EKSクラスターに簡単に拡張機能をインストールできる ことが挙げられます。拡張機能Kubernetesクラスターを構築後に手動でインストールすることが従来の方法であると理解しておりまして、手動でインストールするための マニフェストファイルHelmチャート を作り、管理が必要となる理解でおります。この拡張機能の管理まで一気通貫で出来てしまうのが、 EKS Blueprints の強みであると思います。

利用可能な拡張機能について

どのような拡張機能がインストールできるのでしょうか。なんとその数 67 もの拡張機能が存在することが分かりました。

以下の表に拡張機能と解説をまとめました。

拡張機能 解説
adot-collector-haproxy HAProxy ワークロードのオブザーバビリティに関する自動化されたエクスペリエンスを提供
adot-collector-java Java/JVMワークロードのオブザーバビリティに関する自動化を提供
adot-collector-memcached Memcachedワークロードのオブザーバビリティに関する自動化されたエクスペリエンスを提供
adot-collector-nginx Nginxワークロードのオブザーバビリティに関する自動化を提供
agones Kubernetesクラスタ内の専用ゲームサーバプロセスを作成、実行、管理
airflow Apache Airflow (または単に Airflow) は、ワークフローをプログラムで作成、スケジュール、および監視するためのプラットフォーム
app-2048 Kubernetesで2048のゲームを動作させるデモアプリケーション
appmesh-controller KubernetesのApp Meshコントローラ
argo-rollouts Argo Rolloutsは、Kubernetesにブルーグリーン、カナリアカナリア解析、実験、プログレッシブデリバリー機能などの高度なデプロイメント機能を提供
argo-workflows Argo Workflows は Kubernetes 用のイベント駆動型ワークフロー自動化フレームワークで、Webhooks、S3、スケジュール、メッセージングキュー、gcp pubsub、sns、sqs など、様々なソースからのイベントで K8s オブジェクト、Argo Workflows、サーバーレスワークロードなどのトリガーに利用可能
argocd Argo CDは、Kubernetesのための宣言型GitOps継続的デリバリーツール
aws-cloudwatch-metrics CloudWatch Container Insightsを使用して、コンテナ化されたアプリケーションやマイクロサービスからメトリクスやログを収集、集計、要約
aws-coredns EKS管理アドオンまたはHelmを介した自己管理アドオンのいずれかを介してCoreDNSを管理
aws-ebs-csi-driver EBS CSIドライバは、コンテナオーケストレータがAmazon EBSボリュームのライフサイクルを管理するために使用するCSIインターフェイスを提供
aws-efs-csi-driver Amazon Elastic File System Container Storage Interface (CSI) ドライバーは、コンテナオーケストレーター用のCSI仕様を実装して、Amazon EFSファイルシステムのライフサイクルを管理
aws-for-fluentbit Fluent BitはオープンソースのLog Processor and Forwarderで、様々なソースからメトリクスやログなどのデータを収集し、複数の宛先に送信
aws-fsx-csi-driver Amazon FSx for Lustre Container Storage Interface (CSI) ドライバーは、コンテナオーケストレーター (CO) のCSI仕様を実装して、Amazon FSx for Lustreファイルシステムのライフサイクルを管理
aws-kube-proxy Kube-proxyは、Amazon EC2の各ノードでネットワークルールを保持する。これにより、Podへのネットワーク通信が可能
aws-load-balancer-controller AWS Load Balancer Controllerは、KubernetesクラスタのElastic Load Balancersの管理を支援するコントローラ
aws-node-termination-handler AWS Node Termination Handlerは、EC2メンテナンスイベント、EC2スポット中断、ASG Scale-In、ASG AZ Rebalance、EC2インスタンス終了など、EC2インスタンスが利用できなくなる可能性のあるイベントに対して、KubernetesコントロールプレーンがAPIまたはコンソールで適切に応答するようにする
aws-privateca-issuer AWS ACM Private CAは、プライベートCAを設定・管理できるAWS Certificate Managerのcert-manager用のアドオン
aws-vpc-cni Amazon VPC CNI plugin for Kubernetesは、KubernetesノードにVPC IPアドレスを割り当て、各ノード上のPodに必要なネットワーキングを設定する役割を担う
calico Calicoは、Kubernetes仮想マシン、ベアメタルワークロードのための、広く採用され、実績のあるオープンソースのネットワーキングとネットワークセキュリティのソリューション
cert-manager Cert Managerは、Kubernetesクラスタのリソースタイプとして証明書と証明書発行者を追加し、それらの証明書の取得、更新、使用プロセスを簡素化
cert-manager-csi-driver csi-driverは、Kubernetesがcert-managerと連携するための Container Storage Interface(CSI)ドライバープラグイン
cert-manager-istio-csr istio-csrは、Istioサービスメッシュで証明書を発行するために cert-manager を使用できるようにする
chaos-mesh Chaos Meshは、Kubernetesのための強力なカオスエンジニアリングプラットフォーム
cilium Ciliumは、DockerやKubernetesなどのLinuxコンテナ管理プラットフォームを使用して展開されたアプリケーションサービス間のネットワーク接続を透過的に保護するためのオープンソースソフトウェア
cluster-autoscaler Cluster Autoscalerは、Kubernetesクラスターのサイズを自動的に調整して、すべてのポッドが実行する場所を確保し、不要なノードがないようにするコンポーネント
cluster-proportional-autoscaler Proportional Autoscalerは、クラスタのスケジューリング可能なノードとコアの数を監視し、必要なリソースのレプリカの数をリサイズする
consul Consulは、サービス間、およびオンプレミスとマルチクラウドの環境およびランタイム間で安全なネットワーク接続を管理できるサービス ネットワーキングソリューション
crossplane Crossplaneは、オープンソースKubernetesアドオンで、プラットフォームチームが複数のベンダーからインフラを集め、アプリケーションチームが利用するためのより高度なセルフサービスAPIを、コードを書くことなく公開することを可能にする
csi-secrets-store-provider-aws CSI Secrets Store Providerは、AWS Key Management Serviceに保存されているシークレットコンテンツを取得し、Secrets Store CSI Driverインターフェイスを使用してそれらをKubernetesポッドにマウントする
datadog-operator Datadog Operatorは、Datadogのデプロイメントに関するユーザーエクスペリエンスを向上させることを目的として、カスタム・リソースのステータスでデプロイのステータス、ヘルス、エラーを報告し、より高度な設定オプションによって誤った設定のリスクを制限する
emr-on-eks EMR on EKSは、Amazon Elastic Kubernetes Service (Amazon EKS)でオープンソースビッグデータフレームワークを実行できるようにするAmazon EMRのデプロイオプションを提供
external-dns External DNSは、IngressとServiceのリソースに基づくDNSレコードの管理を自動化できるKubernetesアドオン
external-secrets External Secrets Operatorは、AWS Secrets Manager、HashiCorp Vault、Google Secrets Manager、Azure Key Vaultなど、外部のシークレット管理システムを統合する
fargate-fluentbit Amazon EKS on Fargateは、Fluent Bitをベースにした組み込みのログルータを提供
gatekeeper Gatekeeperは、Kubernetesクラスタ上でPodを作成・更新するリクエストを、Open Policy Agent(OPA)を使って検証するアドミッション・コントローラ
grafana WebダッシュボードシステムGrafanaをインストール
helm-addon Helm Addon モジュールは、EKS ブループリントを使用してプロビジョニングされた EKS クラスタの Add-On として、汎用 Helm チャートをプロビジョニングするために使用
ingress-nginx Nginx Ingress Controllerは、マイクロサービスを簡単にデプロイするために作られた、最新のHTTPリバースプロキシおよびロードバランサー
karpenter Karpenterは、Kubernetesのために構築されたオープンソースのノードプロビジョニングプロジェクトです。Karpenterは、クラスタのアプリケーションを処理するためにちょうど良いコンピュートリソースを自動的に起動
keda Kubernetesベースのイベント駆動オートスケーラー
kube-prometheus-stack Kubernetesマニフェスト、Grafanaダッシュボード、Prometheusルールのスタック構成
kubecost Kubecostは、Kubernetesを使用するチームにリアルタイムのコスト可視化とインサイトを提供
kuberay-operator KubeRayは、Kubernetes上でRayアプリケーションを実行するためのオープンソースのツールキット
kubernetes-dashboard Kubernetes Dashboardは、Kubernetesクラスタ用の汎用的なWebベースのUI
kyverno Kyvernoは、kubernetesクラスタがセキュリティやガバナンスのポリシーを適用するのを支援することができるポリシーエンジン
local-volume-provisioner ローカルボリュームプロビジョナーは、ホスト上の各ローカルディスクを検出してPVを作成し、解放時にディスクをクリーンアップすることで、事前に割り当てられたディスクのPersistentVolumeライフサイクルを管理
metrics-server Metrics Serverは、Kubeletsからリソースメトリックを収集し、Pod Autoscalerで使用するためにMetrics APIを介してKubernetes apiserverに公開する
nvidia-device-plugin NVIDIA device plugin for Kubernetesは、KubernetesGPUを利用できるようにするDaemonset
opentelemetry-operator AWS Distro for OpenTelemetry (ADOT)は、OpenTelemetryプロジェクトのAWSサポート付きディストリビューションです。
prometheus Prometheusは、システムとサービスの監視システム
promtail Promtail は、ローカルログの内容をLokiインスタンスに送信するエージェント
reloader Reloaderは、ConfigMapおよびSecretで何らかの変化が起こるかどうかを監視
secrets-store-csi-driver Secrets Store CSI Driverは、Kubernetesエンタープライズグレードの外部シークレットストアに保存されている複数のシークレット、キー、証明書をボリュームとしてそのポッドにマウントすることを可能にする
smb-csi-driver SMB CSI Driverは、KubernetesLinuxWindowsの両方のノードでSMBサーバーにアクセスすることを可能にする。
spark-history-server Spark WebUIアドオンとSpark History Server
spark-k8s-operator Kubernetes Operator for Apache Sparkは、Sparkアプリケーションの指定と実行を、Kubernetes上で簡単に実現することを目的としている
strimzi-kafka-operator Strimziを使えば、Kafkaクラスターを数分で簡単にスピンアップ
tetrate-istio Tetrate Istio Distroは、シンプルで安全なエンタープライズグレードのIstioディストロ
thanos Thanosは、既存のPrometheusの上に追加できる高可用性メトリクスシステムで、Prometheusの全インストレーションにまたがるグローバルなクエリビューを提供
traefik Traefikは、マイクロサービスを簡単にデプロイするために作られた、最新のHTTPリバースプロキシとロードバランサー
velero Veleroは、Kubernetesクラスタリソースや永続ボリュームを安全にバックアップ・リストア、ディザスターリカバリー、マイグレーションするためのオープンソースツール
vpa VPAを設定すると、使用状況に応じて自動的にリクエストが設定され、各ポッドに適切なリソース量が確保されるよう、ノードに適切にスケジューリング
yunikorn Kubernetesと完全な互換性があり、Kubernetesのデフォルトスケジューラの代替

いかがでしょうか ... これら拡張機能を試すだけでも多くのアウトプットを生み出せそうだと思います。まさに クラウド(AWS)の上に稼働するクラウド(Kubernetes) と言ったところでしょうか ... 。 いくつかのカテゴリ分けはできると思います。カテゴライズしますと ...

  1. スケーリング
  2. セキュリティ
  3. マイクロサービス
  4. オブザーバビリティ
  5. 機能追加
  6. コスト管理

になりますでしょうか。これら拡張機能のカテゴリの内、最適なものを取捨選択していけばよいため、67個の拡張機能全ての検証をする必要はなさそうですね。必要になったタイミングで検証していければよさそうです。検証環境としての EKS Blueprints はやはりとても強力で魅力的なソリューションだと思います。

EKS Blueprints を利用するタイミング

1. ワークショップコンテンツのブートストラップとして

実際に EKS Blueprints を利用してEKS Clusterの起動にかかった時間は 約20分程 でした。EKSクラスターを削除する時も同じく 約20分程 かかりました。これは拡張機能も含めた所要時間になります。 手軽にさくっと実用的なEKSクラスターを作成するにはもってこいなのではないでしょうか。 ワークショップで事前に EKS Blueprints を活用してブートストラップし、ワークショップが終わったら削除することが可能です。ちょっとした検証環境として活用することも可能でしょう。

私は以前から 手軽にさくっと作成できるEKS検証環境の作成方法 を模索しておりましたので、 EKS Blueprints手軽にさくっと作成できるEKS検証環境の作成方法 に完璧に適合します。

2. プロジェクトのワークロードとして

プロジェクトではEKSだけでなく他のAWSサービスもプロビジョニングすると思いますので、EKS Blueprints をフォークしてカスタマイズし、プロジェクトのワークロードとして活用するのが最も有効な活用方法であると言えます。

まとめ

EKS Blueprints を多くの方が活用して頂いて、 よりよいKubernetesインフラ生活 をしていただければと思います。 EKS Blueprints にはAWS CDK版もあるため、今後はCDK版も利用してみたいと思います!Terraformはyaml地獄でコードリーディングが大変と思われる方もいらっしゃると思いますが、 JetBrainsのIDEプラグインがとても強力 でして、プラグインを入れるだけで快適なコードリーディングが可能です。是非お試し下さい。少しでも参考になれば幸いです。

参考情報

企業ノベルティの思い出

企業ノベルティについて、 節目のタイミングかなと思い 、本ブログで綴らせて頂きます。

企業ノベルティの思い出について

私は2016年頃から様々なテックカンファレンスに参加するようになりまして、たくさんのノベルティを頂きました。当時、テックカンファレンスに参加し始めた自分にとっては、これらノベルティはモチベーション向上に繋がりまして、本当に感謝しています。

頂いたノベルティの例

全ての画像は載せていないのですが、頂いたノベルティの例について共有します。

GitHub

こちらは JJUG CCCAWS Summit など様々な場所で、バリエーション豊富なステッカーを頂きました。パーカーにも興味を持ち、購入したいとは思っているのですが、未だに購入していません。😌

AWS

AWS SummitJAWS DAYS など、多くのAWS関連イベントで ステッカー缶バッチ などを頂きました。特にAWS認定を保持している人がもらえる RPGのロールのようなステッカー は貴重でした。左記以外にも、 AWS SAMAmazon Redshift など、サービス固有のステッカーも頂戴しましたし、 AWS Dev Day では登壇者用のTシャツを頂いたこともありました。どれも大切な思い出です。私がAWSエンジニアであるためAWSに関するノベルティはたくさん頂いておりまして、大事に保管していきたいと思います。

Jenkins

Jenkinsは執事のような姿のステッカーがとても可愛くて、 執事が鬼のような形相 をしているバージョンもあったりします。とても貴重なステッカーを頂戴しました。ありがとうございます。

JetBrains

IDEで有名なJetBrains社のステッカーは 株式会社サムライズム さんがブースを設置してらっしゃる時に頂戴しました。 JetBrainsのIDEは毎日使っているので、ステッカーを貼るだけでモチベーションが上がりました!ありがとうございます。

その他

その他としては、 New Relic Queen と記載のあるNew Relicを女の子に擬人化した可愛いステッカーであったり、 ElasticserachAtlassian などサービス企業様のステッカーや缶バッチなども頂きました。GitHubのコントリビューションが のマークになっているステッカー(草生やして転職的な?)など、多くの企業様のステッカーも頂きました。

なぜ今、企業ノベルティの思い出を書くのか

今回、企業ノベルティの思い出を書き綴ったのは、私自身が企業ノベルティでモチベーションを向上させるステージを脱したことが一つあります。やはり、 参加もよいですが、登壇や運営に取り組むことが最大のモチベーション向上に繋がります。もう一つとして、コロナウイルスによって物理的なカンファレンスが少なくなったことによって企業ノベルティを頂く機会が少なくなったこともあります。

まとめ

今後は企業ノベルティを頂く機会はほとんどないとは思いますが、ノベルティを頂かなくてもモチベーションを維持し続けることができる、新たな節目を迎えることが出来ました。引き続き、自分が楽しい!と思えることに時間を投資していきたいと思います !