Mac に Amazon AWS をターミナルから操作する AWS CLI をインストールする

● Mac に Amazon AWS をターミナルから操作する AWS CLI をインストールする

● 1. AWS CLI をインストールする

公式 : https://amzn.to/2JoyPPO

https://awscli.amazonaws.com/AWSCLIV2.pkg からインストーラーをインストールする

● 2. AWS CLIのインストールの確認

aws --version

このような文字列が返ってくればインストールは成功しています

aws-cli/2.1.4 Python/3.7.4 Darwin/19.6.0 exe/x86_64

● 3. AWS CLI の設定(IAMユーザーの追加)





こちらの画像のようにIAMユーザーを設定します。 設定完了後に画面に表示される「アクセスキー」「シークレットアクセスキー 」を保存しておきます。

● 4 .AWS CLI の設定

aws configure

設定例

AWS Access Key ID : <先ほど保存したアクセスキー>
AWS Secret Access Key : <先ほど保存したシークレットアクセスキー >
Default region name : ap-northeast-1
Default output format : json

● 4 .AWS CLI のコマンド

(うまく値が返ってこないときは権限不足を疑いましょう)

・IAM / ユーザー一覧の表示

aws iam list-users

・IAM / グループ一覧の表示

aws iam list-groups

・S3 / バケット一覧の表示

aws s3 ls
添付ファイル1
IAM_01.png ( 92.6 KBytes ) ダウンロード
添付ファイル2
IAM_02.png ( 204.4 KBytes ) ダウンロード
添付ファイル3
IAM_03.png ( 123.7 KBytes ) ダウンロード
No.1913
11/30 14:09

edit

添付ファイル

Amazon AWS S3 へ画像をアップロードするたびに自動で画像サイズを小さくする

● Amazon AWS S3 へ画像をアップロードするたびに自動で画像サイズを小さくする

● Amazon AWS Lambda の設定を行う

Lambdaとは

Lambdaとはサーバーの管理を意識することなく(=サーバーレスと言います)、サーバープログラムを実行させる Amazon のクラウドサービスです

1. Amazon AWS コンソールにログインする

https://aws.amazon.com/jp/console/

2. 「Lambda」を検索して Lambdaのページに移動する

3. 「関数の作成」をクリックする

● ローカルでの 「aws-lambda-image」のテスト

1. aws-lambda-imageのインストール

git clone https://github.com/ysugimoto/aws-lambda-image.git
cd aws-lambda-image
npm install .
npm audit fix

2. config.json の書式チェック

 npm run test-config

エラーなく表示されればokです。

● 設定

次のコマンドを実行してオプションをセットします。

npm config set aws-lambda-image:profile default
npm config set aws-lambda-image:region eu-west-1
npm config set aws-lambda-image:memory 1280
npm config set aws-lambda-image:timeout 5

↓ こちらの設定はオプションです。変更したい場合に実行します。

npm config set aws-lambda-image:name lambda-function-name
npm config set aws-lambda-image:role lambda-execution-role

● AWS lambdaへのデプロイ

npm run deploy

● 実行ハンドラの作成

S3バケット「your-bucket-name」  
S3フォルダ「test」  
処理する拡張子「png」  

の場合 このコマンドを実行します。

npm run add-s3-handler --s3_bucket="your-bucket-name" --s3_prefix="test/" --s3_suffix=".png"

lambdaへ反映させます

npm run update

引用 : https://bit.ly/39qpx0x
https://bit.ly/3qdVBuM

No.1912
11/30 14:59

edit

AWSの EC2 サーバを夜間停止して月額費用を安くする

● AWSの EC2 サーバを夜間停止して月額費用を安くする

https://bcblog.sios.jp/ak_automatic_start_stop_on_ec2/

No.1906
11/21 07:57

edit

Amazon の Route53 で TXTレコードを複数登録する

● Amazon の Route53 で TXTレコードを複数登録する

Route53で普通に 複数TXTレコードを作成しようとすると

Tried to create resource record set [name='xxxx.xxx.', type='TXT'] but it already exists]

というエラーが表示されます。

そこで複数登録するには一つのTXTレコードに改行して複数の項目を設定します

"v=spf1 a:xxxxxxx.xxx.com -all"
"google-site-verification=xxxxxxxxxxxxxxxxxxx"
No.1851
08/31 18:33

edit

EC2インスタンスの cpu を調べる

● EC2インスタンスの cpu を調べる

cat /proc/cpuinfo

結果例

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
stepping        : 2
microcode       : 0x43
cpu MHz         : 2399.900
cache size      : 30720 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm invpcid_single fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt
bogomips        : 4800.19
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

cpuの型がわかったら cpu bech サイトで見てみましょう。

https://www.cpubenchmark.net/cpu.php?cpu=Intel Xeon E5-2676 v3 @ 2.40GHz&id=2643

No.1810
07/05 15:51

edit

Laravel で amazon S3 のファイル操作を行うメソッド一覧

● Laravel Amazon S3 の設定

パッケージのインストール

composer require aws/aws-sdk-php
composer require league/flysystem-aws-s3-v3

.env

AWS_ACCESS_KEY_ID=XXX....................
AWS_SECRET_ACCESS_KEY=XCM.................................................
AWS_DEFAULT_REGION=ap-northeast-1
AWS_BUCKET=<バケット名>

AWS_DEFAULT_REGION は 使用中のS3が所属しているリージョンを一覧(https://amzn.to/3bAd1Jh)から選んで指定します。

● LaravelでS3へファイルのアップロード

$path = \Storage::disk('s3')->put('/testdir/', $file, 'public');
<ディレクトリ名> , <ファイルデータ>,<public または private>
// サーバーのファイルをアップロードする場合
$path = \Storage::disk('s3')->put($upload_path, file_get_contents($tmp_url), 'public');
 
// ブラウザからPOSTされたファイルをアップロードする場合
$path = \Storage::disk('s3')->put($upload_path, $request->file('upfile'), 'public');

戻り値 $path には ディレクトリ名とファイル名のパスが返ります。

● LaravelでS3へアップロードしたファイルのURLを取得する

$url = \Storage::disk('s3')->url("testdir/i9WBM4ag2gJ83rmKYDR8DBW12XxsWiaXah8V5voh.png");

● LaravelでS3バケット内のファイル一覧を取得する

files : ファイル一覧を取得 allFiles : 下の階層のファイル一覧も取得

$list = \Storage::disk('s3')->files('');
$list = \Storage::disk('s3')->allFiles('');
$dir_list = \Storage::disk('s3')->directories('/');

● LaravelでS3ファイルを削除する

// ファイル削除
$disk->delete(【バケットのrootディレクトリからの相対パス】);

● LaravelでS3のディレクトリごと(ディレクトリ内のファイルも一緒に)削除する

\Storage::disk('s3')->deleteDirectory('testdir');

● LaravelでS3ファイルをコピーする

\Storage::disk('s3')->copy($old_path, $new_path);

● LaravelでS3ファイルを移動(またはリネーム)する

\Storage::disk('s3')->move($old_path, $new_path);

● LaravelでS3ファイルの公開非公開を変更する

\Storage::disk('s3')->setVisibility($file_path, 'public');  // 公開にする
\Storage::disk('s3')->setVisibility($file_path, 'private'); // 非公開にする

● Laravelで amazon S3 ファイルを 別のバケットにコピーする

$disk = Storage::disk('s3');
if (!$disk->move('bucketOne/testFile.jpg', 'bucketTwo/testFile.jpg')) {
   throw new \Exception('File could not be moved.');
}
No.1759
05/19 09:07

edit

Amazon AWS / Route53 で IP逆引き設定を行う

*1. まず IP アドレスを調べる

( test-my-server.com ) ( IPアドレス 111.222.333.444 ) というドメインでの例

dig test-my-server.com

次のように返ってきます。

;; ANSWER SECTION:
test-my-server.com.      300     IN      A       111.222.333.444

*2. 逆引きを調べる

dig -x 111.222.333.444

次のように返ってきます。

;; ANSWER SECTION:
123.456.789.12.in-addr.arpa. 300 IN     PTR     ec2-12-345-678-999.ap-northeast-1.compute.amazonaws.com.

ec2-12-345-678-999.ap-northeast-1.compute.amazonaws.com が 返ってきます (まだ逆引きが設定できていない。)

*3. 逆引きゾーンを作成する

逆引きゾーン 333.222.111.in-addr.arpa

DNS の PTR レコードの書き方

1  IN  PTR  hogehoge.com.
(これが333.222.111.in-addr.arpaゾーンのレコードである場合、 111.222.333.1のホスト名は hogehoge.com であることを表す。 )

なので

AWS - Route53 から

名前 タイプ
444 PTR-ポインタ test-my-server.com.

としてレコードセットの作成を行います。

No.1675
01/23 14:41

edit

Amazon AWS / Route53 で 逆引き申請を行う

● Amazon AWS / Route53 で 逆引き申請を行う

https://console.aws.amazon.com/support/contacts?#/rdns-limits

Email address
→ <メールアドレス>

Use case description
→ rDNS registration

Elastic IP address - optional
→ <逆引き登録するIPアドレス>


Reverse DNS record - optional
→<逆引き登録するドメイン名>

参考 : http://bit.ly/35UTZdZ
http://bit.ly/3abrBYe
http://bit.ly/3ac3xEM

No.1657
01/15 20:57

edit

EC2 インスタンスのディスク種類(EBS-backed instance )( Amazon EC2 Instance Store-Backed )を確認する

EC2 インスタンスのディスク種類は事前に確認しておきましょう!

AMI タイプ - Amazon Elastic Compute Cloud

Ec2ダッシュボードから「AMI」→「パブリックイメージを選択」し「ルートデバイス」を見ることで、

EBS-backed instance 
Instance Store-Backed

のどちらかを判別することが出来ます。

添付ファイル1
No.1628
11/22 12:42

edit

添付ファイル

Amazon AWS 請求アラートを作成する

● Amazon AWS 請求アラーム(アラート)を作成する

AWS を作成して一番最初にするのは .. 「請求アラーム」です

「AWSトップ」→「Billing」→「Billingの設定」→「請求アラームを管理する」を選択すると「CloudWatch」に移動します。

続けて以下のように設定します。

・ナビゲーションペインで、[アラーム]、[アラームの作成] の順に選択します。

・[メトリクスの選択] を選択します。[すべてのメトリクス] タブで、[請求]、[概算合計請求額] を選択します。

・[概算請求額] の横にあるチェックボックスをオンにして、[メトリクスの選択] を選択します。

・[Conditions (条件)] で、[Static (静的)] を選択します。

・[Whenever EstimatedCharges is (EstimatedCharges が次の時)] で、[Greater (大きい)] を選択します。

・[than (より)] には、アラームをトリガーするために超える必要がある金額 (たとえば 200) を入力します。
(注記:当月の現在の料金がプレビューグラフに表示されます。_

・[Next] を選択します。

・[通知] で、アラームが ALARM 状態のときに通知するための SNS トピックを選択します。

(同じアラーム状態または複数の異なるアラーム状態について複数の通知を送信するには、[Add notification (通知の追加)] を選択します。)

・完了したら、[次へ] を選択します。

・アラームの名前と説明を入力します。名前には ASCII 文字のみを使用します。続いて、[次へ] を選択します。

・[Preview and create (プレビューして作成)] で、情報と条件が正しいことを確認し、アラームの作成] を選択します。

引用 : https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html

No.1621
11/13 17:20

edit