Bitbucketから直接AWS環境にデプロイする方法

目次

はじめに

今回ははBitbucket上で直接AWS環境にアプリケーションをデプロイする方法を紹介したいと思います。
利用するものはAWSのCodeDeployとBitbucketのAWS CodeDeploy for Bitbucketだけです。

AWS側の設定

IAMの設定

  1. https://console.aws.amazon.com/iam/home#/rolesにアクセスし、「Create New Role」をクリックする
  2. 「Role Name」はCodeDeployに設定し、「Next Step」をクリックする
  3. 「AWS Service Roles」の「AWS CodeDeploy」を「Select」する
  4. とりあえず、「AWSCodeDeployRole」を選択して、足りないPolicyは後で追加しよう!
  5. Step.5まで行けたら、「Create Role」をクリックする
  6. 作ったRoleを選択して、「Attach Policy」から足りないPolicyを其れ其れ追加しよう
    追加のPolicyリスト一覧

– AWSLambdaFullAccess
– AmazonS3FullAccess
– AWSCodeDeployFullAccess
– AmazonSNSFullAccess

CodeDeployの設定

CodeDeployを使って、EC2にデプロイする手順は別途記事を書くので、
しばらくの間はその他の記事を参考してください(T-T)
EC2デプロイのためにCodeDeployを導入する

S3の設定

S3を利用して、ソースコードを中継するので、CodeDeploy用のパケットを作りましょう
1. https://console.aws.amazon.com/s3/homeにアクセスし、「Create Bucket」をクリックする

2. 「Bucket Name」はなんでもいい!「Create」をクリックする

3. 完成www

Bitbucket側の設定

AWS CodeDeploy for Bitbucketの追加

  1. Bitbucketにログインして、アカウントの管理ページにアクセスする
  2. 「Find integrations」の中から「AWS CodeDeploy for Bitbucket」を探し出し、「追加」ボダンを押す

AWS CodeDeploy for Bitbucketの設定

  1. 実際に設定したリポジトリの「設定」から「CodeDeploy Settings」を選択する
    「AWS Account ID」と「External ID」を覚えましょう!後で使うから
  2. IAMからCodeDeployのRole設定を開き、「Trust Relationships」⇒「Edit Trust Relationship」信頼関係の設定を編集する
  3. 「AWS Account ID」と「External ID」を以下のコードに追加して、「Update Trust Policy」をクリックする
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "codedeploy.amazonaws.com"
},
"Action": "sts:AssumeRole"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::「AWS Account ID」:root"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "「External ID」"
}
}
}
]
}
  1. 追加したら、Bitbucketの「CodeDeploy Settings」に戻って、「Role ARN」と「Region」を入力する
  2. デプロイ対象の「Application」とソースコード保存用の「S3 Bucket」を選択して、saveする

実施にデプロイしてみる

  1. Bitbucket上でデプロイしたいブランチの画面に遷移し、「Deploy to AWS」をクリックする
  2. デプロイした「Deployment Group」を選択して、「Submit」をクリックする
  3. 右上はグリーンのチェックマークになったら、デプロイ完了になります。
– PR –