AWS CDK開発に必要なスキルセットをまとめました。メンバーのアサイン時や、CDK学習時に参考にしてください。
全開発者に必須
・git に関する基礎知識
日々のコード管理に必須です。
・使用するプログラム言語に関する基礎知識
配列、辞書、(型)、繰り返し、条件分岐、関数、クラス、オブジェクト指向等の理解が必要です。フレームワーク等に関する知識は不要です。プログラムに関する基礎知識のないメンバーがいると、独自クラス等の利用が困難になります。この場合、プログラム言語を用いた抽象化という、CDKの良さを生かせません。
・AWSサービスに関する基本的な知識
(AWS Certified Solutions Architect - Associate レベル)
AWSの各サービスの公式サイトを読んで設定内容を理解するために必要です。
・CDKおよびCloudFormationに関する基礎知識
CDKおよびCloudformationの公式サイトを読んで適切な値を設定するために必要です。
・エラーログを読んで解決する力
大量のコードを書いて一度にデプロイすると、cdk synth時やcdk deploy時によくエラーが発生します。エラー解決経験が浅い場合は、頻繁にデプロイして成功体験を積みましょう。
・(あると嬉しい)英語リーディング力
AWSやCDKの公式ドキュメントの日本語は分かりにくい表現が多いです。時にはドキュメントが英語だけのこともあります。TOEIC800点レベルのリーディング力があれば、ストレスなく開発できます。
技術リーダークラスに必要な力
アプリと基盤両方の知識が必要です。1人ですべてカバーできない場合、アプリ経験者と基盤経験者でタッグを組むと良いでしょう。
・AWSのベストプラクティスに関する知識
(AWS Certified Solutions Architect - Professional レベル)
複数の選択肢からプロジェクトの特性に合わせ、適切なAWSアーキテクチャを選択する力が必要です。
・AWSの構築経験、レビュー経験
メンバーの成果物をレビューし、設定が誤っている点を指摘できる力が必要です。
・CDKのベストプラクティスに関する知識
cdkのベストプラクティスとプロジェクトの制約を踏まえ、適切なコード規約やコードの構造、実装方法やテスト方法の選択をする必要があります。例えば、適切なスタック間参照方式を利用しないと、エラーが多発します。
・アプリケーションの詳細設計、製造経験
アプリ開発で利用するコード規約やクラス図等を作成しないと、メンバーがバラバラにコードを書いてしまうため、良いCDKコードはできません。
・開発環境構築力(リーダでなくても誰か一人あれば可)
CDK開発ではエディタやgit等のツールを利用します。社内のセキュリティ規制が強い場合、ネットワーク関連の申請が必要になることもあります。開発環境構築方法を手順化し、開発前に全メンバーに共有しましょう。開発環境の構築が遅れると、全員の開発が遅延します。
・ネットワーク構築経験(リーダでなくても誰か一人あれば可)
ネットワークの構築には、専門的な知識が必要です。誤った設定をすると、疎通トラブルやセキュリティ上のリスクが発生します。ネットワーク構築経験がある人を一人以上アサインしましょう。
・AWS上でのデータベース構築経験(リーダでなくても誰か一人あれば可)
データベースのデプロイには、1回あたり1時間近くの時間がかかり、簡単に何度もトライ&エラーを繰り返せません。データベース構築経験者がいると構築が楽になるでしょう。
・IAMに関する有識者(リーダでなくても誰か一人あれば可)
CDKではgrantメソッドが使えるものの、IAMの権限漏れエラーは良く発生します。経験者がいると安心です。
・CDK構築経験
CDK構築経験者がいると、前回のアセットを再利用し、よくあるエラーなどを回避できます。経験者がいればベストですが、CDK経験者がいない場合、上記のスキルを持った人をアサインして、リスクを最小化しましょう。
・マネジメント経験
日々の進捗やプログラムの製造で発生する課題を管理する力が必要です。特にCDK開発経験が浅い場合、大量の課題が発生します。進捗状況や課題解決状況を自動で視覚化できるツールが利用できると便利です。
まとめ
CDK開発においては、CDKコードを書けることが何よりも重要です。コードをかけない人をアサインしても、遅延が拡大するだけです。基盤メンバーとアプリ開発経験者を組み合わせ、コードを書ける人を増やしましょう。
本記事で必要なスキルを学んだら、以下記事を参考にCDK学習をスタートしましょう!