はじめに
AWS DVA取得に向けた勉強の一環です。
新たな学びがあったら随時追記していきます。
正確性は保証しませんので参考程度に見てください。
CI/CD
- CI
- 継続的インテグレーション(Continuous Integration)
- ソースコードの開発、ビルド、テストを自動化する
- コードリポジトリで行われる
- CD
- 継続的デリバリー(Continuous Delivery)、継続的デプロイメント(Continuous Deployment)
- デプロイの提携作業を自動化する
- 開発環境や本番環境などの隔離された環境で行われる
AWS CodeCommit
- プライベートGitリポジトリをホストするソース管理サービス
- スケーラブルでマネージド
- IAMでGitメンバーを管理できる
- 他のAWSサービスと連携できる
- プッシュ時にAmazon SNSで通知、Lambda関数の呼び出しなど
- クォータ
- リポジトリ数:5000(変更可能)
- リポジトリ名:1~100文字、.gitで終わることはできない
- リポジトリ、ストレージ、リクエストに対して課金される
AWS CodeBuild
- フルマネージド型のビルドサービス
- ソースコードのコンパイル、単体テストの実行を行う
- CodeCommit、S3、GitHub、Bitbucketのソースをサポート
- buildspec.ymlでOS、ランタイム、ツールの組み合わせなどの環境変数を定義する
- インスタンスタイプによって価格が異なる
AWS CodeDeploy
- デプロイを自動化するサービス
- デプロイ先はEC2、オンプレミス、Lambda、ECS
- ソース元はS3、GitHubリポジトリ、Bitbucket
- Appspec.ymlで環境変数を定義する
- EC2へのデプロイ方法
- One at a time:1つずつデプロイする
- Half at a time:半分ずつデプロイする
- All at once:すべてのサーバーへ一度にデプロイ
- Lambda、ECSへのデプロイ方法
- Canary:一定の割合でデプロイした後に残りをデプロイ
- Linear:一定の割合、一定の間隔でデプロイしていく
- All at once:すべてのサーバーへ一度にデプロイ
AWS CodePipeline
- ソフトウェアのリリースに必要なステップをモデル化、視覚化、自動化するためのCD/CDサービス
- ソースリポジトリから構築、テスト、デプロイまでのリリースプロセスを自動化する
- 手動承認アクションも可能
- AWSサービスはもちろん外部サービスとも連携できる