Home

Awesome

AWS Infrastructure as Code with Terraform

Terraform AWS GitHub Actions

Overview

このリポジトリは、AWS上にスケーラブルでセキュアなインフラをTerraformで構築するためのコードベースです。SRE/インフラエンジニアとして、インフラのコード化(IaC)により、効率的で再現性のある環境を提供することを目指しています。

Key Features

Future Improvements

Repository Structure

<!-- DIR_STRUCTURE_START --> <!-- DIR_STRUCTURE_START -->
.
├── development
│   ├── compute
│   ├── database
│   ├── management
│   ├── network
│   ├── security
│   └── storage
├── docs
│   ├── drawio
│   └── img
├── function
│   └── archive_zip
├── master
│   ├── account_management
│   └── storage
├── modules
│   ├── acm
│   ├── cloudwatch
│   ├── config
│   ├── ebs
│   ├── ec2
│   ├── ecs
│   ├── iam
│   ├── iam_identity_center
│   └── variable
├── state
│   ├── development
│   └── master
└── stats
    ├── prod
    └── stg

32 directories
<!-- DIR_STRUCTURE_END --> <!-- DIR_STRUCTURE_START --> <!-- DIR_STRUCTURE_END --> <!-- DIR_STRUCTURE_END -->

Setup and Usage

1. Clone & Move Directory

1-1.リポジトリをローカル環境へクローンする。

git clone https://github.com/takehiro1111/aws_terraform.git
cd aws_terraform/{hoge_hoge}

1-2.プロジェクトの初期化

terraform init

1-3.hclで記述したコードと実際の設定との差分を確認

terraform plan

1-4.差分が問題なければ、Deployの実施

terraform apply

<div style="padding: 10px; border-left: 4px solid #f39c12; background-color: #fef9e7;"> <strong>注意</strong>: 適切なAWS認証情報とアクセス権限が必要です。 </div>

2. Terraformの認証情報をdirenvで自動取得する手順

2-1.手動での設定

cd {tfファイルのカレントdir}
direnv allow

2-2.自動での設定

source allow_envrc.sh

2-3.IAM Identity Centerへのログイン

aws sso login --profile $AWS_PROFILE