Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
tulna07 committed Mar 15, 2024
0 parents commit 8b3b14f
Show file tree
Hide file tree
Showing 332 changed files with 12,448 additions and 0 deletions.
74 changes: 74 additions & 0 deletions .github/workflows/hugo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Sample workflow for building and deploying a Hugo site to GitHub Pages
name: Deploy Hugo site to Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

# Default to bash
defaults:
run:
shell: bash

jobs:
# Build job
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.120.4
steps:
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Install Dart Sass
run: sudo snap install dart-sass
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Pages
id: pages
uses: actions/configure-pages@v4
- name: Install Node.js dependencies
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
- name: Build with Hugo
env:
# For maximum backward compatibility with Hugo modules
HUGO_ENVIRONMENT: production
HUGO_ENV: production
run: |
hugo \
--minify
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/public
Empty file added .hugo_build.lock
Empty file.
Binary file added 001content.zip
Binary file not shown.
6 changes: 6 additions & 0 deletions archetypes/default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

54 changes: 54 additions & 0 deletions config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
relativeURLs = true
# Change the default theme to be use when building the site with Hugo
theme = "hugo-theme-learn"

# For search functionality
[outputs]
home = [ "HTML", "RSS", "JSON"]

[params]
# Change default color scheme with a variant one. Can be "red", "blue", "green".
themeVariant = "workshop"
# Git hub repo link
editURL = ""
description = ""
author = "journeyoftheaverageguy@gmail.com"
showVisitedLinks = true
disableBreadcrumb = false
disableNextPrev = false

[Languages]
[Languages.en]
title = "Create a new AWS account."
weight = 1
languageName = "English"

[[Languages.en.menu.shortcuts]]
name = "<i class='fab fa-aws'></i> AWS Study Group - Blog"
identifier = "AWS Study Group"
url = "https://aws.amazon.com/blogs"
weight = 20

[[Languages.en.menu.shortcuts]]
name = "<i class='fab fa-facebook'></i> AWS Study Group - FB Group"
identifier = "AWS Study Group FB"
url = "https://www.facebook.com/groups/awsstudygroupfcj"
weight = 20

[Languages.vi]
title = "Tạo mới tài khoản AWS"
weight = 2
languageName = "Tiếng Việt"

[[Languages.vi.menu.shortcuts]]
name = "<i class='fab fa-aws'></i> AWS Study Group - Blog"
identifier = "AWS Study Group"
url = "http://awsstudygroup.com"
weight = 20

[[Languages.vi.menu.shortcuts]]
name = "<i class='fab fa-facebook'></i> AWS Study Group - Nhóm FB"
identifier = "AWS Study Group FB"
url = "https://www.facebook.com/groups/awsstudygroupfcj"
weight = 20

35 changes: 35 additions & 0 deletions content/1-Introduction/1-What-is-Infrastructure-as-Code/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
title : "What is Infrastructure as Code?"
date : "`r Sys.Date()`"
weight : 1
chapter : false
pre : " <b> 1.1 </b> "
---

Infrastructure as code, or IaC, is the concept that you define, deploy, update, and destroy your infrastructure by writing and executing code.

So why use IaC? Why learn a new language and tool and encumber yourself with
yet more code to manage?

The answer is that code is powerful. Moreover, when it comes to application infrastructure maintenance with projects that scale, IaC — and Terraform in particular — can help you save a great deal of time and effort when compared to manual configuration.

![Terraform vs Manual Configuration efficiency graph](/images/1/1/0001.svg?featherlight=false&width=80pc)

You can apply a wide range of software engineering techniques, such as the following, to significantly enhance your software delivery process and manage your project backbone easier when your infrastructure is defined as code:

**Documentation**

If crucial infrastructure information resides solely in the mind of one system administrator, the operation could face setbacks if that person is absent due to vacation, resignation, or unexpected circumstances. IaC resolves this issue by documenting the infrastructure in source files accessible to all. Consequently, even in the absence of the administrator, everyone remains informed about operational procedures, ensuring smooth continuity.

**Version control**

Your infrastructure's entire history is now recorded in the commit log since you can put your IaC source files in version control. This turns into an effective tool for troubleshooting, since whenever an issue arises, the first thing you'll do is look through the commit log to see what modifications were made to your infrastructure. In addition, you may choose to fix the issue by just rolling back to a known-working version of your IaC code.

**Validation**

If your infrastructure is described in code, you can do a code review, run a series of automated tests, and run the code through static analysis tools for each and every update. These procedures are known to greatly lower the likelihood of errors.

**Reuse**

Your infrastructure can be packaged as reusable modules so that you can build upon proven, documented, and tried-and-true components rather than starting from scratch with each deployment for every product in every environment.

20 changes: 20 additions & 0 deletions content/1-Introduction/2- What-is-Terraform/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
title : "What is Terraform?"
date : "`r Sys.Date()`"
weight : 2
chapter : false
pre : " <b> 1.2 </b> "
---

[Terraform](https://www.terraform.io/) is an IaC tool that enables you to safely and predictably provision and manage infrastructure in any cloud.

With Terraform for AWS cloud provider, you can quickly and securely provide AWS resources. You can share, reuse, and version these configuration files since they are written in a human-readable manner. Using the application programming interfaces (APIs) of AWS cloud platform and other services, it generates and administers resources with ease. Terraform gives developers the power to design and implement a reproducible, reliable infrastructure, reducing the risk of human error through manual operations.

![Terraform](/images/1/2/0001.svg?featherlight=false&width=100pc)

{{% notice info %}}
Try out [Get Started - AWS](https://developer.hashicorp.com/terraform/tutorials/aws-get-started) and [Write Terraform Configuration](https://developer.hashicorp.com/terraform/tutorials/configuration-language) - Terraform’s tutorials for short hands-on.
{{% /notice %}}

The following page goes over some basic Terraform concepts that we should know before exploring the general design of AnimeHub.

19 changes: 19 additions & 0 deletions content/1-Introduction/3-Notable-Features-of-Terraform/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title : "Notable Features of Terraform"
date : "`r Sys.Date()`"
weight : 3
chapter : false
pre : " <b> 1.3 </b> "
---

#### Terraform Modules

In Terraform, [modules](https://developer.hashicorp.com/terraform/language/modules) are containers for multiple resources that are used together. A module consists of a collection of *.tf* and/or *.tf.json* files kept together in a directory.

#### Terraform Cloud

Rather than requiring you to manage Terraform runs locally, [Terraform Cloud](https://developer.hashicorp.com/terraform/cloud-docs) manages them in a reliable and consistent environment. The infrastructure can be developed in a manner related to application development by connecting to version control systems and securely storing state and secret data. The Terraform Cloud UI provides a detailed view into the resources managed by a Terraform project and gives enhanced visibility into each Terraform operation.

Your team can work collaboratively on every stage of the infrastructure development process with Terraform Cloud. For instance, your team can evaluate and approve the plan before you implement it every time you plan a new modification. In order to avoid concurrent modifications that can corrupt the state file, it also automatically locks the state during operations.

![Terraform Cloud](/images/1/3/0001.svg?featherlight=false&width=100pc)
30 changes: 30 additions & 0 deletions content/1-Introduction/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title : "Introduction"
date : "`r Sys.Date()`"
weight : 1
chapter : false
pre : " <b> 1. </b> "
---

Once upon a time, in the vibrant world of anime enthusiasts, there existed a diverse community of fans scattered across the globe, bound together by their shared love for Japanese animation. This community, like any other, sought a sanctuary — a place where they could immerse themselves in the enchanting realms of anime, discuss their favorite shows, and connect with like-minded individuals.

**AnimeHub**, *a platform that would revolutionize the anime-sharing experience*, is developed to satisfy this growing need. As the developers delved deeper into the project, they recognized the importance of not just building a captivating app, but also ensuring its reliability, scalability, and security. They know that to fulfill the dreams of their community, they need a robust infrastructure and a way to manage it that could support their vision. But none of the people on their team have much AWS experience. You will work with them to develop AnimeHub infrastructure that is reliable as well as scalable. Additionally, you make use of Terraform's powers to help them in more quickly deploying and easily managing AWS resources.

AnimeHub currently allows lovers of anime to share their favorite Japanese-style cartoons and explore those posted by others.

![AnimeHub homepage](/images/1/0001.svg?featherlight=false&width=45pc)

![AnimeHub share page](/images/1/0002.svg?featherlight=false&width=45pc)

The days of tedious on-premise resource maintenance and manual configuration of the AnimeHub backbone will be over thanks to AWS and Terraform, which allowed AinimeHub developers to concentrate on what really mattered — creating a memorable anime-sharing experience.

The next three pages provide a quick overview of Infrastructure as Code (IaC), Terraform, and notable features of Terraform (Terraform modules and Terraform Cloud workspaces), which are the main things we use in this workshop. You will mainly focus on creating nessessary Terraform modules manually and apply Terraform Cloud to helps teams use Terraform together.

If you feel confident with those concepts, proceed to the [High-Level Design](../2-High-Level-Design/) section to explore AnimeHub's AWS architecture, Terraform modules, and Terraform Cloud workspaces in depth before engaging in hands-on work.

#### Content

1. [What is Infrastructure as Code?](1-What-is-Infrastructure-as-Code)
2. [What is Terraform?](2-What-is-Terraform)
3. [Notable Features of Terraform](3-Notable-Features-of-Terraform)
<!-- need to remove parenthesis for path in Hugo 0.88.1 for Windows-->
79 changes: 79 additions & 0 deletions content/1-Introduction/_index.vi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
title : "Tạo mới tài khoản AWS"
date : "`r Sys.Date()`"
weight : 1
chapter : false
pre : " <b> 1. </b> "
---

**Nội dung:**
- [Hướng dẫn Tạo tài khoản AWS](#hướng-dẫn-tạo-tài-khoản-aws)
- [Thêm phương thức thanh toán](#thêm-phương-thức-thanh-toán)
- [Xác thực số điện thoại của bạn](#xác-thực-số-điện-thoại-của-bạn)
- [Chọn Support Plan](#chọn-support-plan)
- [Đợi account của bạn được kích hoạt](#đợi-account-của-bạn-được-kích-hoạt)

## Hướng dẫn Tạo tài khoản AWS

1. Đi đến trang [Amazon Web Service homepage](https://aws.amazon.com/).
2. Chọn **Create an AWS Account** ở góc trên bên phải.
- ***Ghi Chú:** Nếu bạn không thấy **Create an AWS Account**, chọn **Sign In to the Console** sau đó chọn **Create a new AWS Account**.*

![Create Account](/images/1/0001.png?featherlight=false&width=90pc)

3. Nhập thông tin email và **AWS account name**.

![Create Account](/images/1/0002.png?featherlight=false&width=90pc)

4. Hoàn thành thông tin.

![Create Account](/images/1/0003.png?featherlight=false&width=90pc)

5. Xác nhận mã được gửi từ email.

![Create Account](/images/1/0004.png?featherlight=false&width=90pc)
![Create Account](/images/1/0005.png?featherlight=false&width=90pc)
![Create Account](/images/1/0006.png?featherlight=false&width=90pc)

6. Sau khi xác thực email thành công, bạn hoàn thành thông tin tài khoản.

![Create Account](/images/1/0007.png?featherlight=false&width=90pc)
![Create Account](/images/1/0008.png?featherlight=false&width=90pc)

7. Thực hiện hoàn thành hồ sơ đăng ký tài khoản.
- Bạn có thể chọn tài khoản **Personal** hoặc **Business**.

![Create Account](/images/1/0009.png?featherlight=false&width=90pc)

---

## Thêm phương thức thanh toán

- Nhập thông tin thẻ tín dụng của bạn và chọn **Verify and Add**.
- ***Ghi chú**: Bạn có thể chọn 1 địa chỉ khác cho tài khoản của bạn bằng cách chọn **Use a new address** trước khi **Verify and Add**.

![Create Account](/images/1/00010.png?featherlight=false&width=90pc)

---

## Xác thực số điện thoại của bạn

1. Nhập số điện thoại.
2. Nhập mã security check sau đó chọn **Call me now**.
3. AWS sẽ liên hệ và xác thực mở tài khoản.

![Create Account](/images/1/00011.png?featherlight=false&width=90pc)

---

## Chọn Support Plan

- Trong trang **Select a support plan**, chọn 1 plan có hiệu lực, để so sánh giữa các plan, bạn hãy xem [Compare AWS Support Plans](https://aws.amazon.com/premiumsupport/plans/).

---

## Đợi account của bạn được kích hoạt

- Sau khi chọn **Support plan**, account thường được kích hoạt sau vài phút, nhưng quá trình có thể cần tốn đến 24 tiếng. Bạn vẫn có thể đăng nhập vào account AWS lúc này, Trang chủ AWS có thể sẽ hiển thị một nút “Complete Sign Up” trong thời gian này, cho dù bạn đã hoàn thành tất cả các bước ở phần đăng kí.
- Sau khi nhận được email xác nhận account của bạn đã được kích hoạt, bạn có thể truy cập vào tất cả dịch vụ của AWS.

Loading

0 comments on commit 8b3b14f

Please sign in to comment.