非エンジニアが「AWS Amplify Console」でWEBサイトを公開する環境を作ってみた

こんにちは。フォトクリエイトで[オールスポーツコミュニティ](https://allsports.jp/)のプロダクトマネージャーを担当している[@takuyamajp](https://qiita.com/takuyamajp)です。

この記事は[フォトクリエイト Advent Calendar 2019](https://qiita.com/advent-calendar/2019/photocreate)の 4日目 の記事です。

## 自己紹介

WEBディレクターとして制作会社2社を経て、小さなWEB制作会社を経営しておりました。この時に縁がありフォトクリエイトとは業務委託契約でお仕事をさせて頂いており、2019年1月に正式にジョインしました。プロダクトマネージャーというポジションで仕事をするのは現職が初めてです。

ちなみにマラソンのタイムはハーフ1:44:22です。次はフルマラソンでサブ4を目指します。

## フォトクリエイトのことも少し紹介

僕はカスタマーバリュー開発部に所属しています。顧客への提供価値を高めることをミッションとした部門です。UX体験を一気通貫で作れる体制となっており、エンジニアやデザイナーを中心とした様々な触手のメンバーで構成されています。職能別のグループから成り立っており、プロジェクト単位で各グループからメンバーをアサインして開発を進めていくという働き方をしています。

※当社サービスの[「スナップスナップ」](https://snapsnap.jp/)のみPdM、アナリスト、エンジニア、デザイナーといった異なる職能を持ったメンバーで構成されたマトリックス組織として活動しています。

オールスポーツコミュニティは部分的に様々なメンバーにサポート頂いているのですが、フルコミットしているのは今のところ僕一人です。(ちょっと寂しい)

なのでユーザーインタビュー、簡単なUIのイメージ作り、仕様書作成やデータ分析など、コードを書くこと以外は幅広く出来ることはやろう。というスタンスで働いています。そこでコードが書けない僕でも簡単にWEBサイトを公開する環境を作れる方法があるよ！ってことを社内のエンジニアに教えてもらいましたので記事にしてみました。

インフラ担当が不在の制作会社の方々や、社内が人手不足で困っている僕と似た境遇の方の一助になれたら嬉しいです。

## この記事を読んで出来るようになること

- 非エンジニアでもスタティックなWEBサイトを公開する環境を構築出来るようになります

ランディングページを公開する環境などはこれで十分です。静的なサーバ構築で制作会社に数万支払ってる方などは、今後は自分でやりましょう。簡単です。

説明していきます。

## 構築する環境の概要

GitHubのリポジトリとAWS Amplifyを組み合わせて作ります。
特定のブランチにプッシュするとWEBサイトが公開される仕組みになります。

#### AWS Amplify とは

![AWS_Amplify.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/822cf402-7698-7794-94cf-98079ab413c8.png)

`AWS Amplify` とは静的なWEBサイトを公開する環境を簡単に作ることが出来るサービスです。

- ドメインを割り当てることが出来る。(本番の環境として使える)
- プッシュするだけでWEBサイトを公開出来る (FTPとか使わないで良い)
- ブランチごとのデプロイ〜公開 (別の確認用のディレクトリを作ったりしないでOK)
- ベーシック認証も出来る (.htaccess書く必要なし)
- スケーラビリティもバッチリ(ストレージはS3なので容量などを気にしないで良い)

素晴らしいですね。

## 構築手順

#### 1.ソースコードを準備

![Github1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/04be5274-bfaa-d7fb-8c0f-c89b8d4a7f54.png)

公開したいWebサイトを用意します。今回はGitHubで説明します。

#### 2.GitHubとAWS Amplifyを連携する

![AWS1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/db5f94db-3d50-0315-3b69-70b7109c7c27.png)

[AWSマネジメントコンソール](https://aws.amazon.com/jp/)にログインしてサービスへ移動します。

![AWS2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/cb3078b4-c3f6-6823-2327-fb3c972c4903.png)

AWSはサービスが沢山ありますね。検索フォームで `AWS Amplify` と検索しましょう。

![AWS3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/ccf48351-96fc-311c-1d44-6c8271ed3330.png)

Amplify Console の方の `GET STARTED` を選択します。

![AWS4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/382af18a-4fca-19ef-7984-4b39ee058619.png)

GitHubを選択して`Continue`をクリック。

![AWS5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/f6b45245-0229-51c9-a3ab-2a92ce415e78.png)

GitHubのログインアカウントを入力して `Sign in` します。

![AWS6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/1cb37249-1426-1cae-f006-e27dff8fd8df.png)

`Authorize aws-amplify-console` をクリック。
これでGitHubアカウントとAWS Amplifyの連携ができました。

#### 3.AWS AmplifyでWEBサイトを公開

![AWS7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/69296b39-f9f8-b94c-e923-07b9918a823b.png)

公開したいリポジトリを選択して `次へ` をクリック。

![AWS8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/ece50e25-3257-665c-8200-971e5241cce5.png)

続いてブランチを選択して `次へ` 。

![AWS9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/fc6f2768-8de5-5def-d6e0-f3b569f9d0d8.png)

`次へ` です。

![AWS10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/1a0da79c-be2a-6627-114b-66f951920772.png)

リポジトリの詳細を確認してください。公開したいリポジトリとブランチは間違いありませんか？
問題なければ `保存してデプロイ` を選択します。

![AWS11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/b6d965cb-17e9-e746-8e5e-ec92b7936621.png)

ビルドが始まりました。

![AWS12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/476d4f20-3863-1a49-6044-0e1e8eadd757.png)

ファイル数が少ないので15秒くらいで終わりました。
それでは `赤枠部分のURL` をクリックします。

![AWS13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/d17f7a53-9c67-1a1d-4f91-8cc03509d3cb.png)


公開されました。

---
とても簡単ですね？これならスタティックなWEBサイトも簡単に公開、運用していくことができます。

![AWS14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213595/a555fb40-8cb6-2c08-4d15-2b46f59175df.png)

独自ドメインで公開したい場合は `ドメイン管理` から行います。route53で管理しているドメインを割り当てることができます。


## 最後に

2020年はオールスポーツコミュニティの顧客体験を向上させる為に、プロダクトをしっかり磨き込んで行く予定です。フォトクリエイトでは一緒にプロダクトを盛り上げてくださる方を募集しております。少しでもご興味をお持ちいただけたようでしたら、人事部門の担当者 [twitter: @tetsunosuke](https://twitter.com/tetsunosuke) へお知らせください。