1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website bán hàng trên nền tảng đám mây aws

51 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Website Bán Hàng Trên Nền Tảng Đám Mây AWS
Tác giả Ngô Mạnh Quỳnh
Người hướng dẫn PGS.TS. Ngô Hồng Sơn
Trường học Trường Đại Học Phenikaa
Chuyên ngành Khoa Học Máy Tính
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 51
Dung lượng 5,43 MB

Nội dung

Sản phẩm: Kết quả sinh viên đã xây dựng website bán hàng trên nền tảng đám mây AWS, thể hiện được khả năng cơ bản của kỹ sư phát triển hệ thống trên nền đám mây, bao gồm Triển khai websi

Trang 1

Xây dựng website bán hàng trên nền tảng đám mây AWS

Sinh Viên: Ngô Mạnh Quỳnh

Giảng viên hướng dẫn: PGS.TS Ngô Hồng Sơn

Hà Nội – Năm 2022

Copies for internal use only in Phenikaa University

Trang 2

2

TRƯỜNG ĐẠI HỌC PHENIKAA Độc lập – Tự do – Hạnh phúc

NHẬN XÉT ĐỒ ÁN/KHOÁ LUẬN TỐT NGHIỆP

CỦA GIẢNG VIÊN HƯỚNG DẪN

Giảng viên hướng dẫn: Ngô Hồng Sơn, Bộ môn: khoa CNTT

Tên đồ án: Xây dựng website bán hàng trên nền tảng đám mây AWS

Sinh viên thực hiện: Ngô Mạnh Quỳnh, Lớp: KHMT – K12

NỘI DUNG NHẬN XÉT:

I Nội dung báo cáo:

Nội dung đồ án tốt nghiệp đã bao gồm các phần cơ bản: Giới thiệu tổng quan, Cơ

sở lý thuyết về cloud, xây dựng hệ thống, triển khai hệ thống, kết quả thực hiện Kết quả đạt được sinh viên đã triển khai thành công một website bán hàng trên nền tảng cloud aws Tuy nhiên phần mô tả kết quả, sinh viên có thể mô tả kỹ hơn, đầy đủ hơn để nêu bật kết quả công việc của mình

II Sản phẩm:

Kết quả sinh viên đã xây dựng website bán hàng trên nền tảng đám mây AWS, thể hiện được khả năng cơ bản của kỹ sư phát triển hệ thống trên nền đám mây, bao gồm Triển khai website lên Web server trên AWS, Sử dụng thành thạo Docker, Triển khai các dịch vụ trên AWS Sản phẩm hoạt động đúng theo yêu cầu đặt ra ban đầu

III Ưu nhược điểm:

- Ưu điểm: sử dụng các công cụ hiện đại, tiên tiến trong phát triển sản phẩm và triển khai hệ thống

- Nhược điểm: Báo cáo còn mô tả sơ sài các yêu cầu của hệ thống và sản phẩm thu được

IV Kết luận:

Sản phẩm của sinh viên gồm hệ thống và báo cáo tương ứng đã đạt các yêu cầu cơ bản của đồ án tốt nghiệp ngành Khoa học mấy tính, GVHD đồng ý để sinh viên được bảo vệ trước hội đồng

Hà Nội, ngày tháng năm 2022

GIẢNG VIÊN HƯỚNG DẪN (Ký và ghi rõ họ tên)

Ngô Hồng Sơn

Copies for internal use only in Phenikaa University

Trang 3

3 Copies for internal use only in Phenikaa University

Trang 4

4

LỜI CẢM ƠN

Qua thời gian học tập và rèn luyện tại trường Đại học Phenikaa, đến nay em đã kết thúc khoá học 4 năm và hoàn thành đồ án tốt nghiệp Để có được kết quả này em xin chân thành cảm ơn:

 Ban chủ nhiệm trường Đại học Phenikaa cùng các thầy cô giáo trong khoa đã giảng dạy, quan tâm và tạo điều kiện thuận lợi để chúng em học tập và rèn luyện trong suốt thời gian theo học tại trường

 PGS.TS: Ngô Hồng Sơn đã tận tình hướng dẫn, giúp đỡ em trong quá trình học tập và đặc biệt là trong suốt thời gian làm đồ án tốt nghiệp Thầy luôn quan tâm và rất nhiệt tình hướng dẫn em từ việc tìm tài liệu cho đến việc định hướng lựa chọn giải pháp để triển khai đồ án Thầy cũng luôn nhắc nhở, động viên em mỗi khi gặp khó khăn, nhờ vậy mà em đã hoàn thành đồ án tốt nghiệp của mình đúng thời hạn

 Em cũng xin gửi lời cảm ơn tới các thành viên trong lớp, bạn bè và những người

đã động viên, giúp đỡ em rất nhiều trong thời gian học tập và làm đồ án tốt nghiệp

Hà Nội, tháng 7 năm 2022 Sinh viên thực hiện

Ngô Mạnh Quỳnh

Copies for internal use only in Phenikaa University

Trang 5

5

Chương 1: Giới thiệu về đồ án tốt nghiệp 1

1.1 Tên đề tài 1

1.2 Mục tiêu nghiên cứu 1

1.3 Thành viên tham gia thực hiện đồ án 1

1.4 Phương thức thực hiện và kết quả 1

1.4.1 Phương thức thực hiện 1

1.4.2 Kết quả 1

Chương 2: Tổng quan cơ sở lý thuyết và Cloud Computing 2

2.1 Ngôn ngữ lập trình JavaScript 2

2.2 ReactJS 2

2.3 Hệ điều hành Linux 2

2.3.1 Định nghĩa 2

2.3.2 Cấu trúc hệ điều hành Linux 2

2.3.3 Công dụng của hệ điều hành Linux 3

2.3.4 Ưu nhược điểm của hệ điều hành Linux 3

2.4 Cloud Computing 3

2.4.1 Cloud Computing là gì? 3

2.4.2 Lợi ích của Cloud Computing 3

2.5 Tìm hiểu về AWS 4

2.5.1 AWS là gì? 4

2.5.2 Một số dịch vụ trên AWS. 4

2.6 Tìm hiểu về NGINX 5

2.6.1 Nginx là gì? 5

2.6.2 Nginx có tính năng gì? 5

2.7 Tìm hiểu về Docker 5

2.7.1 Docker là gì? 5

2.7.2 Container trong Docker là gì? 6

2.7.3 Các khái niện liên quan. 6

Chương 3: Xây dựng hệ thống trên AWS 7

3.1 Mô hình hệ thống 7 Copies for internal use only in Phenikaa University

Trang 6

6

3.2 Tạo VPC trên AWS 8

3.3 Tạo Subnet trên AWS 9

3.4 Tạo Route Table trên AWS 10

3.4.1 Tạo Public Route Table trên AWS 10

3.4.2 Tạo Private Route Table trên AWS 13

3.5 Tạo Instance trên AWS 14

Chương 4: Triển khai website lên AWS 18

4.1 Deploy source back-end và front lên server 18

4.1.1 Deploy source back-end 18

4.1.2 Deploy source front-end 19

4.2 Sử dụng Dockerfile để build image 21

4.2.1 Dockerfile cho back-end 21

4.2.2. 21

4.2.3 Dockerfile cho front-end 22

4.3 Sử dụng dịch vụ ALB trên AWS 23

Chương 5: Kết quả 31

5.1 Kết quả thu được 31

5.2 Ưu điểm, nhược điểm 38

5.2.1 Ưu điểm 38

5.2.2 Nhược điểm 39

5.3 Hướng phát triển 39

Copies for internal use only in Phenikaa University

Trang 8

Hình 5: Tạo mới subnet

Hình 6: các bước tạo subnet Hình

Hình 7: Các bước tạo Route table

Hình 8: Tạo mới Internet Gateways

Hình 9: Các bước tạo Internet gateways

Hình 10: Chỉnh sửa Routes in Route table

Hình 11: Thêm internet gateways vào route table

Hình 12: Chỉnh Subnet associations

Hình 13: tạo mới NAT gateway

Hình 14: Các bước tạo NAT Gateway

Hình 15: Tìm dịch vụ EC2 trên AWS

Hình 16: Tạo mới Instance

Hình 17: Các bước tạo Instance (1)

Hình 18: Các bước tạo Instance (2)

Hình 19: Các bước tạo Instance (3)

Hình 20: Danh sách Instance và trạng thái

Hình 21: Zip folder Source code Backend

Hình 22: Truyền file code back-end vào trong server

Hình 23: giải nén folder với các thư mục trên server

Hình 24: Sửa config folder để tương thích với môi trường trên AWS

Hình 25: Build Source front-end

Hình 26: Zip folder đã build từ source front-end

Hình 27: Truyền file build front-end vào trong server

Hình 28: Folder front-end sau khi giải nén

Hình 29: dockerfile build image cho back-end

Copies for internal use only in Phenikaa University

Trang 9

9

Hình 30: dockerfile build image cho front-end

Hình 31: truy cập vào dịch vụ EC2 trên AWS

Hình 32: Tạo mới Load Balancer

Hình 33: Chọn kiểu Load Balancer

Hình 34: Cấu hình cho Application Load Balancer (1)

Hình 35: Cấu hình cho Application Load Balancer (2)

Hình 36: Cấu hình cho Application Load Balancer (2)

Hình 37: Chọn kiểu target cấu hình target group

Hình 38: chọn Instance và chọn port cho instance đó

Hình 39: Config target group trong dịch vụ ALB

Hình 40: Build images front-end

Hình 41: image front end đã được tạo

Hình 42: Sau khi chạy container front-end thành công

Hình 43: kiểm tra trạng thái của website vừa được triển khai

Hình 44: Build image back-end

Hình 45: image Back-end đã được tạo

Hình 46: Sau khi container back-end được chạy thành công

Hình 47: Kiểm tra log của container back-end

Hình 48: giao diện của website

Hình 49: giao diện admin của trang web

Hình 50: Giao diện khi xem sản phẩm của trang web

Hình 51: Giao diện mô tả sản phẩm của trang web

Hình 52: Chứng chỉ được AWS cung cấp miễn phí

Hình 53: công cụ monitor(thông báo qua email hoặc telegram) cho trang web

Copies for internal use only in Phenikaa University

Trang 10

10

Danh mục từ viết tắt

3 Application Load Balacing ALB

4 Amazone Elastic Computer Cloud EC2

6 Elastic Container Registry ECR

7 Web Application Firewall WAF

Copies for internal use only in Phenikaa University

Trang 11

11

Mở đầu

Ngày nay, đối với các công ty, doanh nghiệp, việc quản lý tốt, hiệu quả dữ liệu của riêng công ty cũng như dữ liệu khách hàng, đối tác là một trong những bài toán được ưu tiên hàng đầu và đang không ngừng gây khó khăn cho họ Để có thể quản lý dược nguồn dữ liệu

đó, ban đầu các doanh nghiệp phải đầu tư, tính toán rất nhiều các loại chi phí như chi phí cho phần cứng, phần mềm, mạng, chi phí cho quản trị viên, chi phí bảo trì, sửa chữa, … Ngoài ra

họ còn phải tính toán khả năng mở rộng, nâng cấp thiết bị, phải kiểm soát việc bảo mật dữ liệu cũng như tính sẵn sàng cao của dữ liệu

Từ một bài toán điển hình như vậy, chúng ta thấy được rằng nếu có một nơi tin cậy giúp các doanh nghiệp quản lý tốt nguồn dữ liệu đó, các doanh nghiệp sẽ không còn quan tâm đến cơ sở hạ tầng, công nghệ mà chỉ tập trung chính vào công việc kinh doanh của họ thì có thể mang lại cho họ hiệu quả và lợi nhuận ngày càng cao hơn

Thuật ngữ “Cloud Computing” ra đời bắt nguồn từ một trong những hoàn cảnh như vậy

Thuật ngữ “Cloud Computing” còn được bắt nguồn từ ý tưởng đưa tất cả mọi thứ như

dữ liệu, phần mềm, tính toán, … lên trên mạng Internet Chúng ta sẽ không còn trông thấy các máy PC, máy chủ của riêng các doanh nghiệp để lưu trữ dữ liệu, phần mềm nữa mà chỉ còn một số các “máy chủ ảo” tập trung trên mạng Các “máy chủ ảo” sẽ cung cấp các dịch vụ giúp cho doanh nghiệp có thể quản lý dữ liệu dễ dàng hơn, họ sẽ chỉ trả phí cho lượng sử dụng dịch vụ của học, mà không cần phải đầu tư nhiều vào cơ sở hạ tầng cũng như quan tâm nhiều đến công nghệ Xu hướng này sẽ giúp nhiều cho các công ty, doanh nghiệp vừa và nhỏ

mà không có cơ sở hạ tầng mạng, máy chủ để lưu trữ, quản lý dữ liệu tốt

Vậy “Cloud Computing” là gì ? Nó có thể giải quyết bài toán trên như thế nào và có những đặc điểm nổi bật gì ? Với vấn đề đã phân tích ở trên nên em sẽ thực hiện “xây dựng một trang bán hàng trên nền tảng đám mây AWS”

Copies for internal use only in Phenikaa University

Trang 12

1

Chương 1: Giới thiệu về đồ án tốt nghiệp

1.1 Tên đề tài

Xây dựng website bán hàng trên nền tảng đám mây AWS

1.2 Mục tiêu nghiên cứu

Xây dựng một website bán hàng

Triển khai website bán hàng lên nền tảng đám mây AWS

1.3 Thành viên tham gia thực hiện đồ án

1 Ngô Hồng

Sơn

Giảng viên hướng dẫn

uni.edu.vn

 Thao tác được trên hệ điều hành linux

 Tìm hiểu về các dịch vụ trên AWS

 Triển khai các dịch vụ trên AWS

 Sử dụng thành thạo Docker

 Triển khai website lên Web server trên AWS

1.4.2 Kết quả

Xây dựng website bán hàng trên nền tảng đám mây AWS

Copies for internal use only in Phenikaa University

Trang 13

người dùng tương tự máy chủ (Nodejs) để tạo ra những website động

 Ngôn ngữ lập trình JavaScript được phát triển bởi Brendan Eich tại Netscape với tiền thân là Mocha Sau đó Mocha đuọc đổi thành LiveScript và cuối cùng mới đổi thành

JavaScript

 JavaScript là một chương trình dễ học, những lỗi JavaScript rất dễ để phát hiện, từ đó

giúp người dùng sửa lỗi một cách nhanh chóng hơn

 Những trình duyệt web có thể dịch thông qua HTML mà không cần sử dụng đến một

compiler

 JavaScript được các chuyên gia đánh giá là một loại ngôn ngữ lập trình nhẹ và nhanh

hơn nhiều so với các ngôn ngữ lập trình khác

 Những website có sử dụng JavaScript thì chúng sẽ giúp cho trang web đó có sự tương tác cũng như tăng thêm nhiều trải nghiệm mới cho người dùng Giúp thao tác với

người dùng phía Client và tách biệt giữa các Client với nhau

 JavaScript dễ bị các hacker và scammer khai thác hơn, JavaScript cũng không có khả

năng đa luồng hoặc đa dạng xử lý

2.2 ReactJS

 ReactJS là một opensource được phát triển bởi Facebook, ra mắt vào năm 2013, bản thân nó là một thư viện JavaScript được dùng để xây dựng và tương tác với các thành phần trên website Một trong những điểm nổi bật nhất của ReactJS đó là việc render

dữ liệu không chỉ thực hiện được trên tầng server mà còn ở dưới Client nữa

 ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựng giao diện người dùng hay UI Trong lập trình ứng dụng front-end, lập trình viên thường sẽ phải làm việc chính trên 2 thành phần sau: UI và xử lý tương tác của người dùng UI là tập hợp những thành phần mà nhìn thấy được trên bất kỳ một ứng dụng nào, ví dụ có thể

kể đến bao gồm: menu, thanh tìm kiếm, những nút nhấn, card, … Giả sử đang lập trình một website thương mại điện tử, sau khi người dùng chọn được sản phẩm ưng ý rồi và nhấn nút “Thêm vào giỏ hàng”, thì việc tiếp theo mà phải làm đó là thêm sản phẩm được chọn vào giỏ hàng và hiển thị lại sản phẩm đó khi user vào xem => xử lý tương tác

 Trước khi có ReactJS, lập trình viên thường gặp rất nhiều khó khăn trong việc sử dụng “vanilla JavaScript”(JavaScript thuần) và Jquery để xây dựng UI Điều đó đồng nghĩa với việc quá trình phát triển của ứng dụng sẽ lâu hơn và xuất hiện nhiều bug, rủi

ro hơn Vì vậy vào năm 2011, Jordan Walke – một nhân viên của Facebook đã khởi tạo ReactJS với mục đích là cải thiện quá trình phát triển UI

2.3.2 Cấu trúc hệ điều hành Linux

Copies for internal use only in Phenikaa University

Trang 14

3

Kernel: Hay được gọi là phần “Nhân” vì đây là phần quan trọng nhất trong máy

tính bởi chứa đựng các module hay các thư viện để quản lý, giao tiếp giữa phần cứng máy tính và các ứng dụng

Shell: Shell là phần cứng có chức năng thực thi các lệnh (command) từ người

dùng hoặc từ các ứng dụng yêu cầu, chuyển đến cho Kernel xử lý Shell chính là cầu nối để kết nối Kernel và Application, phiên dịch các lệnh từ Application gửi đến kernel để thực thi Có các loại Shell như sau: sh (the Bourne Shell), bash (Bourne-again shell), csh (C shell), ash (Almquist shell), tsh (TENEX C shell), zsh (Z shell)

Application: Đây là phần quen thuộc với chúng ta nhất, phần để cài đặt ứng dụng,

chạy ứng dụng để người dùng có thể phục vụ cho nhu cầu cảu mình

2.3.3 Công dụng của hệ điều hành Linux

 Tương tự như các hệ điều hành khác, Linux cung cấp môi trường trung gian để người dùng có thể giao tiếp với phần cứng máy tính, thực hiện các công việc của mình

 Bên cạnhd đó, nhờ ứng dụng mã nguồn mở mà Linux đem lại nhiều sự thoải mái hơn cho người dùng, đặc biệt các lập trình viên, nhà phát triển

2.3.4 Ưu nhược điểm của hệ điều hành Linux

2.4.2 Lợi ích của Cloud Computing

Chi phí: Tiết kiệm chi phí chính là lợi ích đầu tiên mà Cloud Computing mang lại

cho người dùng Thay vì bỏ chi phí đầu tư cả một hệ thống máy chỉ để lưu trữ dữ liệu, chịu các chi phí vận hành hay bảo dưỡng hàng năm thì chỉ cần phải dành một khoản tiền nhỏ để duy trì chúng

Tính mở rộng: Lợi ích thứ hai của điện toán đám mây đó là khả năng mở rộng

linh hoạt về quy mô của nó Điều này có nghĩa là sẽ được phân phối đúng lượng tài nguyên cần thiết với nhu cầu sử dụng của mình Có thể bổ sung tài nguyên bất

cứ khi nào phát sinh nhu cầu và tại đúng vị trí địa lý mong muốn

Hiệu năng: Lợi ích thứ ba là vấn đề về hiệu năng Các dịch vụ điện toán đám mây

lớn nhất chạy trên mạng lưới trung tâm dữ liệu an toàn trên thế giới Và đương nhiên chúng được nâng cấp thường xuyên để tăng hiệu quả và mức độ bảo mật So với mô hình trung tâm dữ liệu quy mô nhỏ như một công ty điều này mang lại lợi

Copies for internal use only in Phenikaa University

Trang 15

4

ích cực lớn như giảm độ trễ mạng và tăng tính kinh tế khi áp dụng theo quy mô lớn hơn

Bảo mật: Lợi ích thứ tư là tính bảo mật Nhiều nhà cung cấp dịch vụ đám mây

cung cấp một loạt các chính sách, công nghê và kiểm soát nhằm củng cố tính bảo mật Qua đó nó giúp bảo vệ dữ liệu, ứng dụng và cơ sở hạ tầng khỏi các mối đe doạ tiềm ẩn hay các cuộc tấn công mạng vẫn thường xuyên xảy ra

Tốc độ: Lợi ích thứ năm là tốc độ Hầu hết các dịch vụ Cloud Computing hiện

nay đều được cung cấp dịch vụ theo yêu cầu Nghĩa là cần bao nhiêu có bấy nhiêu Thậm chí ngay một lượng lớn tài nguyên máy tính cũng có thể được cung cấp chỉ trong vài phút Như vậy sẽ không cần áp lực trong việc lên kế hoạch tính toán công suất cho phù hợp nữa Thay vào đó có thể sử dụng bình thường, khi cần có thể bổ sung ngay lập tức

Độ tin cậy: Lợi ích cuối cùng là tính tin cậy của hệ thống Các đơn vị trung gian

chuyên cung cấp các dịch vụ về Cloud, máy chủ, … như AWS luôn có các biện pháp giúp người dùng sao lưu và bảo vệ dữ liệu Thậm chí họ còn có các trung tâm DC / DR giúp khôi phục dữ liệu khi bị tấn công vào mạng và duy trì hoạt động liên tục của hệ thống Đây là những thứ mà phạm vi nhỏ như một công ty đơn lẻ sẽ khó có thể đáp ứng được

2.5 Tìm hiểu về AWS

2.5.1 AWS là gì?

 AWS (Amazon Web Service ) là nền tảng dịch vụ đám mây an toàn, mang đến khả năng tính toán, lưu trữ cơ sở dữ liệu, phân phối nội dung và các chức năng khác nhằm giúp các doanh nghiệp mở rộng và phát triển

2.5.2 Một số dịch vụ trên AWS

Compute

o Amazone Elastic Computer Cloud (EC2): dịch vụ máy chủ ảo

o Elastic Load Balacing (ELB): dịch vụ cân bằng tải

o AWS Lambda: dịch vụ triển khai code không server (serverless)

o AWS Elastic Beantalk : triển khai các ứng dụng web

o VM Import/Export: import/export ảnh các máy ảo

Storage and Content Delivery

o Amazon S3: dịch vụ lưu trữ đối tượng

o Amazon Glacier: dịch vụ lưu trữ dữ liệu ít truy cập

o Amazon Elastic Block Store (EBS): dịch vụ lưu trữ dạng khối, phục vụ

EC2 nhưng độc lập EC2

o Amazon Elastic File System (EFS): dịch vụ lưu trữ và chia sẻ file

o Amazon CloudFront: dịch vụ phân phối nội dung (content delivery)

o Amazon Storage Gateway: dịch vụ cổng lưu trữ dữ liệu

o Amazon AWS Import/Export Snowball: dịch vụ di chuyển dữ liệu trực

tiếp lên đám mây của AWS

Database

o Amazon RDS: dịch vụ cơ sở dữ liệu mô hình quan hệ Amazon Aurora,

Oracle, Microsoft SQL Server, PostgreSQL, MySQL & MariaDB

o Amazon DynamoDB: dịch vụ cơ sở dữ liệu NoSQL của Amazon

o Amazon Redshift: dịch vụ kho dữ liệu của Amazon

o Amazon ElastiCache: dịch vụ cache dữ liệu của Amazon

Networking

o Amazon VPC: dịch vụ mạng riêng ảo

Copies for internal use only in Phenikaa University

Trang 16

o Amazon CodeCommit: dịch vụ quản lý code, có thể giao tiếp với git

o Amazon CodeDeploy: dịch vụ triển khai code tự động lên các máy chủ ảo

EC2, Lambda

o Amazon CodePipeline: dịch vụ liên quan đến code như cập nhật, biên

dịch, test, …

Management tools

o Amazon CloudWatch: giám sát các nguồn tài nguyên

o AWS CloudFormation: quản lý các nguồn tài nguyên

o AWS CloudTrail: dịch vụ lưu lại lịch sử hoạt động các dịch vụ

o AWS Config: dịch vụ quản lý cấu hình AWS

o AWS OpsWorks: dịch vụ định nghĩa cấu trúc ứng dụng

o AWS Service Catalog: dịch vụ quản lý danh mục dịch vụ IT trên AWS

o AWS Trusted Advisor: công cụ trực tuyến giám sát giới hạn dịch vụ

Security and Identity

o AWS Identity and Access Management: quản lý người dùng và quyền truy

cập dịch vụ AWS

o AWS Key Management Service (KMS): quản lý khoá mã hoá các dịch vụ

o AWS Directory Service: quản lý và truy cập các tài nguyên dễ dàng

o AWS WAF: Dịch vụ tường lửa cho các ứng dụng web

o AWS CloudHSM: dịch vụ bảo mật các mô đun phần cứng Sinh và quản lý

2.6.2 Nginx có tính năng gì?

 Có khả năng xử lý hơn 10000 kết nối cùng lúc với bộ nhớ thấp

 Phục vụ tập tin tĩnh (static files) và lập chỉ mục tập tin

 Tăng tốc reverse proxy bằng bộ nhớ đệm (cache), cân bằng tải đơn giản và khả năng chịu lỗi

 Hỗ trợ mã hoá SSL và TLS

 Cấu hình linh hoạt, lưu lại nhật ký truy vấn

 Chuyển hướng lỗi 3xx-5xx

 Hỗ trợ và tương thích với IPv6

 Hỗ trợ truyền tải file FLV và MP4

 Hạn chế tỉ lệ đáp ứng truy vấn

 Rewrite URL (URL rewriting) dùng regular exporssions

 Hỗ trợ tăng tốc với bộ nhớ đệm của FastCGI, uwsgi, SCGI, và các máy chủ

Trang 17

6

Docker là một nền tảng để cung cấp cách để building, deploying và running ứng dụng

dễ dàng hơn bằng cách sử dụng các containers (trên nền tảng ảo hoá) Ban đầu viết bằng python, hiện tại đã chuyển sang Golang

2.7.2 Container trong Docker là gì?

 Các containers cho phép lập trình viên đóng gói một ứng dụng với tắt cả các phần cần thiết, chẳng hạn như thư viện và các phụ thuốc khác, và gói tất cả ra dưới dạng một package

 Bằng cách đó, nhờ vào container, ứng dụng sẽ chạy trên mọi máy Linux khác bất

kể mọi cài đặt tuỳ chỉnh mà máy có thể có khách với máy được sử dụng để viết code

 Theo một cách nào đó, Docker khá giống Virtual machine Nhưng tại sao Docker lại phát triển, phổ biến nhanh chóng? Đây là những nguyên nhân:

o Tính dễ ứng dụng: Docker rất dễ cho mọi người sử dụng từ lập trình viên,

sys admin … nó tận dụng lợi thế của Container để build, test nhanh chóng

Có thể đóng gói ứng dụng trên laptop của họ và chạy trên public cloud, private cloud … Câu thần chú là “Build once, run anywhere”

o Tốc độ: Docker container rất nhẹ và nhanh, có thể tạo và chạy docker

container trong vài giây

o Môi trường chạy và khả năng mở rộng: Có thể chia nhỏ những chức

năng của ứng dụng thành các container riêng lẻ Ví dụ Redis Cache có thể chạy trên một container khác trong khi ứng dụng Nodejs lại chạy trên một cái khác nữa Với Docker, rất dễ để liên kết các Container với nhau để tạo thành một ứng dụng, làm cho nó dễ dàng scale, update các thành phần độc lập với nhau

 Với su hướng dịch chuyển sang microservices của các hệ thống lớn, Docker đang làm một thành phần cực kỳ quan trọng, làm cho nó trở thành một phần của nhiều công cụ DevOps Hiện tại thế giới đang sử dụng một công cụ quản lý container tiên tiến khác là Kubernetes

2.7.3 Các khái niện liên quan

Docker Engine: là thành phần chính của Docker, như một công cụ để đóng gói

ứng dụng

Docker Hub: là một “github for docker images” Trên Docker Hub có hàng ngàn

public images được tạo bởi động đồng cho phép dễ dàng tìm thấy image cần tìm

Và chỉ cần pull về và sử dụng với một số config mong muốn

Images: là một khuôn mẫu để tạo một container Thường thì image sẽ dựa trên 1

image có sẵn với những tuỳ chỉnh thêm Ví dụ build 1 image dựa trên image Centos mẫu có sẵn để chạy Nginx và những tuỳ chỉnh, cấu hình để ứng dụng web

có thể chạy được

Container: là một instance của một image Có thể create, start, stop, move hoặc

delete container dựa trên Docker API hoặc Docker CLI

Docker Client: là một công cụ giúp người dùng giao tiếp với Docker host

Docker Daemon: lắng nghe các yêu cầu từ Docker Client để quản lý đối tượng

như Container, Image, Network và Volumes thông qua REST API Các Docker Daemon cũng giao tiếp với nhau để quản lý Docker Service

Dockerfile: là một tập tin bao gồm các chỉ dẫn để build một images

Docker volumes: là phần dữ liệu được tạo ra khi container được khởi tạo

Copies for internal use only in Phenikaa University

Trang 18

1 EC2 NMQShop

Monitor

11.11.111.68 54.169.24.219 Amazon Linux 2 c3.xlarge $146.68

2 EC2 NMQShop web 11.11.111.169 Amazon Linux 2 t2.micro free

3 EC2 NMQShop DB 11.11.111.45 Amazon Linux 2 t2.micro free

Trang 19

8

3.2 Tạo VPC trên AWS

 Đầu tiên truy cập vào AWS và chọn vào ô tìm kiếm và tìm VPC Service

Hình 2: Tìm Kiếm các Service trên AWS

Sau khi hiển thị ra trang “VPC dashboard” > “Your VPCs” > “Create VPC”

Hình 3: Tạo VPCs

Tiếp đó tại phần “Create VPC” lần lượt đặt tên cho VPC tại mục “Name tag”,

đặt dải ip cho VPC tại mục “IPv4 CIDR” Sau đó nhấn nút “Create VPC”

Copies for internal use only in Phenikaa University

Trang 20

9

Hình 4: Các bước tạo VPC

 Sau khi tạo xong VPC chúng ta sẽ đến bước tiếp theo để tạo Subnet

3.3 Tạo Subnet trên AWS

 Phần Subnet vẫn thuộc trong dịch vụ VPC, nên tại trang VPC đã mở ở phần trước

chúng ta sẽ chọn luôn vào phần “Subnet” ngay dưới phần “Your VPCs” ở bước

trên

Hình 5: Tạo mới subnet

 Sau khi vào giao diện tạo subnet thì ở đây lần lượt chúng ta sẽ làm các bước như sau:

o Tại phần “VPC ID” này dùng để chọn VPC mà đã tạo từ phần trước

o Tại phần “Subnet name” Chọn tên cho subnet

o Tại phần “Availability Zone” này để chọn vùng sẽ chứa cái subnet đó

o Tại phần “IPv4 CIDR block” này sẽ gắn subnet nằm trong dải ip đã đặt từ

Trang 21

10

Hình 6: các bước tạo subnet

3.4 Tạo Route Table trên AWS

3.4.1 Tạo Public Route Table trên AWS

 Tại phần tạo Public Route Table vẫn thuộc trong dịch vụ VPC nên là chúng ta sẽ

chọn vào “Route table” ngay dưới phần “Subnets” như bước trên

Hình 8: Tạo mới Route table

 Sau khi vào giao diện tạo Route table thì chúng ta sẽ lần lượt đặt tên cho Route

table, tiếp đến là chọn VPC đã tạo từ trước Cuối cùng chọn vào “Create Route

table”

Copies for internal use only in Phenikaa University

Trang 22

11

Hình 7: Các bước tạo Route table

 Sau khi tạo xong Route table thì tiếp đến chúng ta phải cấu hình cho Public route

table ra được internet thì chúng ta sẽ tạo “Internet gateways” trước

 Internet Gateway cũng thuộc trong dịch vụ của VPC Nên chúng ta sẽ chọn vào

“Internet gateways” ở ngay dưới phần “Route tables”

Trong phần tạo “Internet gateway” thì chúng ta chỉ cần đặt tên cho “Internet

gateway” và click vào “Create internet gateway”

Hình 8: Tạo mới Internet Gateways

Copies for internal use only in Phenikaa University

Trang 23

12

Hình 9: Các bước tạo Internet gateways

Sau khi tạo xong “Internet gateways” chúng ta sẽ quay lại Route table vừa tạo và chọn vào “Routes” Tiếp đến là chọn “Edit routes”

Hình 10: Chỉnh sửa Routes in Route table

Sau khi vào trang “Edit routes” thì chúng ta chọn “Add route” Tại cột

“Destination” chọn 0.0.0.0/0 và tiếp đó tại cột “Target” thì chọn “Internet

gateway” rồi chọn id của internet gateway vừa tạo ở trên Cuối cùng thì chọn

“Save changes” để lưu cài đặt

Copies for internal use only in Phenikaa University

Trang 24

13

Hình 11: Thêm internet gateways vào route table

Sau khi thêm “Internet gateways” vào trong Route table thành công, thì lúc này

chúng ta tiếp thục gắn những subnet đã tạo vào Public route table để những subnet

này có thể đi ra ngoài internet nhờ vào “Internet gateway”

 Tại phần này chúng ta sẽ tiếp tục ở màn hình như ở bước trước và chọn vào tag

“Subnet associations”, tiếp đến chọn vào “Edit subnet associations”

Sau khi hiển thị màn hình “Edit subnet associations” thì chỉ cần chọn subnet muốn ra internet và nhấn nút “Save associations” là chúng ta đã hoàn thành tạo

“Public route table”

Hình 12: Chỉnh Subnet associations

3.4.2 Tạo Private Route Table trên AWS

 Tại bước tạo Private Route Table tạo cũng giống như các bước tạo Public Route

Table Tại bước này chúng ta sẽ chỉ tạo “NAT Gateways” và gắn Nat Gateway

vào trong Private Route Table

Đầu tiên chúng ta sẽ chọn vào “NAT Gateways” ở dưới mục “Endpoint

Services” Sau đó chúng ta sẽ chọn “Create NAT gateway” để tạo mới NAT

gateway

Copies for internal use only in Phenikaa University

Trang 25

14

Hình 13: tạo mới NAT gateway

Sau khi truy cập vào phần “Create NAT gateway” chúng ta sẽ thực hiện các

bước như sau:

o Tại phần “Name” này chọn tên cho NAT gateway

o Tại phần “Subnet” này chúng ta sẽ chọn Subnet ra được internet

o Tại phần “Elastic IP allocation ID” nếu đã có “Elastic IP” thì sẽ chọn Elastic IP đó còn nếu không thì click vào “Allocate Elastic IP” và cuối cùng chọn vào “Create NAT gateway” để hoàn thành.

Hình 14: Các bước tạo NAT Gateway

Tại phần gắn “NAT gateway” vào trong Route table chúng ta sẽ làm các bước

như khi tạo Public route table ở trên Và gán những subnet không ra internet vào Private Route table

3.5 Tạo Instance trên AWS

 Đầu tiên tương tự như tạo VPC chúng ta cũng phải tìm kiếm dịch vụ EC2 trên AWS

Copies for internal use only in Phenikaa University

Ngày đăng: 18/03/2024, 13:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w