コンテンツにスキップ

環境構築

本ページでは、Getting Started(本リポジトリ)に含まれるTerraformモジュールを実行するためのセットアップ手順を説明します。

概要

ここでは、以下の2つの環境で本リポジトリに含まれるTerraformモジュールを実行するため、環境を整える手順を記載します。

  • Delivery環境
  • Runtime環境(ステージング環境)

ℹ️ 実際の運用では、Runtime環境は用途(テスト環境、本番環境等)に応じて複数必要になるでしょう。
ℹ️ 本リポジトリでは、ステージング環境用としてひとつのRuntime環境を使用します。

また、Runtime環境でアプリケーションを動作させるために必要な、GitLabリポジトリのセットアップについても記載します。

前提条件

本ページの記載内容を実施するにあたり、2つのAWSアカウントとGitLabアカウントを用意してください。

  • AWS
    • Delivery環境用AWSアカウントおよび、AdministratorAccess権限を持つIAMユーザー
    • Runtime環境用(ステージング環境用)AWSアカウントおよび、AdministratorAccess権限を持つIAMユーザー
  • GitLab
    • example-chatソースコードの格納先

本ページの手順では以下のソフトウェアを使用します。手順を実行する環境にインストールしてください。

  • Git
  • Terraform
    • Eponaは、Terraform 0.14.10で開発および動作確認を行っています
    • こちらから、お使いのプラットフォームに合ったTerraform実行ファイルをダウンロードしてください
  • AWS CLI

また、Eponaおよび本リポジトリ内のドキュメントが参照できるようにしてください。

セットアップ手順

Terraform実行環境をセットアップする

本リポジトリをcloneする

最初に、本リポジトリをcloneしてください。

$ git clone https://gitlab.com/eponas/epona_aws_getting_started.git
$ cd epona_aws_getting_started

以降では、本リポジトリがcloneされているものとして記載します。

導入先に合わせて最低限変更が必要な情報

cloneした本リポジトリに含まれているファイルには、以下の情報が固定で記載されています。

用途 clone時の設定値
サービス名(任意の名称) epona
Delivery環境用AWSアカウント 777221001925
Runtime環境用(ステージング環境用)AWSアカウント 232105380006
ドメイン epona-devops.com

利用の際には、導入先の環境に合わせてこれらの値の修正が必要になります。

Epona AWS patternモジュールのドキュメントを参照する

Eponaに含まれる、AWS向けのpatternモジュール用のドキュメントを参照します。

Epona AWS patternモジュール

実際の手順へ移る前に、上記ページに記載されている以下の節へ目を通してください。

以降では、これら3つのリソースを作成します。

Terraform実行ユーザーを作成する

Terraformを実行するための環境を整えます。

Eponaの環境構築手順に沿って、Delivery環境およびRuntime環境を操作するTerraform実行ユーザーを作成してください。


ℹ️
本リポジトリが表現している環境の一部を、容易に構築できるEpona AWS Starter CLIも利用できます。

Epona AWS Starter CLIを使用すると、以下の2つの環境構築が容易になります。

  • Eponaが想定するTerraform実行環境
  • アクティビティ(デプロイメントパイプライン)が実現可能な環境

構築される環境は、本リポジトリと同様にexample-chatがデプロイされることを想定しています。

まずはEponaを簡単に試してみたいようでしたら、Epona AWS Starter CLIの利用もご検討いただくとよいでしょう。


手順の中でコピーを求められるsetup_terraform_accountsディレクトリは、cloneした本リポジトリに含まれています。

  • setup_terraform_accounts/delivery … Delivery環境用
  • setup_terraform_accounts/runtimes/staging … Runtime環境用

環境構築手順を本リポジトリ向けに読み替えるにあたり、以下の内容に注意してください。

  • #FIXME:の部分を導入先の環境に合わせて修正してください
    • Eponaの環境構築手順ドキュメントのうち、以下の部分に該当します
      • [任意の名称]の部分は好みで決定いただいてかまいませんが、S3バケット名等で使用されるためユニークになるように指定してください
      • Runtime環境における[環境名]Stagingとしてください
    • AWSアカウントIDについては、導入先に合わせて変更してください

手順の実施が完了すると、次のリソースが構築されます。

  • Delivery環境
    • Terraformを実行するためのIAMユーザー
      • Delivery環境用
      • Runtime環境用
    • Terraformを実行するためのIAMユーザーのクレデンシャル
      • Delivery環境用
      • Runtime環境用
    • Terraformを実行時に必要な権限を与えるIAMロール
    • State管理用のAmazon S3バケット
    • Stateロック用のAmazon DynamoDB
  • Runtime環境
    • Terraformを実行時に必要な権限を与えるIAMロール
    • State管理用のAmazon S3バケット
    • Stateロック用のAmazon DynamoDB

ℹ️ IAMユーザーは、Delivery環境のみに作成されます。

以降、Terraformの実行には、ここで作成したTerraform実行ユーザーを使用します。
各環境のTerraform実行ユーザー向けに作成したクレデンシャルは、大切に控えておいてください。

example-chatをGitLabに登録する

本リポジトリを使って環境を構築し、体感してみるにはアプリケーションが必要です。
動作させるアプリケーションとしては、example-chatを使用します。

デプロイメントパイプラインでは、このexample-chatをビルド、デプロイします。
そのためには、GitLab環境にexample-chatのソースコードを登録する必要があります。

GitLab上に、リポジトリを作成してください。
特にこだわりがなければ、登録元のリポジトリ名であるexample-chatで良いでしょう。

example-chatを、GitHubよりcloneします。

$ git clone https://github.com/Fintan-contents/example-chat.git
$ cd example-chat

cloneしたリポジトリに対して、GitLabリポジトリをoriginに登録してpushします。

$ git remote rename origin fintan-contents
$ git remote add origin [作成したGitLabのリポジトリ名]
$ git push origin

ここでpushしたリポジトリは、CIパイプラインで利用します。

以上で、AWSでGetting Startedに含まれるコンテンツを実行できる準備が整いました。

この後は

patternモジュールの適用に進んでください。


※ このドキュメントはクリエイティブコモンズ(Creative Commons) 4.0 の「表示—継承」に準拠しています。

※ このドキュメントに記載されている会社名、製品名は、各社の登録商標または商標です。

© 2021 TIS Inc.