【登壇】AKIBA.AWS #14 AWS Update LT大会 Code Seriesのアップデートについて #akibaaws

こんにちわ。Caps LockCtrlに割り当てている方の奥です。
AKIBA.AWS #14 AWS Update編でCode Seriesについて話してきました。
なので本ブログで資料の公開をしたいと思います。

自己紹介

登壇資料はこちらです。

CodeCommitとは

  • スケーラブルなGitリポジトリ
  • GitHub、GitLabなどと似たような立ち位置のツール
  • データの転送、保管時に暗号化するのでセキュア(KMSを使用している)
  • プリリクエストなどのコラボレーションツールがある
  • IAMと統合されており、IAM ユーザーをgitユーザとして使用できる
  • AWS環境との統合

CodeBuildとは

  • マネージドなビルドツール
  • CirclCIなどと似たような立ち位置
  • テスト、ビルドを継続的にできる
  • アーティファクト(ビルドして生成されたもの)をS3に保管できる
  • Dockerイメージを元にビルド、テストを行う
    • AWS側で様々な言語のイメージを準備している(GitHubで公開されています)
    • ECR、DockerHub、自分でたてたレジストリも使用可能
  • 設定は、yaml形式で書く(buiildspec.ymlに書く)

CodeDeploy

  • EC2、ECS、オンプレ、lambdaにコードをデプロイできる
  • In-Place、Blue/Green deploymentに対応
  • 手動でのロールバック、失敗時の自動ロールバックをサポート
  • コードはS3、GitHubにある必要がある(IAM ポリシーをアタッチして取得できるようにする必要がある)
  • 設定はyaml形式で書く(appspec.ymlに書く)

CodePipeline

  • デプロイメントパイプライン(ソースコードからテスト、ビルド、デプロイまで)を構築できる
  • CodeCommit、CodeBuild、CodeDeployを組み合わせてパイプラインを作る
  • リリースプロセスの自動化ができる
  • パイプラインの状態をリアルタイムで確認できる

AWS CodeStar

  • AWS上でのパイプラインとデプロイ環境を作る
    • EC2、Elastic Beanstalk、Lambdaをデプロイ先として選択できる
    • CodePipelineでのパイプライン作成が可能
    • CloudWatchでの監視設定も可能
  • プロジェクトテンプレートを元に、環境を構築する
    • Ruby on RailsやDjango、Spring、Node.jsなどの中から選べる

アップデート

2018年12月(Re:Invent付近)から2019年7月までのアップデートを確認していきます。
時系列順ではないのでご了承ください。

CodeCommit

CodeBuild

CodeBuildのコンテナ周り

CodePipeline

VPC Endpoint対応

  • CodeBuild 2018/05
    • プライベートサブネット内のリソース(RDS...)との結合テストとかが可能に
  • CodePipeline 2018/12
  • CodeCommit 2019/03
    • EC2インスタンスからパブリックネットワークを介さずにリポジトリの取得などが可能に

リージョン対応

まとめ

  • AWS環境でのCI/CDではCode Seriesは便利
  • アップデートを重ねて少しずつモダンにはなっている
  • CodeBuildは特に進化している