この記事は2020年04月16日に投稿しました。
目次
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回はAWSでサーバレスシステムを構築する(CodeBuild設定)についてです。
2. AWSでサーバレスシステムを構築する(CodeBuild設定)
AWSでサーバレスシステムを構築する方法のCodeBuild設定についてです。
今回の方法はGithubと連携する必要があります。
前回
で作成した、VueアプリをGithubに登録しておいてください。
CodeBuild設定
- "CodeBuild"画面を表示します。
- "プロジェクトの作成"ボタンを押下します。
- "プロジェクトを作成する"画面が表示されますので、以下を設定して、"ビルドプロジェクトを作成する"ボタンを押下します。
・プロジェクトの設定
プロジェクト名:任意 ・送信元
ソースプロバイダ: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の権限を追加
- "IAM"画面を表示します。
- "IAM"画面の左メニューの"ロール"を選択します。
- "ロール"画面が表示されますので、ロール名一覧から"codebuild-sampleapp-build-service-role"を選択します。
※CodeBuildで設定したロール名を選択します。 - "概要"画面が表示されますので、"ポリシーをアタッチします"ボタンを押下します。
- 検索窓に以下を検索し、チェックを入れ、"ポリシーにアタッチ"ボタンを押下します。
・AmazonS3FullAccess
・CloudFrontFullAccess
buildspec.yml
※CodeBuildの環境変数で設定した、S3_BUCKET_NAMEとCLOUDFRONT_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