星期二, 5月 28, 2019

AWS 授權 IAM 使用者檢視帳單資訊

AWS 授權 IAM  使用者檢視帳單資訊

使用根使用者登入主控台

My Account (我的帳戶)
-- > 選擇 IAM User and Role Access to Billing Information ( 使用者與角色的帳單資訊存取權) 旁邊的 Edit (編輯)
-- > 選取 Activate IAM Access (啟用 存取) 旁邊的核取方塊,然後選擇 Update (更新)


使用 IAM -- > 政策 -- > 搜尋以及選擇 Billing
點選 政策使用 -- > 點選 連接
勾選可以檢視清單的使用者 -- >  連接政策

完成設定

Reference

星期日, 5月 26, 2019

Amazon Elastic File System ( EFS ) 建立小記

Amazon Elastic File System ( EFS ) 建立小記

OS: openSUSE Leap 15 in AWS

Amazon AWS 的 EFS 簡單來想就是 Linux NFS 檔案分享
  • 採取 NFS v4
  • 可以在不同的 AZ 之間進行分享

今天就來進行 EFS 的實做

參考之前的文章建立兩個 openSUSE Leap 15 in AWS, 然後分別隸屬兩個不同的 AZ

因為 NFS v4 預設是走 TCP port 2049
  • 所以就建立一個 Security Group 給 EFS 的 mount point 使用, 然後開放 TCP port 2049
  • 其實也可以用限制某個 security group 過來才開放 TCP port 2049, 這是更安全的方式

使用 aws ec2 指令建立 security group
> aws ec2 create-security-group --group-name test-efs-mount --description "Test EFS mount point"

允許 tcp port 2049 連入
> aws  ec2  authorize-security-group-ingress  --group-name  test-efs-mount  --protocol  tcp --port  2049  --cidr  0.0.0.0/0

再來準備 EFS

進入 AWS Console -- > 點選 Service -- > 點選 EFS
點選 Create file system


確認 VCP ID
選取 AZ 還有確認 Security Group
  • 這個地方我是把預設的 security group 拿掉, 因為預設是針對所有的都開放
  • 我使用剛剛建立的 Security Group “ test-efs-mount ” 只開放 TCP port 2049

點選 Next Step


Configure optional settings
我按照預設值
點選 Next Step


Review and create 部份就是確認剛剛的資訊
點選 Create File System 就完成建立


建立完成之後記一下 File System ID

接下來處理要掛載目錄這邊
在 openSUSE Leap 15 in AWS 上面

安裝 aws-efs-utils
# zypper  install  aws-efs-utils

建立掛載目錄
# mkdir  /mnt/efs

使用 mount 指令掛載
# mount  -t  efs  EFS_FILE_SYSTEM_ID:/  /mnt/efs/

  • EFS_FILE_SYSTEM_ID 就是剛剛建立完 EFS 的 file system id

檢視資訊

# df -h

Filesystem                                 Size Used Avail Use% Mounted on
devtmpfs                                   471M 0 471M 0% /dev
tmpfs                                      489M 0 489M 0% /dev/shm
tmpfs                                      489M 13M 476M 3% /run
tmpfs                                      489M 0 489M 0% /sys/fs/cgroup
/dev/xvda2                                 9.7G 1.6G 8.2G 16% /
/dev/xvda1                                 297M 78M 220M 27% /boot
tmpfs                                       98M 0 98M 0% /run/user/1000
fs-bed098c7.efs.us-east-2.amazonaws.com:/  8.0E 0 8.0E 0% /mnt/efs


大功告成
~ enjoy it


Reference:

星期五, 5月 24, 2019

AWS CLI 切換不同帳號小記

AWS CLI 切換不同帳號小記

今天來整理使用 awscli 切換不同帳號的方式

實務上可能會同時處理不同的 AWS 專案,
所以跟 GCP 一樣如何切換帳號, 就相對重要

先來建立預設帳號
使用 aws configure 進行相關設定
先準備最常使用的 access key id 還有 secret access key

設定預設帳號
> aws  configure

輸入 Access Key 與 Secret Access Key
AWS Access Key ID [None]: AKIA3MGXVXNQDYZWXCT5
AWS Secret Access Key [None]: lZw3dL6qhQzsUSO5YU4oxWJyguclaNz0hX
Default region name [None]:
Default output format [None]:

觀察相關資訊, 就會發現家目錄下會建立 .aws 目錄
> ls  ~/.aws/
config  credentials

這邊會發現到, 相關的 access key 會被存放到 ~/.aws/credentials
Default region 以及 output format 會被存放到 ~/.aws/config

接下來建立第二個帳號的設定

> aws   configure --profile  sakana-ai

輸入 Access Key 與 Secret Access Key
AWS Access Key ID [None]: BKIA3MGXVXNQDYZWXCT5
AWS Secret Access Key [None]: CZw3dL6qhQzsUSO5YU4oxWJyguclaNz0hX
Default region name [None]:
Default output format [None]:

觀察  ~/.aws/credentials
>  cat   ~/.aws/credentials

[default]
aws_access_key_id = AKIA3MGXVXNQDYZWXCT5
aws_secret_access_key =  lZw3dL6qhQzsUSO5YU4oxWJyguclaNz0hX
[sakana-ai]
aws_access_key_id = BKIA3MGXVXNQDYZWXCT5
aws_secret_access_key = CZw3dL6qhQzsUSO5YU4oxWJyguclaNz0hX
  • 裡面會列出 default 與個別 profile 名稱

指令使用範例
列出 IAM 使用者
> aws  iam  list-users

列出指令帳戶 IAM 使用者
> aws iam list-users --profile sakana-ai



Reference:

星期二, 5月 21, 2019

使用 gcsfuse 掛載 google cloud storage with openSUSE Leap 小記

使用 gcsfuse 掛載 google cloud storage with openSUSE Leap 小記  

OS:  openSUSE Leap 15 in Azure

今天要來實驗 gcsfuse 掛載 google cloud storage

gcsfuse 介紹:

Cloud Storage FUSE 是一種開發原始碼 FUSE 轉接器,可讓您在 Linux 或 macOS 系統上掛接 Cloud Storage 值區做為檔案系統,還可讓應用程式透過標準檔案系統語意上傳和下載 Cloud Storage 物件。Cloud Storage FUSE 可以在連結 Cloud Storage 的任何地方執行,包括 Google Compute Engine VM 或內部部署系統
要掛載 google cloud storage, 首先必須要建立一個 google cloud storage

參考之前的文章

建立 google cloud storage

> gsutil  mb -l asia-east1 gs://test20190521

Creating gs://test20190521/...

要掛載 google cloud storage, 必須要有相關驗證以及權限, 配合 gcsfuse 大概會有兩種方式
  • 使用 google 驗證
  • 使用 服務帳戶金鑰

今天要嘗試的是使用服務帳戶金鑰的方式

建立服務帳戶
登入  GCP console -- > IAM 與管理員
點選 服務帳戶
點選 CREATE SERVICE ACCOUNT


輸入帳戶名稱 / 說明
-- > 建立


選取服務帳戶權限 -- > 繼續
這邊我是給到 Storage Object Admin

點選 建立金鑰


選取金鑰類型, 我這邊選取 JSON
點選 建立


下載金鑰到機器上面
點選 完成

將 key 複製到 openSUSE /root 目錄下
  • 例如 $ scp steadfast-oadmin-adf10.json YOUR_USER@SERVER_IP:/home/YOUR_USER
  • steadfast-oadmin-adf10.json 是剛剛的金鑰

安裝 gcsfuse 套件
在 openSUSE Leap 15 in Azure
參考


> sudo zypper install curl fuse


> sudo rpm --install --nosignature -p gcsfuse-0.17.0-1.x86_64.rpm

觀察系統資訊
> df -h

Filesystem      Size Used Avail Use% Mounted on
devtmpfs        803M 0 803M   0% /dev
tmpfs           820M 0 820M   0% /dev/shm
tmpfs           820M 17M 803M   3% /run
tmpfs           820M 0 820M   0% /sys/fs/cgroup
/dev/sda2        29G 1.6G 28G 6% /
/dev/sda1      1014M 91M 924M   9% /boot
/dev/sdb1        40G 49M 38G 1% /mnt/resource
tmpfs           164M 0 164M   0% /run/user/1000


建立掛載目錄
# mkdir  /mnt/gstorage

掛載 google cloud storage
# gcsfuse --key-file /root/steadfast-oadmin-adf10.json test20190521  /mnt/gstorage/

Using mount point: /mnt/gstorage
Opening GCS connection...
Opening bucket...
Mounting file system...
File system has been successfully mounted.

  • Bucket 前面不需要加上 gs://

再次觀察系統資訊

# df -h

Filesystem      Size Used Avail Use% Mounted on
devtmpfs        803M 0 803M   0% /dev
tmpfs           820M 0 820M   0% /dev/shm
tmpfs           820M 25M 795M   4% /run
tmpfs           820M 0 820M   0% /sys/fs/cgroup
/dev/sda2        29G 1.7G 28G 6% /
/dev/sda1      1014M 91M 924M   9% /boot
/dev/sdb1        40G 49M 38G 1% /mnt/resource
tmpfs           164M 0 164M   0% /run/user/1000
test20190521    1.0P 0 1.0P   0% /mnt/gstorage

最後就是把 gcsfuse 指令放到類似 rc.local , 做成 systemd  服務或是 利用 crontab 使用 @reboot 方式讓他開啟的時候掛載起來 :)


~  enjoy it

Reference: