Terraformチュートリアル 

# この記事について
TerraformでAWSのインフラ環境を構築する手順を、チュートリアル形式でまとめてみました。

## STEP１：AWSアカウント登録
まずはAWSアカウントを作成するところから始めましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/08a68bdd-7633-0f22-b56d-a0bec016dbfd.png)

https://qiita.com/tk_tatsuro/items/646fa44d67954d22e54e

## STEP２：Cloud9環境構築
AWSのクラウド環境（Cloud9）を使用して、Terraformを実装・実行します。
Cloud9環境の環境を構築し、セットアップをしていきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/5a6302a7-9939-520e-2d6b-6517f0a45078.png)

Cloud9環境自体の利用は無料であり、すべての作業をクラウド上で行える点がメリットです。
TerraformやPythonがデフォルトでインストールされており（バージョンアップは別途必要）、インストール等のセットアップをせずに作業を開始することができます。

https://qiita.com/tk_tatsuro/items/3eab2f17b92ded881642

## STEP３：Terraformとは
Terraformの概要についてまとめました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/82edba9e-de03-feda-44c9-c08c928a0f77.png)

https://qiita.com/tk_tatsuro/items/12d14af07ca1657849d2

## STEP４：Terraformセットアップ
Cloud9環境でTerraformを利用するための最低限のセットアップを行っていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/e8017d35-fecc-b628-f664-8bfe9a66f03d.png)

https://qiita.com/tk_tatsuro/items/ef71d9c2c42b6257d55e

## STEP５：Terraform基本コマンド
CUI（Cloud9等）で実行するTerraformの基本コマンドを紹介します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/5d7cd88c-e367-d816-ee6d-020377493996.png)

https://qiita.com/tk_tatsuro/items/ac45ca6006d9d79c31d7

## STEP６：Terraform構成管理
Terraformの基本的なディレクトリ構成や、各ファイルの特性、ファイル間の関係性について解説します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/f26d5509-61e9-1a94-cee2-31942541786d.png)

https://qiita.com/tk_tatsuro/items/112f55ec3732301381c0

## STEP７：Terraform基本ブロック
TerraformでAWS設定を定義する「ブロック」という概念を紹介します。
基本的なブロックについて解説します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/8f089dd0-07f2-3fff-9d7a-47c163927ed4.png)

https://qiita.com/tk_tatsuro/items/e603a5073485c50842bb

## STEP８：Terraform基盤構築：全体概要編
今回構築したアーキテクチャの全体概要を紹介します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/7f0d3dca-67b1-38ef-f191-39883fbeb490.png)

https://qiita.com/tk_tatsuro/items/1ff80b768d83f9ef3b7b

## STEP９：Terraform基盤構築：ETL編
今回構築したETL基盤の実装手順、定義情報等について解説します。

https://qiita.com/tk_tatsuro/items/cb02417c89b053b4aa06

## STEP１０：Terraform基盤構築：イベントソース編
今回構築したログ管理基盤（イベントソース）の実装手順、定義情報等について解説します。

https://qiita.com/tk_tatsuro/items/20bc847d848bbb402860

## 実装コード

https://github.com/tk-tatsuro/Terraform

## 使用したデータセット
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2432928/c2aeed54-5f89-cee5-2bd7-be3daaf78afc.png)

https://www.kaggle.com/c/titanic/data

## 参考サイト（HashiCorp社 Terraform公式ドキュメント）
[Terraform Language Documentation](https://www.terraform.io/language)
※Terraform各コマンドの公式ドキュメント

[Terraform : AWS provider](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)
※AWSプラットフォーム用のTerraformコマンドやパラメータの公式ドキュメント

## 参考資料（AWS公式ドキュメント）
[AWSドキュメントトップ](https://docs.aws.amazon.com/ja_jp/)
※いろいろなドキュメントの索引です。

[AWSデベロッパーガイド（Lambda）](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-dg.pdf)
※Lambdaについての辞書

[AWSデベロッパーガイド（Step Function）](https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/step-functions-dg.pdf)
※StepFuncitionsについての辞書