SlideShare a Scribd company logo
Using Terraform for AWS as the IaC
tool
Lay How
Technical Lead in Seek Asia
layhow.tan@seekasia.com
https://www.linkedin.com/in/lay-how/
Hanan
Software Engineer in Seek Asia
hanan@seekasia.com
Agenda
• Introduction
• What is Terraform?
• Why Terraform?
• What We Build?
• Limitation & Challenges
Agenda
An extension of SEEK, SEEK Asia combines the two giants in job portal
brands, jobsDB and JobStreet, under one roof and helps improve the lives
of millions across Asia through comprehensive platforms.
JobStreet and jobsDB are the
leading online employment
marketplaces in Asia. Our
brands help facilitate the
matching and communication
of job opportunities between
candidates and hirers.
INTRODUCTION
What is
• Give overview on Terraform
with AWS.
• Share what we learned.
What isn’t
• Workshop or Training.
• Criticism one over another
• Marketing (we receive no
commission from HashiCorp!)
Why Are We Here
Objective
 IaC tool by HashiCorp.
 Build, change & version
infrastructure easily &
efficiently.
What is Terraform?
What
Easy to Learn
• Something relative
• The team prefer it over
others IaC tools
• The team find it’s easy to
understand
Multi-provider Support
 AWS
 CloudFlare
 GitHub
 GCP
 Azure
 Etc…
Why
Why Terraform?
Terraform CloudFormation
Formatting
Why
Reference: https://ryaneschinger.com/blog/aws-cloudformation-vs-terraform/
Plan Before Execution
 Show which resources will be
created/updated/terminated.
 Execution plan can generated
and save for later execution
Remote State
 Stored in S3 (State) &
DynamoDB (State Locking).
 Different engineer work on
the same stack
Why
Why Terraform?
What We Built with Terraform
Serverless API, Queue Processing,
CICD and many more …
Reference : https://geekandpoke.typepad.com/geekandpoke/2008/05/the-new-social.html
API With Lambda
What We Built
AWS LambdaAmazon API Gateway
AWS Cloud
Amazon SQS
On-premise data center
Database
AWS Direct
Connect
Amazon CloudWatch
Logging
Queue Processing
What We Built
AWS Lambda
AWS Cloud
Amazon SQS (DLQ)Amazon SNS
Alert
Amazon CloudWatch
Reference : http://chittagongit.com/icon/programmer-icon-23.html
On-premise data center
Database
AWS Direct
Connect
Amazon SQS
Trigger
Amazon CloudWatch
Logging
Metrics
API With ECS Fargate
What We Built
AWS Cloud
Amazon SQS (Retry)
Alert &
Visualization
Amazon CloudWatch
Reference : http://chittagongit.com/icon/programmer-icon-23.html
On-premise data center
AWS Direct
Connect
Amazon Route 53 AWS Fargate
Amazon SNS
Application
Logging
Amazon Elasticsearch
Service
Stream via Lambda
Application
Load Balancer
CICD with CodePipeline
What We Built
GitHub AWS CodeBuild
AWS Cloud
AWS CodeDeploy
Amazon EC2 Container
Registry (ECR)
Amazon CloudWatch
AWS CodeBuild
Web Hook Event
Trigger
image definitionTask
Task
Application
Load Balancer
Blue Green
Deployment
Limitation & Challenges
Reference : https://www.pinterest.com/pin/293648838181095940/
• Documentation is not
always up-to-date.
• Need to dig into
GitHub’s issue or other
sources.
Incomplete
Documentation
Limitation & Challenges
Not All AWS Configurations Supported
in Terraform
Limitation & Challenges
New AWS Features pending Terraform
Release
• New feature/services will not available
immediately
Limitation & Challenges
Reference : https://xkcd.com/303/
Q & A
Q&A

More Related Content

Using Terraform for AWS as the IaC tool

  • 1. Using Terraform for AWS as the IaC tool Lay How Technical Lead in Seek Asia layhow.tan@seekasia.com https://www.linkedin.com/in/lay-how/ Hanan Software Engineer in Seek Asia hanan@seekasia.com
  • 2. Agenda • Introduction • What is Terraform? • Why Terraform? • What We Build? • Limitation & Challenges Agenda
  • 3. An extension of SEEK, SEEK Asia combines the two giants in job portal brands, jobsDB and JobStreet, under one roof and helps improve the lives of millions across Asia through comprehensive platforms. JobStreet and jobsDB are the leading online employment marketplaces in Asia. Our brands help facilitate the matching and communication of job opportunities between candidates and hirers.
  • 5. What is • Give overview on Terraform with AWS. • Share what we learned. What isn’t • Workshop or Training. • Criticism one over another • Marketing (we receive no commission from HashiCorp!) Why Are We Here Objective
  • 6.  IaC tool by HashiCorp.  Build, change & version infrastructure easily & efficiently. What is Terraform? What
  • 7. Easy to Learn • Something relative • The team prefer it over others IaC tools • The team find it’s easy to understand Multi-provider Support  AWS  CloudFlare  GitHub  GCP  Azure  Etc… Why Why Terraform?
  • 9. Plan Before Execution  Show which resources will be created/updated/terminated.  Execution plan can generated and save for later execution Remote State  Stored in S3 (State) & DynamoDB (State Locking).  Different engineer work on the same stack Why Why Terraform?
  • 10. What We Built with Terraform Serverless API, Queue Processing, CICD and many more … Reference : https://geekandpoke.typepad.com/geekandpoke/2008/05/the-new-social.html
  • 11. API With Lambda What We Built AWS LambdaAmazon API Gateway AWS Cloud Amazon SQS On-premise data center Database AWS Direct Connect Amazon CloudWatch Logging
  • 12. Queue Processing What We Built AWS Lambda AWS Cloud Amazon SQS (DLQ)Amazon SNS Alert Amazon CloudWatch Reference : http://chittagongit.com/icon/programmer-icon-23.html On-premise data center Database AWS Direct Connect Amazon SQS Trigger Amazon CloudWatch Logging Metrics
  • 13. API With ECS Fargate What We Built AWS Cloud Amazon SQS (Retry) Alert & Visualization Amazon CloudWatch Reference : http://chittagongit.com/icon/programmer-icon-23.html On-premise data center AWS Direct Connect Amazon Route 53 AWS Fargate Amazon SNS Application Logging Amazon Elasticsearch Service Stream via Lambda Application Load Balancer
  • 14. CICD with CodePipeline What We Built GitHub AWS CodeBuild AWS Cloud AWS CodeDeploy Amazon EC2 Container Registry (ECR) Amazon CloudWatch AWS CodeBuild Web Hook Event Trigger image definitionTask Task Application Load Balancer Blue Green Deployment
  • 15. Limitation & Challenges Reference : https://www.pinterest.com/pin/293648838181095940/
  • 16. • Documentation is not always up-to-date. • Need to dig into GitHub’s issue or other sources. Incomplete Documentation Limitation & Challenges
  • 17. Not All AWS Configurations Supported in Terraform Limitation & Challenges
  • 18. New AWS Features pending Terraform Release • New feature/services will not available immediately Limitation & Challenges Reference : https://xkcd.com/303/

Editor's Notes

  1. What isn’t Not trying to evaluation IaC options
  2. What are the accept value for this argument? Hidden argument
  3. Example: Sns topic subscription Email endpoint : These are unsupported because the endpoint needs to be authorized and does not generate an ARN until the target email address has been validated. This breaks the Terraform model and as a result are not currently supported. http or https are partially supported :  Supported only for the end points that auto confirms the subscription If-Else condition, looping for configuration block.
  4. Event trigger from SQS to Lambda