Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
9
Help us understand the problem. What is going on with this article?
@ta_ta_ta_miya

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

More than 3 years have passed since last update.

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ならミラーフックでよい模様

9
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
9
Help us understand the problem. What is going on with this article?