見出し画像

開発コラム:AWS認定資格対策(CICD)

今回の開発コラムは過去に投稿した、【AWS認定資格に挑戦しよう!】に続いて、AWS認定資格対策について紹介したいと思います。
来年はどんな資格取得しようかな…と少し来年のことを考える時期でもあると思うので、ぜひ参考にしてみてくださいね!

キヤノンITソリューションズではしっかりとした技術力で、使用していただくお客様に安心・安全を提供するために、日ごろからAWSやクラウドなど、DXに関する技術習得をおこなっております。
今回も前回のコラムに引き続き、クラウドサービス推進部の原さんに
紹介していただきます!


医療DXの開発を担当している、クラウドサービス推進部の原です。
今回はAWS認定資格のプロフェッショナル認定にて頻出テーマであるCI/CDについてご紹介します

※本記事は2023年10月時点の情報です。

はじめに

AWS認定資格でアソシエイト認定を取得されたら、次の目標としてプロフェッショナル認定を目指される方が多いと思います。しかし、難易度がアソシエイトから大幅に上昇しており、出題テーマとしても広く深く問われるようになります。

試験形式で見ても、問題数は10問増え、試験時間は50分(約40%)増加しています。また、設問の文章量もかなり長くなっており、サンプル問題で比較すると1問あたりの文字数は約1.5倍となっています。

このように難易度が高いプロフェッショナル認定の試験対策として、試験ガイドにも記載されている頻出テーマのCI/CD関連の主要AWSサービスや関連知識について簡単にご紹介します。

CI/CD関連の主要AWSサービス

 AWS CodeCommit

プライベートGitリポジトリをホストする、フルマネージド型ソースコード管理サービスです。
AWS IAMによるきめ細かい権限制御が可能であり、例えば開発者はdevelopブランチの操作のみを許可し、他のブランチへのマージは管理者しか行えないよう制御することが可能です。
AWS Codeサービス群をはじめ、様々なAWSサービスとの連携を容易に行えます。

また、CodeCommitはプライベートリポジトリのため、誤った公開設定により情報流出してしまうことがありません。例えばGitHubでは、パブリックリポジトリとプライベートリポジトリの両方に対応しているため、誤ってプライベートな情報をパブリックに公開してしまう情報流出問題が過去に複数件発生しています。
(参考 https://xtech.nikkei.com/atcl/nxt/news/18/09574/

 Amazon CodeGuru

ソースコードの品質やパフォーマンスの問題を見つけるフルマネージド型ソースコードレビュー自動化サービスです。
ソースコードレビューによりセキュリティ脆弱性も検知でき、その他バグや推奨事項のレコメンドも可能です。

また、実際の環境にエージェントをインストールすることでパフォーマンス分析も可能で、ソースコードと対応づけて確認できます。

 AWS CodeBuild

コードのビルドやテストを行う、フルマネージド型の継続的インテグレーションサービスです。
AWSが管理するマネージドサービスであり、ビルド・テストサーバのプロビジョニングやスケーリングは自動で行われます。
ビルド・テストを行うソースコードをCodeCommitやGitHub等から直接連携して取得することが可能です。

 

AWS CodeDeploy

各種コンピューティングサービスへのデプロイを自動化するフルマネージド型デプロイサービスです。Blue/Greenデプロイやカナリアデプロイ、線形デプロイなど複数のデプロイ戦略に対応しています。
デプロイ状況のモニタリングやロールバックが容易です。

AWS CodePipeline

リリースプロセスを自動化するフルマネージド型の継続的デリバリーサービスです。
ソースコードの取得・ビルド・テスト・デプロイといった一連のプロセスをパイプラインとして自動化可能です。
AWS Codeサービス群だけでなく、その他AWSサービスやGitHub・Jenkinsなどの製品・サービスとも連携することが可能です。
また、手動承認をプロセスとして組み込めるため、ビルド・テスト結果が問題ないことを確認したうえで本番環境にデプロイすることが可能です。

CI/CD関連知識

Git-flow

Git-flowはGit利用時のブランチ戦略の一つです。
CodePipelineではCodeCommitのブランチを指定可能で、例えば開発用のパイプラインと本番用のパイプラインを作成するなど、ブランチ戦略に沿ってAWS Codeサービス群を構成することが可能です。

(https://nvie.com/posts/a-successful-git-branching-model

 ◇masterブランチ
リリースするソースコードを管理するブランチで、ここで開発作業は行いません。
◇developブランチ
実際に開発作業を行うブランチです。
◇ featureブランチ
新機能開発時に作成するブランチです。developを基に作成し、開発後にマージします。
◇releaseブランチ
リリース直前のバグ修正等を行うブランチです。修正後にmaster, developにマージします。
◇hotfixブランチ
リリース後の緊急のバグ修正を行うブランチです。修正後にmaster, developにマージします。

おわりに

今回はCI/CD関連の主要AWSサービスや関連知識について簡単にご紹介しました。
試験対策としては、ご紹介したAWS Codeサービス群を一式組み込んだCodePipelineを作成したり、CodeDeployのBlue/Greenデプロイで環境切り替えやロールバックを試したりして、実際に手を動かしてみることが有効です。例えばAWSハンズオンコンテンツが掲載されているJP Contents HubでCI/CDやAWS Codeサービス群に関するハンズオンも公開されています。

プロフェッショナル認定の試験対策だけでなく、実際に開発をする際にも有用な知識ですので、CI/CDやAWS Codeサービス群について学習してみてはいかがでしょうか?

※本記事に記載されている会社名、製品名は、それぞれの会社の商標または登録商標です。
※本記事は2023年10月時点の情報です。

■参考URL

AWS試験ガイド(AWS Certified Solutions Architect - Professional)
「SAP-C02」

AWS試験ガイド(AWS Certified DevOps Engineer - Professional)
「DOP-C02」


★―☆。.:*:・゜――――――――――――――――――――――――

キヤノンITソリューションズ 公式Webサイト

開発コラムのマガジンはこちら


この記事が参加している募集