プログラムを書こう!

実務や自作アプリ開発で習得した役に立つソフトウェア技術情報を発信するブログ

AWSでサーバレスシステムを構築する(CodeBuild設定)

この記事は2020年04月16日に投稿しました。

f:id:paveway:20190914064630j:plain

目次

  1. はじめに
  2. AWSでサーバレスシステムを構築する(CodeBuild設定)
  3. おわりに

1. はじめに

こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回はAWSでサーバレスシステムを構築する(CodeBuild設定)についてです。

目次へ

2. AWSでサーバレスシステムを構築する(CodeBuild設定)

AWSでサーバレスシステムを構築する方法のCodeBuild設定についてです。
今回の方法はGithubと連携する必要があります。
前回

www.paveway.info

で作成した、VueアプリをGithubに登録しておいてください。

CodeBuild設定

  1. "CodeBuild"画面を表示します。
  2. "プロジェクトの作成"ボタンを押下します。
  3. "プロジェクトを作成する"画面が表示されますので、以下を設定して、"ビルドプロジェクトを作成する"ボタンを押下します。
     ・プロジェクトの設定
      プロジェクト名:任意  ・送信元
      ソースプロバイダ:GitHub
      リポジトリ:OAuthを使用して接続する
      "GitHubに接続"ボタンを押下します。
      "GitHubに接続ボタン押下後、リポジトリは"GitHubアカウントのリポジトリ"を選択します。
      GitHubリポジトリ:GitHubに登録したVueアプリのリポジトリURL
     ・プライマリソースのウェブフックイベント
      "コードの変更がこのレポジトリにプッシュされるたびに再構築する"をチェックします。  ・環境
      環境イメージ:マネージド型イメージ
      オペレーティングシステム:Amazon Linux2
      ランタイム:Standard
      イメージ:aws/codebuild/amazonlinux2-x86_64-standard:3.0
       ※コンパイラーによって変更します。
        Node.jsの場合、どれでも良いです。
      イメージのバージョン:最新を選択します
      サービスロール:新しいサービスロール
      ロール名:表示されたものを使用します。
       ※"▶追加設定"を開きます。
      環境変数:以下の項目を追加します。
       S3_BUCKET_NAME:<S3のバケット名>
       CLOUDFRONT_DISTRIBUTION_ID:<CloudFrontのDistribution ID>
     ・Buildspec
      ビルド仕様:buildspecファイルを使用する
      Buildspec名:buildspec.yml
       ※後述の内容で作成し、Githubリポジトリのルートに登録しておいてください。

CodeBuildの権限を追加

  1. "IAM"画面を表示します。
  2. "IAM"画面の左メニューの"ロール"を選択します。
  3. "ロール"画面が表示されますので、ロール名一覧から"codebuild-sampleapp-build-service-role"を選択します。
     ※CodeBuildで設定したロール名を選択します。
  4. "概要"画面が表示されますので、"ポリシーをアタッチします"ボタンを押下します。
  5. 検索窓に以下を検索し、チェックを入れ、"ポリシーにアタッチ"ボタンを押下します。  ・AmazonS3FullAccess
     ・CloudFrontFullAccess

buildspec.yml

CodeBuildの環境変数で設定した、S3_BUCKET_NAMECLOUDFRONT_DISTRIBUTION_IDを使用します。

version: 0.2
phases:
  pre_build:
    commands:
      - npm install
  build:
    commands:
      - npm run build
  post_build:
    commands:
      - aws s3 sync dict/ s3://${S3_BUCKECT_NAME} --delete --acl public-read
      - aws cloudfront create-invalidation --distributionid ${CLOUDFRONT_DISTRIBUTION_ID} --paths '/*'

目次へ

3. おわりに

CodeBuildにより、ローカルで開発したVueアプリをGithubにPUSHすると、自動的にAWSへ展開されるようになります。

紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。

目次へ


私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。

また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。

EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688

目次へ