AWS関連のことを調べてみた2021年09月11日

AWS関連のことを調べてみた2021年09月11日
目次

AWS SSMでFTPソフトを使用して、ローカルマシンからPrivate EC2へファイル転送

## これは何

AWS SSMでCyberduck(FTPクライアントソフト)を使用して、Private EC2へファイル転送してみました。
FTPソフトはWinSCPとか他のでもいけると思います。(動作検証はしてませんが)

## 早速やってみた

**IAMロールを作成**
AmazonSSMManagedInstanceCore ポリシーを含むロールを作成

![スクリーンショット 2021-09-10 16.26.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740345/028bf891-92f7-dc59-7be4-65904bdd9ef0.png)

**EC2へアタッチする**

先ほど作成したロールをEC2にアタッチします。

**AWS CLI v2のインストール、configureコマンドで情報入力**
今回は、direnvを使用し、環境変数を定義しました。
こんな感じで

“`
export AWS_ACCESS_KEY_ID=””
export AWS_SECRE

元記事を表示

Amazon s3 にIPアドレス制限をかけるときの注意点

##目的

災害対策として、オンプレサーバのバックアップを、クラウドにも保存する。いわゆるディザスタリカバリ。

###クラウドサービスの選定

Amazon s3を選定。理由は、オンプレサーバのバックアップ先(NAS)にs3と連携できる機能が標準で付いていたため。

###ざっくりな流れ
AWS側でs3バケット作成

オンプレ側でs3への接続設定

##s3バケット作成

妙な言い回しでひっかかる設定項目があったが、既に先人の知恵がございましたので、ここでの説明は割愛。

そして先人に盛大なる感謝。

[S3のブロックパブリックアクセスが怖くなくなった](https://zenn.dev/ymasutani/articles/019959e7c990b1)

セキュリティを確保するため、オンプレサーバのグローバルIPからs3へのアクセスのみ許可するようなポリシーを設定します。(JSON形式で)

“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Deny”,

元記事を表示

Terraform/TerrafomrerでAWS既存リソースをインポートする

## はじめに
Terraformを使ってみると`Terraformでコードを書く` よりも `既存リソースをTerraformにインポート`することが結構あります。
公式のドキュメントを読めばやり方はわかります。

ただ、少しわかりづらい箇所もあるので細かい部分も説明しながらインポート手順を説明していきます

## 前提
* AWSアカウント作成済
* AWSリソース作成済(今回は[こちらの記事](https://qiita.com/YK0214/items/59bc0e5ae89f68af74b3)で作成したlambda関数をリソースとして使用します。他のリソースでも構いません)
* terraform インストール済 (参考: https://dev.classmethod.jp/articles/beginner-terraform-install-mac/)
* terraformer インストール済 (参考: https://beyondjapan.com/blog/2020/05/terraformer-import-existing-infrastructur

元記事を表示

Lightsail 上の WordPress に ads.txtを導入する

# はじめに

[Amazon Lightsail](https://aws.amazon.com/jp/lightsail/) 上の WordPress に Google Adsense の設定ファイル (ads.txt)を導入します。

導入しないと、以下のようなエラーが出ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114392/0f9a7547-f524-8efa-ace8-c5b98b5157ac.png)

# 手順

## ads.txtファイルのダウンロード

Google AdSense のダウンロードリンクからads.txtをダウンロードします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114392/0f9a7547-f524-8efa-ace8-c5b98b5157ac.png)

ads.txtを開くと次のような1行が書いてあります。

“`te

元記事を表示

【AWS】AWSを勉強していく中で「?」ってなった単語をまとめていく② -EC2編-

#前回の続き

https://qiita.com/nao0725/items/618ac7efc72db923a1fc

#目的

* 自分用のメモ
* 単語の意味と役割を掴んでイメージを把握する

#EC2を運用する上で出てきた単語

##EC2
* Amazon Elastic Compute Cloud
* AWSのクラウド上でサーバーを実行するためのサービス
* 単一ではなく複数の仮想サーバー(インスタンス)を実行する
* EC2を利用することで、OSを乗せた仮想環境をクラウド上にすばやく作ることができる

https://techplay.jp/column/537

##インスタンスタイプ

* 用途別に集められた「インスタンスファミリー」と、CPUなどのスペックを示す「インスタンスサイズ」から構成されている
* インスタンスファミリーの数字は「世代」を表していて、数字が大きければ大きいほど新しい

###インスタンスファミリー

* 「汎用」「コンピューティング最適化」「メモリ最適化」「高速コンピューティング」「ストレージ最適化」の5種類に分類される
* それぞれ

元記事を表示

awsロードバランサー http https利用方

AWSでSSL化の際httpアクセスをhttpsへリダイレクトするしないのロードバランサー(リスナー)の設定

リダイレクトさせる設定

リダイレクトさせない設定

参考記事:https://qiita.com/

元記事を表示

codebuildでdockerをビルドした時にrate limitsが表示された件

# 概要

2020年10月からdocker hubのリポジトリからpullする時に未ログインした状態でpullすると任意のIP単位で制限をかけるような仕様を追加した。
これを解決するにはdocker loginをするしかない。
また、code buildはawsのマネージドサービスで動いているため、数回動かしただけでrate limitsエラーが表示されてしまう。
このエラーを回避するためにはcode buildのbyildspec.yamlでコンテナをビルドする前にdocker loginをする必要がある。

詳しくは以下。

https://www.docker.com/increase-rate-limits?utm_source=docker&utm_medium=web%20referral&utm_campaign=increase%20rate%20limit&utm_budget=

https://docs.docker.com/docker-hub/download-rate-limit/

https://aws.amazon.com/jp/blogs/devo

元記事を表示

Amazon CloudWatch LogsのデータをS3にExportする時にハマった

# はじめに
AWSのログサービスである「Amazon CloudWatch Logs」内のテキストログをダウンロードするためにS3にエクスポートしようとした際に、しょーもないことでハマったので共有します。

# TL;DR
Exportするログの期間をちゃんと指定しよう。

# ハマったこと
![Screen Shot 2021-09-10 at 23.12.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534248/f521d343-a6a5-eab7-4da0-2d642c134e4c.png)

CloudWatch Logsのコンソールから `Export data to Amazon S3` を選択すると上記のような画面に飛び、ここでログのExportの設定ができる。各設定項目は以下の通り

| 項目 | 内容 |
| — | — |
| Stream prefix | ExportするLog stream名 |
| S3 bucket name | Export先のS3のバ

元記事を表示

cloudwatch agent と logs の違い

## 勉強前イメージ

agentはEC2にインストールしてとるやつ
logsはただ単にログ監視?それともagentからとってくる値???

## 調査

### cloudwatch agent とは

cloudwatchではCPUなど見れますが、
メモリやディスク容量などは見ることが出来ません。
その際に使用されるのが、clodwatch agentになります。
こちらはエージェントをEC2インスタンスにインストールし、データを取得します。

### cloudwatch logs とは

EC2やCloudTrail、Route53などから
ログファイルをモニタリングし、保存することが出来ます。
cloudwatch logsで使用中のサービスの各ログを一元管理することが出来ます。
また、ダッシュボードでのログデータのし可視化も出来ます。

## 勉強後イメージ

詳細まで見てないし、表面上しか見てないけど
agent → サーバ内に入って詳細を取得
logs → サービス全体からログを収集
って感じがする。
これ見てて、cloudwatch の標準・詳細・カスタムがあやふやに

元記事を表示

AWS Data WranglerをAWS Access keyとSecret Access Keyを使う方法

AWS Data WranglerでAWS アクセスキーとシークレットアクセスキーを使う方法が見つからなかったので、コード見てみました。

`s3.read_parquet()` や `athena.read_sql_query()` など、だいたいのメソッドのには `boto3.Session` を引数で渡せます。

“`python
def read_sql_query(
# —-省略 —-
boto3_session: Optional[boto3.Session] = None,
# —-省略 —-
) -> Union[pd.DataFrame, Iterator[pd.DataFrame]]:
“`
> 引用元 : https://github.com/awslabs/aws-data-wrangler/blob/2.11.0/awswrangler/athena/_read.py#L607

例えば `athena.read_sql_query()` で言えば以下のように書けばAWS Access KeyとAWS Secret Access

元記事を表示

ServerlessFrameworkを触ってみた

ServerlessFrameworkのインストールから基本的な設定・操作方法を確認していきたいと思います。
今回はAWSをプロバイダとしてPython3でサービスを作成します。

# ■ インストール
### # Serverless Frameworkのインストール
node.jsのインストールはnvmで行います。

“`bash
# nvm インストール
# https://github.com/nvm-sh/nvm#installing-and-updating
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

# 最新のltsをインストールしてグローバルに設定
nvm install –lts
nvm use –lts

# インストールされているか確認
node -v
npm –version

# serverless frameworkのインストール
sudo npm install -g serverless
sls –version
“`

元記事を表示

LambdaでS3のPDFを画像化して保存(Docker,Python)

# はじめに

LambdaでPdfを画像化します。windowsであればpopplerのstatic buildがあるので比較的簡単にできますが、Lambdaの環境ではコンテナを使わないとその方法では実行できません。コンテナの勉強を兼ねて作りました。

# 前提
– Dockerの実行環境
– AWS CLIとaws configureの設定

# やること
– Dockerイメージの準備
– ECRの準備
– Lambdaの作成

**Dockerイメージの準備**

以下のようなファイル構成です。

“`
CreatePdfThumbnail
│ app.py
│ Dockerfile
│ env.txt
└─ requirements.txt
“`

Dockerfileは以下のようになっています。

“`Dockerfile
FROM public.ecr.aws/lambda/python:3.6
# ベースイメージはPython3.6環境を使いたいのでpublic.ecr.aws/lambda/python:3.6

RUN y

元記事を表示

【AWS】Amazon Pollyでテキストを生きた音声に変換してみた

#はじめに
みなさんYoutubeや仕事でテキストを音声に変えることってありますか?
自分で声を収録してもよいですが、恥ずかしいし・・・

ネット上にはテキストを音声に変えてくれるサービスはいろいろありますが、正直どれもいまいち。
AWSのAmazon Pollyではテキストを「生きた音声」に変換することができます。

私が触った感触では他のどの変換サイトより「生きた音声」だと思います。
(特に英語はすごい)
是非みなさんも試してみて下さい。

AWSは1年間は無料期間なのでどんどん試してみましょう!

#手順
1.AWSマネジメントコンソールにログインします。(登録は済ませておいて下さい)
上部の検索バーで[Amazon Polly]と検索して下さい。
![スクリーンショット 2021-09-10 18.49.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1966337/bd604f2e-4638-aad9-fb02-1ba776e5ea27.png)

2.[入力テキスト]欄に音声に変換したい

元記事を表示

Amazon GuardDutyでTrojan:EC2/DGADomainRequest.Bが発生したが、そこまで驚異ではなかった話。

### 結論
GuardDutyがトロイと認定しているドメインをforwardさせるSSH接続の総当たり攻撃があり、SSHDが気を利かせてドメインの情報を照会した為に起きていた。実際にトロイの木馬に感染しているわけでは無かった。

###SlackにGuardDutyからヤバい通知がきた

![Screenshot from 2021-09-10 16-14-46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293892/7f61e17d-fb14-6481-27e3-9efb050bf4d0.png)
EC2 instance i-xxxxxxxxxxxx is querying algorithmically generated domains. Such domains are commonly used by malware and could be an indication of a compromised EC2 instance.
![Screenshot from 2021-09-

元記事を表示

aws cliでcloudfrontのオブジェクトの無効化

## 参考

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html

(今後変わるかもしれないので参考程度に:)一ヶ月に無効化の回数が1000件超えると支払いが発生し始めるようなので注意しましょう。

## 手順

以下のコマンドで invalidationを作成できます。

“`
$ aws cloudfront create-invalidation –distribution-id xxxxx –paths /past-payments/index.
html
“`

このようなレスポンスが返ってきます。

“`
{
“Location”: “https://cloudfront.amazonaws.com/2020-05-31/distribution/xxx/invalidation/xxxx”,
“Invalidation”: {
“Id”: “xxxxx”,
“Status”: “InPr

元記事を表示

SageMaker同じロールを被る場合CloudTrailにインスタンス名を残す方法

タイトルの件はAWSオフィシャルQAには記載されています。

#解決案

[すべてのインスタンスが同じ IAM ロールを使用する場合、どの SageMaker ノートブックインスタンスが特定の API 呼び出しを行ったかを判断するにはどうすればよいですか?](https://aws.amazon.com/jp/premiumsupport/knowledge-center/sagemaker-instance-api-iam/)

#注意点

上記の記事は解決案になっていますが、幾つの注意点があります。
1、コピペーは`#!/bin/bash`から始めてください。
2、改行コードはCRLFからLFに変換してください。
3、インスタンスはPrivateSubnetにいる場合、STSのVPCエンドポイントを設定すること。
4、デフォールトJupyterユーザーは`sudo`権限を持っているためスクリプトの改ざんは可能。

##4番の補足
SageMakerでノートブックインスタンスを作成するときに「ルートアクセスー無効化」を設定しすれば改ざんできなくなりますが、コンソールで`yum`コマン

元記事を表示

EC2にアタッチしたIAMロールが変更できない場合の対処法

# はじめに
ある検証のために特定のEC2に対してIAMロールのつけ外しを行っていたのですが、急にIAMロールのアタッチができなくなったので、解決までの手順を書いておきます。

# 事象
元々アタッチしていたIAMロールを一旦外そうとした際、以下のようにエラーが出力されて、IAMロールのつけ外しができなくなりました。
尚、これが表示される直前に1度違うIAMロールから変更しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440403/9304ff5d-9b27-4b68-e889-8a667095948f.png)

# 調査
調べてみると以下のページを見つけました。
https://www.fixes.pub/program/207318.html

このページを見る限りだと、IAMロールを付け替えした際にEC2に紐づくインスタンスプロファイルも当然変更されますが、その関連付けが中途半端に設定された状態であることが原因のようです。

# 対応方法
参考ページの内容から
1.”

元記事を表示

AWSでACM証明書を発行し、https化したのにフォーム送信でセキュリティ保護されていないメッセージがでるときの対処法

個人アプリの作成で、ALBを使用しACMで証明書を取得。
https化までできたところでフォームを送信すると、、、
![スクリーンショット 2021-09-10 125515.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/933058/71a080ed-8895-c22f-e40d-a2aed104d175.png)

このようなエラーが。。。:sweat:

httpで通信が行われるようになっていたため、
ALBのリスナーの設定がまずいのかといじってみたが改善せず。

#対処法

Laravel側でAWSのロードバランサ用のプロキシ設定が必要でした。

“`php:App\Http\Middleware\TrustProxies

元記事を表示

AWS Lambda 関数を Docker コンテナを使ってビルド & デプロイ

# 概要

記事 [第一回 コンテナ Lambda の”いろは”、AWS CLI でのデプロイに挑戦 !](https://aws.amazon.com/jp/builders-flash/202103/new-lambda-container-development/?awsf.filter-name=*all) を参考に

windows10 で AWS Lambda 関数を Docker コンテナを使ってビルド & デプロイ する方法を書きました

AWS Lambda 関数を Docker コンテナを使ってビルド & デプロイ するには以下の3ステップが必要です

1.**Docker イメージ**を作成する
2.**Docker イメージ**を **Amazon ECR リポジトリ** にプッシュする
3.**Lambda関数**に **Amazon ECR リポジトリ**(の Docker イメージ) から ビルドする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1428

元記事を表示

CyberduckでPrivate EC2へファイル転送

## これは何

WinSCPがMacで使えなさそう(使えるけど設定が面倒くさそう)、ということで、Cyberduckを使ってファイル転送してみました。のメモです。

## 前提

踏み台EC2からPrivate EC2へ、Cyberduckを使ってファイル転送します。
ローカルマシンのポートをリモート先に転送します。

## 早速やってみた

**踏み台にSSHポートフォワーディングを張る**

“`
$ ssh -f -N -L 10220(任意):Private EC2のPrivate IP or ドメイン:22 -i 秘密鍵 OSユーザー名@踏み台EC2のPublic IP
“`

-f : バックグラウンドで動作
-N : コマンド実行無し
-L : Localのことを表す

**CyberduckでCMSのアクセス情報入力**

サーバー名 : localhost
ポート名 : 10220(任意)
ユーザー名 : Private EC2のOSユーザー名
SSH Private Key : 秘密鍵のFull Path

これで接続できました。

あとは適当にファイル転送し

元記事を表示

OTHERカテゴリの最新記事