AWS での CI/CD
#AWS #CI #CD
各種 AWS リソースの使い所
こんな感じらしい
https://gyazo.com/4db364fbbf139a836af82430c2d5bf83
Source
CodeCommit
フルマネージド型のソースコントロールサービスです。このサービスにより、企業ではセキュアかつ非常にスケーラブルなプライベート Git リポジトリを簡単にホストできます
https://aws.amazon.com/jp/codecommit/
AWS が提供する Git リポジトリ。ユーザの単位が IAM ユーザ。GitHub 等と比べると機能はかなり劣る。今の所は AWS で利用するコードのための箱として認識しておくのが良さそう。
Build & Test
CodeBuild
完全マネージド型のビルドサービスです。ソースコードをコンパイルし、テストを実行し、デプロイできるようにソフトウェアパッケージを作成できます。
https://aws.amazon.com/jp/codebuild/
ビルド時に buildspec.yml を記述する。
https://dev.classmethod.jp/cloud/aws/understanding-codebuild/
https://gyazo.com/1bebd5bd2c304639ba5b5db4a1ef2aee
Deploy
table:deploy_services
サービス 概要
CodeDeploy 既に存在するインフラに、アプリケーションをいい感じにデプロイしたい
Elastic Beanstalk インフラに特殊な要件がいらないので、 アプリケーションのデプロイと同時にいい感じにインフラも構築してほしい
OpsWorks インフラもまとめたアプリケーションの構成を管理したい
CloudFormation クラウドを自動構築。OSの設定を細かく指定できる
https://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/deployment-steps.html#deployment-steps-server
https://dev.classmethod.jp/cloud/aws/cm-advent-calendar-2015-aws-re-entering-codedeploy/
https://dev.classmethod.jp/cloud/aws/cm-advent-calendar-2015-aws-re-entering-elasticbeanstalk/
CodeDeploy
https://gyazo.com/e5823c9e4e7c783a5fc3e6f6cd6648b5
Beanstalk
アプリケーション名
プラットフォーム
構成済みの各種環境(java とか python とか)
Docker も選択可能
アプリケーションコード
サンプル
サンプルコードで立ち上がる
コードアップロード
S3 もしくは直接アップロード
上の3つさえ設定するとすぐさま立ち上がる。すごい。
Docker を利用する場合は、最低限以下の2つがあれば動くようだ。
Dockerfile
コンテナをビルド
Dcokerrun.aws.json
インスタンス上で実行
https://gyazo.com/c30dfcb8bb7df750b988a15842134573
OpsWorks
https://gyazo.com/11f0b30961a94aa6784cff4f62710b75
全体
CodePipeline
迅速で信頼性の高いアプリケーションのアップデートを可能にする継続的デリバリーサービスです。
https://aws.amazon.com/jp/codepipeline/
CI, CD のためのツールだと思っておけば良い。
table:pipeline
用語 概要
Pipeline 1連のプロセス
Revision 実行単位
Stage プロセスの単位
Action Stage 内におけるタスク
Transition Stage 間の移動
https://gyazo.com/f3f1522570999217da483653d7aae090
#AWS