Featured image of post AWS學習筆記

AWS學習筆記

不斷內

Amazon Web Server

介紹

Amazon EC2

架伺服器的,動態擴充的VPS

Amazon RDS

放資料庫的

Amazon S3

CDN的功能,可以放圖片等等的靜態資源

IAM

Identify And Access Management, Global Service

Root Account是你創辦帳戶時就創建,而Users則是這個組織或是群組裡面的用戶

IMA

在進行IMA的設定時,右上角的區域會被鎖定成「Global」,因為IAM的設定是全局生效的

image-20240523143448865

進行練習時,首先先創立一個User,因為我們所創建的Aws帳號都是Root User

創建使用者

image-20240523144052709

指定使用者的類型,密碼型態

image-20240523144507053

創建好之後,可以使用這邊的Url登入image-20240523150757068

Account Id在這邊查看

image-20240523150847092

登入畫面

image-20240523151028543

創建群組,創建完之後記得要勾喔,我這邊忘了截圖。創建完、加完後,這個群組的User就有Admin的權限了

image-20240523144713427

IMA Policy

使用JSON來做User的Group的設定,定義了各種Permissions,範例如下

  • Version: Policy Language的版本,通常都是2012-10-12
  • Id:一個識別碼,可填可不填
  • Statement:必填的,可以是一個或是多個
  • Sid:每個Statement的Id,選填的
  • Effect:Allow 或是 Deny
  • Principal: 這個帳戶遵循的是哪個policy
  • Action:Effect所Allow或Deny的
  • Resource:Action所使用的resouces
  • Condition:Effect生效的條件 選填
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
  "Version":"2012-10-17",
  "Id":"S3-Account-Permissions"
  "Statement":[
    {
	    "Sid":"1",
      "Effect":"Allow",
  		"Principal":{
  			"AWS":["arn:aws:iam:123456789012:root"]
			},
      "Action":"ec2:Describe*",
      "Resource":"*"
    },{
      "Effect":"Allow",
      "Action":"elasticloadbalncing:Describe*",
      "Resouce":"*"
    }.{
    "Effect":"Allow",
    "Action":[
    "cloudwatch:ListMetrics",
    "coludwatch:GetMetricStatistics",
    "cloudwatch:Describe*"
  	],
  	"Resouce":"*"
    }
  ]
}

Policy的詳細設定

可以點擊右邊的Policies查看

image-20240523163325704

點擊右邊的Json就會顯示出他的Json長什麼樣子

iShot_2024-05-23_16.35.01

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*"
        }
    ]
}

Json與Action的對應,可以使用WildCard來匹配

image-20240523164051091

當然你也是可以自己Custome自己的Police啦

image-20240523164808959

Aws Command Line Interface

安裝

到官網下載對應的版本

https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html image-20240525153632678

安裝好後在Terminal中輸入,就可以看到對應的資料了

1
aws --version

image-20240525154746195

創建AccessKey

image-20240525160842807

image-20240525161051441

跟所有的Access Key一樣,這些Key也只會在這邊顯示這一次,之後就不會再顯示了

image-20240525161243409

輸入來設定

1
aws configure

image-20240525162159249

列出IAM User List

1
aws 

image

Cloud Shell

其實就是一個雲端Termianl,跟Digital Ocean的那個差不多

image-20240525170146205

IAM Role

有些 AWS 服務需要代表你執行操作,為此,我們將使用 IAM 角色分配權限給 AWS 服務

Some AWS service will need to perform actions on your behalf. To do so, you assign permissions to AWS services with IAM Roles.

image-20240525174127201

image-20240525174509197

image-20240525174714467

完成!

image-20240525174845278

為Aws設置帳單提醒

記得先用Root帳號,把IAM user and role access to Billing Information

image-20240529150337069

選擇Billing And Cost Management

image-20240529145758200

就能看到這樣的畫面

image-20240529151506621

選擇Bill 可以看到目前的帳單狀況

image-20240529152502819

在最下面有個charge By service,可以查看哪些服務各自花了什麼內容

image-20240529152822374

實際進入帳單警告(Alert)的部分則是從這邊

選擇右邊橘色的ceate a budget

image-20240529153251123

選擇Zero Spend Budget,這樣如果只要有被收到費,就會立刻寄信給我們,要我們處理

image-20240529154555595

還有這種如果月帳單超過10塊,就發通知給我們的

image-20240529155806328

EC2(Elastic Compute Cloud) 彈性雲端運算

是個IAAS(Infrastructure as a Service)

EC2有什麼功能呢

  1. 租用虛擬機Elastic Compute Cloud(EC2)
  2. 儲存資料 Elastic Block Store(EBS)
  3. 負載均衡Elastic Load Balance(ELB)
  4. Scaling the service using an Auto-Scaling Group(ASG)

一些EC2的類型,當然不只有以下這五種,還有很多,只是列出五種作參考

image-20240529162020578

創建EC2

image-20240529164008775

image-20240529164139789

選擇創建Key Pair

image-20240529165046890

還有網路的部分,要把下面的Allow Http traffic from the Internet,這樣才可以部屬Web服務

image-20240529165336976

接下來拉到最底下,有個User Data,但我覺得命名的不是很好,這邊其實就是指定EC2初次啟動時的執行腳本是什麼,我們可以複製以下的內容到EC2當中

1
2
3
4
5
6
7
8
#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html

選好了之後就可以按創建了,創建完之後點選我們剛剛創建的instance,就可以看到詳細的內容

image-20240529172240913

開啟的Port,一些security的內容

image-20240529172159224

你也可以通過訪問你創建的Public Ip 來看到你剛剛User Data 的內容

image-20240531021952950

七種不同的EC2 Instance

https://aws.amazon.com/tw/ec2/instance-types/

image-20240531022120089

Instance的命名邏輯

m5.2xlarge

m: instance class

5: generation 世代

2xlarge: size within the instance class ,通常代表了多大的記憶體、硬碟空間、CPU

  1. General Purpose

    通常用來做Web Server或是Code Repository

  2. Compute Optimized

    資料處理、高計算、機器學習、遊戲伺服器的Instance

  3. Memory Optimized

    可以很快地把東西放到Memory中,適合用來作為資料庫儲存的Instance,或是放一些對Real-Time即時性較高的資料

  4. Storage Optimzed

    對於高讀寫很有一套,適合用在高頻交易(OLTP)系統、關聯、非關聯式資料庫

Security Groups

一個類似防火牆的東西,把EC2 繞起來

相同Security Group的Instance可以相互通訊

所謂的Inbound Rules跟Outbound rules就是傳入規則與傳出規則

image-20240531151415394

可以按右上角的Edit Inbound Rules 編輯一下規則,向我這邊就把Http的規則加進來

image-20240531151548835

常見的Port

  • 22: SSH連線
  • 21: FTP連線
  • 22:透過SSH來使用FTP上傳檔案
  • 80:HTTP
  • 443:HTTPS
  • 3389:RDP 登入Windows Instance

如何SSH進去我的EC2 Instance

首先電腦裡面要有你RSD的密鑰檔,並確保你的Security允許SSH連線

image-20240531155614276

然後結合你的Public Ip

image-20240531155658191

語法

ec2-user是創建instance時就會幫我們創建的一個user

1
ssh -i Aws-2024-05-11.pem ec2-user@43.206.215.70

這樣就行囉,如果不行的話可能要用chmod調一下權限

image-20240531161607224

image-20240601145650526

image-20240601151936318

EBS

EBS Volume

類似資料庫的東西,可以儲存資料的東西

參考網址

【Udemy付费课程】Ultimate AWS Certified Solutions Architect Associate AWS认证课程

【AWS】云计算课程全集(更新中

[AWS][教學] AWS基本使用#01. AWS免費方案介紹

Licensed under CC BY-NC-SA 4.0