LoginSignup
18
9

More than 5 years have passed since last update.

CodePipeline, CodeCommit, CodeDeploy を使ったデプロイ

Last updated at Posted at 2017-05-29

CodeCommit が東京リージョンでも使えるようになったので, Code~ 系を使ってデプロイを統合します.
※github を使っている場合は CodeDeploy で直接デプロイできます.

以前の記事 AWS CodeDeploy 導入調査 AWS 設定編 ではソースコードを zip 化して
S3 にアップロードして CodeDeploy でデプロイという方法を取っていました.
この方法だとチーム運用するには CI サーバー等がないとちょっと厳しそうだったのですが,
CodeCommit を使用することによりその辺りのハードルが少し下がります.

CodeCommit

https://aws.amazon.com/jp/codecommit/
言うなれば AWS の git ホスティングサービスです.
ただし現時点(2017/06月)では PullRequest 機能もありませんのでメインのソースコード管理サービスとして他から移行するのは厳しいです.
ただ AWS 内のサービスということで他の Code~ サービスとのコラボレーションを期待できます.

リポジトリ作成

  1. "リポジトリの作成" ボタンからリポジトリ名を入力
  2. 以上

CodePipeline

https://aws.amazon.com/jp/codepipeline/
CodeCommit を使っても直接 CodeCommit -> CodeDeploy でデプロイすることはできません.
CodePipeline を使ってデプロイワークフローに沿ってデプロイします.
単純なデプロイだけでなく, CodeBuild を使ってビルドを挟んだり,
jenkins と連動してデプロイ前にテストをしたりとなかなか便利です.

パイプラインの作成

AWS コンソール上でのパイプライン作成方法の流れ
1. パイプライン名を適当に "test"
2. ソースコードプロバイダは "CodeCommit" 
 リポジトリとブランチを指定
3. ビルドは今回スクリプト言語想定なので "なし"
4. デプロイプロバイダは "CodeDeploy" アプリケーション名等は以前の記事参照
5. サービスロールは初回なら "ロールの作成" から作成
6. 最後に内容確認して終了

デプロイまでの流れ

  1. ソースコードコミット&プッシュ (ローカル)
    社内で使っているのは BitBucket なので普通にプッシュします
  2. BitBucket と CodeCommit の同期
    ここはどうしようか検討中
  3. CodePipeline 上で "変更のリリース" を選択
  4. デプロイが完了するまで待つ

まとめ

以上 Code~ を使ったデプロイを簡単にまとめてみました.
デプロイ周りが整っているプロジェクトなら無理に移行する必要はないかと思いますが,
こうしたサービスの機能を利用したデプロイの価値はデプロイツール自体のメンテナンスを
ある程度省けるところにあると思います. (ある程度です)

今後の課題

BitBucket と CodeCommit の同期部分が決まってません.
手動同期はイケてないので何か方法を考えなければなりません.
この記事の内容とか試してみようかと(BitBucket の Webhook を API GateWay で受け取って Lambda 起動)
https://aws.amazon.com/jp/blogs/devops/integrating-git-with-aws-codepipeline/
(2017/5/30追記)CodeCommitのHTTPSによる接続が普通に可能なためBitBucketならミラーフックでよい模様

18
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
9