Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
初心者でもできる! AWS CDKへのコントリビュート
Search
bun
July 24, 2023
Technology
1.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
初心者でもできる! AWS CDKへのコントリビュート
DevelopersIO 2023 福岡 にて登壇させていただいた時の資料となります。
bun
July 24, 2023
More Decks by bun
See All by bun
機能・非機能の学びを一つに!Agent Skillsで月間レポート作成始めてみた / Unifying Bug & Infra Insights — Building Monthly Quality Reports with Agent Skills
bun913
5
5.1k
メールやSlack通知をトリガーにした非同期APIテスト基盤を作ってみた / async-test-platform-for-automated-testing
bun913
0
360
はじめてのSDET / My first challenge as a SDET
bun913
1
800
とあるOSSを継続可能にするための取り組みについて / OSS Refactoring Process
bun913
2
710
そのbeforeEach本当に必要? TIPSをご紹介 / beforeEach TIPS
bun913
1
1.9k
あなたはどっち派?XSpec系テストフレームワークの構造化流派について / XSpec Title Naming
bun913
1
970
良いユニットテストの性質を整理してたら考えるべき設計も見えてきたの
bun913
12
7.4k
GitHub Copilotと快適なユニットテストコード作成生活
bun913
10
8.7k
気が付いたらJSTQB AL TAに合格していた。そんな旅がしたいの。
bun913
2
1.3k
Other Decks in Technology
See All in Technology
range over func 2年間の軌跡 Issue #56413 はGoのエコシステムをどう変えたか
ryujicre8ive
0
100
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
4
1.1k
Gitは怖い?共有ワークスペースから始めるSnowflakeチーム開発
coco_se
0
180
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
140
Reactの設計論
uhyo
15
8.4k
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
320
ASTを使って影響範囲を特定する
nealle
0
170
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
110
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
280
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
0
160
アリアドネの糸と、20年ごとの建て替え ── 長尾真『電子図書館』を、伊勢で読み直す / Rereading Makoto Nagao’s "Electronic Library" in Ise
ykiyota
0
160
AIで仕事のやり方を変える
matsu7874
3
1.1k
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
500
A better future with KSS
kneath
240
18k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
320
Balancing Empowerment & Direction
lara
6
1.3k
Embracing the Ebb and Flow
colly
88
5.2k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
520
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
280
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
410
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
450
Building an army of robots
kneath
306
46k
Transcript
初心者でもできる! AWS CDKへのコントリビュート 2023/7/24 AWS事業本部 モダンアプリケーションコンサルティング部 今泉大樹 1
#devio2023 2
本セッションではAWS CDKという ツールについてお話しします 3
注意事項 •AWSサービスについてのお話しはほとんどありません •AWS CDKの具体的な使い方は紹介いたしません •「俺(私)・・・今年こそOSS貢献するんだ・・・」という方に向けたお話しを いたします 4
自己紹介 5 今泉 大樹 - bun913 クラスメソッド株式会社 AWS事業本部モダンアプリケーションコンサルティング部 Twitter: @bun76235104
GitHub: bun913 4年半ほどITエンジニアをしています (3年Webアプリ寄り、1年半程度AWSインフラ寄り) 2023年7月よりお客様のアプリのモダナイズをご支援 2023 Japan AWS Top Engineer 2023 Japan AWS All Certifications Engineer 最近の趣味: 競技プログラミング(そんなに強くない) 25年前くらいからの趣味: ◯◯の大冒険
Agenda •AWS CDKってなに? •初めてAWS CDKを使うときのオススメ •AWS CDKへのコントリビューション(貢献)と方法 •コントリビューションをするときの注意点 6
7 AWS CDKってなに?
ようするに IaC(Infrastructure as Code) のツールの一つです 8
こんな構成を作るときに 9
AWS CDKならこれだけの記述量です 10
公式サイトを見てみましょう 11
さまざまなプログラミング言語で利用可 12
13 初めてAWS CDKを使うときのオススメ
いろいろな言語でCDKを使えるとなると じゃあPythonやGoなら知っているから それで触ってみようかな? 14
親しんだ言語で開始するのもいいのですが TypeScriptで開始するのがおすすめです 15
私がTSをおスメする理由 AWS CDKが様々な言語で利用できる仕組みと関 係しています 16
JSiiという仕組み 17 TypeScriptで書かれたプロジェクトが JavaScript、Python、Java、C#などでも利用 できる
TypeScriptで書かれたソースをJSiiで変換 18 (ほとんどの)CDKのソースコードはTSで記述 されている
•AWS CDKで検索するとTypeScriptの情報が多く出てくる •TSは静的型付言語なので、型の恩恵を受けることができる • ちょっとしたパラメーターなら調べるより型見た方が早い • 「インフラリソースの定義」という性質上パラメーターが多い •これらに加えて・・・ ということで理由です 19
普段のCDK開発から型の定義やメソッドの定義をよく見る →普段から定義をよく見るようになると構造を理解しやすい →構造を理解すると当然バグの直し方や原因を把握しやすい →コントリビューション(貢献)のチャンス!! ソースコードがTypeScriptということは!? 20
21 AWS CDKへのコントリビューション (貢献)と方法
おさらいも兼ねて AWS CDKへのコントリビューションはTypeScript で書かれるリポジトリのみでOK 22
GitHubにリポジトリがあります 23 https://github.com/aws/aws-cdk
コントリビューションの流れ 24
一般的な開発と同じ流れなのはわかった どうやってIssueとか見つけるの? バグなんて自分では中々見つけられないでしょ 25
まずはGitHubのリポジトリにアクセス 26 https://github.com/aws/aws-cdk
IssuesでIssueの一覧を開く 27 https://github.com/aws/aws-cdk/issues
good first Issueのラベルでフィルタリング 28
(ドキュメント修正の場合) 29 「documentation」のラベルを追加
(軽微なバグ修正の場合) 30 「bug」のラベルを追加
ほぼ答えが書かれているIssueも 31 コアコントリビューターの方が 「どこの」「なにを」直せば良さそうかアドバイス をしている
実際に私が担当したバグ 32 クラス初期化時に受け取ったパラメーターをリ ソース作成時に渡し忘れるバグ お茶目なミスもカワイイですね
これでIssue探しはばっちり ローカルで開発するときの注意点もいくつか 紹介します 33
34 コントリビューションをするときの注意点 (3点)
注意点1 ビルドもサクッと通らない可能性があります 35
AWS CDKのリポジトリはモノレポ 36 aws-cdk-libというパッケージの中にもCDKで 対応する様々なサービスが・・・
aws-cdk-lib というパッケージをビルド 37 lernaというモノレポ管理に利用されるツールを 利用している ※ このビルドにも数分要する https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md
ビルド時にメモリが足らないことも・・・ 38
それですらコントリビューションのチャンス 39 https://github.com/aws/aws-cdk/pull/26465/files 1行追加しただけですが、新規コントリビュー ターの無駄時間を削る貢献です
注意点2 開発時はこまめに単体テストを実施する 40
修正って怖いですよね?でもありがたいことに AWS CDKはかなりテストが書かれている 41
aws-cdk-libだけでもテストに時間がかかる 42 修正した部分だけ単体テストを実行する方法も 書かれています https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md
注意点3 実際にリソースを作成するテストでは 課金に注意 43
Integration Testの課金 44 https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md 実際にリソースを作成する挙動をする
AWS Configの変更の検知には留意 45 https://dev.classmethod.jp/articles/aws-config-amazon-athena/
手っ取り早いのは CDK検証用のアカウント用意した方が良いかも 46
どうしても課金がいやなら 47 代わりにIntegテストを実行してくれたコアコント リビューターの方もいらっしゃいました
48 まとめ
•AWS CDKはIaCの一種でいろいろなプログラミング言語で書ける •TypeScriptで始めるのがおすすめ •初めてのコントリビューションには`good first issue` を探す •課金発生するポイントを抑えて楽しく開発しましょう まとめ 49
50