環境構築¶
本ページでは、Getting Started(本リポジトリ)に含まれるTerraformモジュールを実行するためのセットアップ手順を説明します。
概要¶
ここでは、以下の2つの環境で本リポジトリに含まれるTerraformモジュールを実行するため、環境を整える手順を記載します。
- Delivery環境
- Runtime環境(ステージング環境)
実際の運用では、Runtime環境は用途(テスト環境、本番環境等)に応じて複数必要になるでしょう。
本リポジトリでは、ステージング環境用としてひとつのRuntime環境を使用します。
また、Runtime環境でアプリケーションを動作させるために必要な、GitLabリポジトリのセットアップについても記載します。
前提条件¶
本ページの記載内容を実施するにあたり、2つのAWSアカウントとGitLabアカウントを用意してください。
- AWS
- Delivery環境用AWSアカウントおよび、
AdministratorAccess
権限を持つIAMユーザー - Runtime環境用(ステージング環境用)AWSアカウントおよび、
AdministratorAccess
権限を持つIAMユーザー
- Delivery環境用AWSアカウントおよび、
- 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モジュール用のドキュメントを参照します。
実際の手順へ移る前に、上記ページに記載されている以下の節へ目を通してください。
以降では、これら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については、導入先に合わせて変更してください
- Eponaの環境構築手順ドキュメントのうち、以下の部分に該当します
手順の実施が完了すると、次のリソースが構築されます。
- Delivery環境
- Terraformを実行するためのIAMユーザー
- Delivery環境用
- Runtime環境用
- Terraformを実行するためのIAMユーザーのクレデンシャル
- Delivery環境用
- Runtime環境用
- Terraformを実行時に必要な権限を与えるIAMロール
- State管理用のAmazon S3バケット
- Stateロック用のAmazon DynamoDB
- Terraformを実行するためのIAMユーザー
- 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.