複数のAWSアカウントへCircleCIでデプロイする方法を解説

複数のAWSアカウントへCircleCIでデプロイする方法を解説

Yuto Deguchi

Yuto Deguchi

近年のアプリケーション開発では、ビルド/デプロイやテストの工数を削減するために、各種ツールを活用した開発の自動化が進められています。特にクラウド型のCI/CDサービス「CircleCI」は、Github、Bitbucket、gitLabと簡単に連携できるなどのメリットから、多くの企業が導入しているツールです。

そこで本記事では、CircleCIから複数のAWSアカウントへCD(デプロイ)をおこなう方法を解説します。現在CircleCIを使用している方は、ぜひご覧ください。

▼CI/CDについては下記記事で詳しく解説しています

1. Contextsの設定


CircleCIにログインし、「Organization settings」をクリックします。


「Contexts」をクリックします。


「Create Context」をクリックします。


任意のContext Nameを入力し、「Create Context」をクリックします。こちらは後でCircleCiのconfig.ymlに設定する値となるので、「わかりやすい」かつ「ユニーク」になる名前を設定してください。


Contextsの一覧に作成されたContext Nameが表示されるので、さきほど入力したContext Nameをクリックします。


「Add Environment Variable」をクリックします。


「Environment Variable Name」および「Value」には、以下の表に記載されている値をそれぞれ入力してください。

Environment Variable Name Value
AWS_ACCOUNT_ID AWSアカウントID
AWS_ACCESS_KEY_ID AWSアクセス用キーID
AWS_SECRET_ACCESS_KEY AWSアクセス用シークレットキー
AWS_DEFAULT_REGION ap-northeast-1

2. config.ymlの編集

1.Contextsの設定で作成したContext NameをAWSに関連するJobsの配下にContextとして記述します。

以下はdevelopブランチにマージされたときはdevelop環境へデプロイし、Stagingブランチにマージされた時はstaging環境へデプロイする例です。

以下のコードを参考に適宜環境に合わせてください。

config.yml
orkflows:
  deploy:
    jobs:
      - lint_and_test

      - deploy:
          # develop環境のcontextを読み込む
          context: deploy_develop
          name: deploy_dev
          requires:
            - lint_and_test
          filters:
            branches:
              # developブランチにマージされた時のみ起動
              only: develop
      - aws-ecs/deploy-service-update:
          # develop環境のcontextを読み込む
          context: deploy_develop
          name: deploy_service_update_dev
          requires:
            - deploy_dev
      - deploy_verify:
          # develop環境のcontextを読み込む
          context: deploy_develop
          name: deploy_verify_dev
          requires:
            - deploy_service_update_dev

      - deploy:
          # staging環境のcontextを読み込む
          context: deploy_staging
          name: deploy_stg
          requires:
            - lint_and_test
          filters:
            branches:
              # stagingブランチにマージされた時のみ起動
              only: staging
      - aws-ecs/deploy-service-update:
          # staging環境のcontextを読み込む
          context: deploy_staging
          name: deploy_service_update_stg
          requires:
            - deploy_stg
      - deploy_verify:
          # staging環境のcontextを読み込む
          context: deploy_staging
          name: deploy_verify_stg
          requires:
            - deploy_service_update_stg

さいごに

CircleCIから複数のAWSアカウントへCD(デプロイ)をおこなう方法について解説しました。

CircleCIは使い方しだいで開発効率に大きなインパクトをもたらします。本記事が活用のためのお役に立てれば幸いです。

この記事のシェア数

専門学校卒業後、ソフトウェア開発企業にに入社。その後、転職支援サービス会社の社内SEとして従事した後、2022年にLIGへ入社。これまでの経験を活かし、エンジニアの開発ディレクションやシステム設計を担当。現在インフラに挑戦中。

このメンバーの記事をもっと読む
10年以上の開発実績があるLIGが、最適な開発体制や見積もりをご提案します
相談する サービス概要を見る