BitbucketとCodeDeployの連携を試してみた
こんにちは、菊池です。
今回はタイトルの通り、BitbucketとAWS CodeDeployの連携を試してみました。
やってみる
以下の手順で実施します。
- CodeDeployアプリケーションの作成
- BitbucketでCodeDeploy連携の有効化
- IAMロールの作成
- BitbucketでCodeDeploy連携の設定
- AppSpecの作成・デプロイ
まずは、CodeDeployアプリケーションの作成です。
任意のアプリケーション名/デプロイグループ名を入力します。今回はEC2向けのデプロイを設定しました。そのほかはデフォルトの設定で作成しています。
続いて、BitbucketでCodeDeploy連携を有効化します。Bitbucketの設定で、[統合の検索]に進みます。
AWS CodeDeploy for Bitbucketがありますので、[追加]しましょう。
確認画面を進みます。
有効化したら、リポジトリ単位の設定です。連携したリポジトリで、[設定] -> [CodeDeploy Settings]を選択します。IAMロールの設定に必要な、ポリシーとアカウントID/外部IDが表示されますので控えます。
次に、IAMロールを作成します。クロスアカウントアクセスのロール作成に進み、先ほど控えたアカウントID/外部キーを入力して作成します。
ポリシーは以下を設定しました。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:PutObject" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "codedeploy:*" ], "Resource": "*" } ] }
IAMロールが作成できたら、BitBucketの設定に戻ります。作成したIAMロールのARNと、利用したいリージョンを選択します。
問題なければ、CodeDeployに作成したアプリケーションとS3バケットが読み取りできます。連携するアプリケーションとバケットを選択します。
これで連携の準備ができました!
リポジトリに、appspec.ymlとデプロイするコードをアップします。
今回は試しなので、以下のみ記述してます。
version: 0.0 os: linux files: - source: /html destination: /var/www/html
デプロイするブランチの画面から、[Deploy to AWS]をクリックします。
デプロイメントグループを選択し、Submit!
しばらくすると、デプロイが完了します。CodeDeployの画面を見ると、デプロイが成功したことが確認できます。
というわけで、BitBucketと連携したデプロイができました!
最後に
サードパーティのGitホスティングサービスである、BitbucketとCodeDeployの連携を試してみました。GitHubとAWS Codeサービスの連携は多くサポートされていますが、Bitbucketなど、他のサービスとの連携も拡大していっています。うまく組み合わせてCI/CDを効率化しましょう。