このリポジトリは、AWS上にスケーラブルでセキュアなインフラをTerraformで構築するためのコードベースです。SRE/インフラエンジニアとして、インフラのコード化(IaC)により、効率的で再現性のある環境を提供することを目指しています。
- Infrastructure as Code (IaC)
- Terraformを用いたコード化により、インフラの管理・構築が簡素化され、環境間の差異が減少します。
- セキュリティとコンプライアンス
- IAM Identity Center、Organizations、MFA強制などを利用し、組織全体でのセキュリティの一貫性を保ちます。
- 自作Module,公式Moduleを用いることによるコードの再利用性向上
- 再利用性を意識したモジュール化で、スケーラビリティと保守性を向上。
- 自動化
- GitHub Actionsを活用して、CI/CDを通じたデプロイフローの自動化を実現しています。
- コスト効率:
- 不要なリソースのクリーンアップやコスト管理をサポートするコードも提供し、コスト最適化を図っています。
- 追加のセキュリティ強化
- 既存のIAM設定に加え、IDP(Identity Provider)を使用したSSOの強化
- WAFでのアクセス制御
- SecurityHub,GuardDuty等のマネージドでの脅威検知の実施
- IDPとの連携: 外部のIdentity Provider (IDP) との統合を行い、IAM Identity Centerに加えて、IDPを挟んだ構成で認証フローを制御します。これにより、企業の既存の認証基盤(例: Azure AD, Oktaなど)と連携し、SSOや認証要件の統一を図ります
- コスト最適化
- リソースに一貫したタグを付与し、コスト分析やリソース追跡の精度向上を目指す。
- EventBridgeを使用して時間帯でのリソース停止
- GithubActionsでのリソース削除をCRONで実施
- 運用の最適化
- AWS Control Towerの導入: より高度なマルチアカウント管理とガバナンスを実現。
- モニタリングの拡張: AWS ConfigやCloudTrailを活用し、より詳細な変更監視やコンプライアンスチェックの強化。
- 各AWSアカウントの各サービスのログ基盤の整備
- Lambdaによるコスト使用量のSlack通知の改修
.
├── 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
git clone https://github.com/takehiro1111/aws_terraform.git
cd aws_terraform/{hoge_hoge}
terraform init
terraform plan
terraform apply
注意: 適切なAWS認証情報とアクセス権限が必要です。
- cdコマンドでTerraformファイルのあるディレクトリに移動し、direnv allowを実行して環境変数を読み込みます。
cd {tfファイルのカレントdir}
direnv allow
- allow_envrc.shスクリプトを用意している場合は、以下のコマンドで自動的に環境設定を適用できます。
source allow_envrc.sh
- IAM Identity Center)を使ってログインし、Terraformで認証できるようにします。
aws sso login --profile $AWS_PROFILE