AWS関連のことを調べてみた2022年03月02日

AWS関連のことを調べてみた2022年03月02日
目次

AWS CDKでセキュリティグループを制限したFargateの起動

# 概要

AWS CDKの`ApplicationLoadBalancedFargateService`でFargateを作った際、ALBのセキュリティグループでIP制限をしましたが、セキュリティグループが全開放されてしまいました。なので今回はセキュリティグループを設定したFargateを起動する方法を紹介します。
`ApplicationLoadBalancedFargateService`については以下を参考にしてください。

https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-ecs-patterns.ApplicationLoadBalancedFargateService.html

# 環境

– windows10
– aws-cdk: `2.8.0`

# 手順

## セキュリティグループを設定

`SecurityGroup`クラスを使用し、セキュリティグループを作成します。

“`typescript
const alb_securityGroup = new SecurityGroup(t

元記事を表示

ALBリスナールールで固定レスポンス、リダイレクト先指定してみた

# 目標
Application Load Balancerのリスナー設定(固定レスポンス、リダイレクト先指定)を理解する。

# Application Load Balancerのリスナーとは?
閲覧者毎にページの表示非表示、リダイレクト等を設定できます。
1.閲覧者Aには、ページA、B共に表示する。
2.閲覧者Bには、ページAは表示させない、ページBのみ表示する。
3.閲覧者Cには、ページAは表示させない、ページBを表示させた際はページCにリダイレクトさせる。

> リスナーとは、設定したプロトコルとポートを使用して接続リクエストをチェックするプロセスです。リスナーに対して定義したルールにより、ロードバランサーが登録済みターゲットにリクエストをルーティングする方法が決まります。

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-listeners.html

# 1.事前準備
1.EC2を作成します。

“`
$ sudo su –
# yum ins

元記事を表示

【個人開発】フードデリバリー配達員の情報交換サイトを作りました。

# サービスの概要
【サイト名】
Fodeli Online

https://fodelionline.site/

![スクリーンショット 0004-02-24 4.27.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1794066/80a8464a-0909-adfe-eb2d-8039be9f72fb.png)

【コンセプト】
フードデリバリー配達員の情報交換や交流を目的としたサービス

【サービスの開発に至るまでの背景】
私自身、2社フードデリバリーで働いていた経験があり、出来高制ということもあり、注文が来なくて稼げない時期がありました。
一般的な会社だったら上司に仕事のコツを教えて貰えたりすると思いますが、完全個人のこの仕事では基本的には自分でコツを見つけていくしかありません。
そんな中で、配達員同士がもっと気軽に情報交換ができるサービスがあったらいいなと考え、このサービスを開発することにしました。

# アプリケーションの機能

ユーザー登録機能
 ■ ログイン機能
 ■ ログ

元記事を表示

ACMで無料のパブリック証明書をリクエスト(DNS認証)

これはQiitaに関する私の最初の投稿です。
よろしくお願いいたします。

ACMは、AWSサービスのユーザーに無料のSSL証明書を提供します。良い選択だと思います。
今回はACMで無料のSSL証明書をリクエストしてみます。

まず、Route53でドメインを購入し、そのドメインのパブリックホストゾーンを作成しました。

1. ACMコンソールで「証明書をリクエスト」ボタンを押してから、「次へ」ボタンを押します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1901067/8db40544-b459-f500-2fae-ab8f57545440.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1901067/030d7402-c323-95f8-19f1-b5a1f7461745.png)

2. SSL証明書の情報を入力します
DNSで認証する方が簡単だと思います。 さらに、SS

元記事を表示

AWS Protonを試して何に使えるか考える

# 何が起こるか把握する

まずは触ってみて、何が起こるか見てみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64098/9c0c7438-41b7-49b1-e134-9dd074de1cd3.png)

https://ap-northeast-1.console.aws.amazon.com/proton/home?region=ap-northeast-1#/

## 使用を開始する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64098/0dca57c4-b04f-78e0-662a-87867cba3c9c.png)

ガイドに従って以下を作成していきます。

1. 環境テンプレート
1. サービステンプレート
1. 環境
1. サービス
1. サービスインスタンス

– ※今回はFargateのサンプルバンドルを選択する
– ※名前が必要なものは連番で `sam

元記事を表示

【AWS】メトリクスフィルターとサブスクリプションフィルターの違い(メモ)

– メトリクスフィルター:簡易的なログの監視で使用
– サブスクリプションフィルター:Lambdaを呼び出すなどの柔軟な監視ができる

参考サイト:https://dev.classmethod.jp/articles/notify-error-cloudwatch-logs-with-lambda/

元記事を表示

[Ansible] 既に入ってるのに”ERROR! The ec2 dynamic inventory plugin requires boto3 and botocore.”と言われたときの対処方法。

# はじめに

`aws_ec2`インベントリプラグインを使いたくて、boto3とbotocoreをインストール。

https://docs.ansible.com/ansible/latest/collections/amazon/aws/aws_ec2_inventory.html

“`
$ pip install boto3 botocore # boto3とbotocoreをインストール
“`

いざansibleコマンドをすると、以下のようなことを言われる。

“`
ERROR! The ec2 dynamic inventory plugin requires boto3 and botocore.
“`

boto3とbotocoreをインストールしろとのこと。
ええ……。

# 解決方

yumでboto3をインストールします。

“`
$ sudo yum install python-boto3
“`

botocoreに関してはインストールしなくても大丈夫です。
以下を実行しても、「既に入ってるぜ?」と言われます。どっちだよ。

“`
$ sud

元記事を表示

AWS Cloudformationファイルを元にIAM Policyを生成する

# はじめに
AWSログインユーザに払い出す権限は最小権限であるべき。
しかしながら、Cloudformationでは様々なリソースを一気に作る関係上必要最小限のIAMポリシーが分からない。
最小権限を調査する方法としては[IAM Access Analyzer](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/what-is-access-analyzer.html)を利用する。
この時、一時的にでもAdmin権限を渡してCloudTrailログを解析することになる。

本記事はセキュリティ管理者に権限を申請する際、何の権限が必要なのかを調べようとしたときそのポリシーの種類と情報量に圧倒された人向けである。

# TL;DL
[cfn-giam](https://pypi.org/project/cfngiam/)を利用する
**note: 筆者作成ツールであり、2022/03/01時点でデバッグ未完了。フィードバック募集中。**

1. AWS CLI実行可能環境を用意する(CloudShellやaws configur

元記事を表示

AWS Secrets Manager を使ってRDSへ接続してみる!

## 勉強前イメージ

[これ](https://qiita.com/miyuki_samitani/items/d19006aab6f8f6f284f6) で勉強したからやってみる。
パスワードとかを格納したらいいのかね。

## まず AWS Secrets Manager とは

サービス、環境、アプリケーションに接続するためのパスワードなどの機密情報を管理するためのサービスです。
詳細は [こちら](https://qiita.com/miyuki_samitani/items/d19006aab6f8f6f284f6) で見てください

## さっそくやってみる

### 構成

EC2を立てて、RDSへ接続する簡単な構成。
接続情報はSecrets Managerを使用するって感じで設定していきたいと思います

![12022-02-19 # AWS Secrets Manager を使ってRDSへ接続してみる! -.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/dddf938

元記事を表示

LambdaPermissionとは何か

# はじめに
Former2でCloudformationテンプレートを作っていたらLambdaPermissionなるものが生成された。
“`yaml
LambdaPermission:
Type: “AWS::Lambda::Permission”
Properties:
Action: “lambda:InvokeFunction”
FunctionName: !GetAtt LambdaFunction.Arn
Principal: “apigateway.amazonaws.com”
SourceArn: “**************”
“`
身に覚えがないぞ。

# 結論
* コンソールから手動で作成するときは自動で生成されるもの。
* Lambda関数にトリガーをセットする際、トリガーからのInvocateを許可するリソースベースポリシー。つまりこいつがないとトリガーが機能しない。

## 公式を確認
_The AWS::Lambda::P

元記事を表示

【AWS】WordPressでSite Guardの設定が効かない対処法

# 経緯
AWSのEC2で構築したWordPressでログインページをデフォルトから変更するためにSite Guard WP Pluginを導入しました。
画面上では有効になるものの、実際にアクセスしてみると以下のような挙動になりました。

– wp-adminにアクセスするとwp-login.phpにリダイレクトされる
– ログインページ変更後のURLでアクセスしようとすると404エラーが返ってくる

ネットで検索すると似たような事象は出てくるものの、解決に繋がりませんでしたが、何とか自己解決したので、同じような状況の人は同じ対処法を試してみてください。

# 原因
### wp-adminにアクセスするとwp-login.phpにリダイレクトされる

SiteGuardの「管理ページアクセス制御」を有効にしないとリダイレクトされるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2520632/3dad1eaa-4119-d91f-f9ff-36c4a492f4d2.png)

元記事を表示

VMware Cloud on AWS環境でストレッチクラスタを作成してみた (#1前編 – 2ホスト構成)

# 1. はじめに
「[VMware Cloud on AWS](https://www.vmware.com/jp/products/vmc-on-aws.html)」でストレッチクラスタを作成したので、備忘録を前編と後編にまとめます。
前編である本稿は、VMworld 2021でのアップデートによって構成可能になった[2ホスト構成のストレッチクラスタ](https://docs.vmware.com/jp/VMware-Cloud-on-AWS/0/rn/vmc-on-aws-relnotes.html#wn10282021)の作成手順およびvCenterからみた構成画面をご紹介します。

https://qiita.com/sanjushi003/items/9805631d3cc3c1f47e58

後編では、前編で作成した2ホスト構成を4ホスト構成のストレッチクラスタにスケールアップしてみたので手順含めてご紹介します。

https://qiita.com/sanjushi003/private/57c8dda4485a82a809a0

# 2. そもそもストレッチクラスタ

元記事を表示

Lambda(Node.js)で別アカウントのECSサービス情報を取得する

# はじめに
Node.jsを使ってスイッチロールして別アカウントのECS情報を取得する際に実装方法が分からなかったので、備忘として残しておきます。
Lambda+Node.jsの情報少なすぎひん…?

# 設定内容
## 権限設定
Lambdaを作成する前に以下の設定だけ先にやっておきます。
色々試しながらだったので、もしかしたら漏れがあるかもしれません。

* アクセス元のIAMロールにAssumeRole権限追加
* アクセス先のIAMロールにECSへのアクセス権限追加(ECSFullAccess)
* アクセス先のIAMロールの信頼関係にアクセス元のIAMロールを追加

## Lambda実装
初めてNode.js書くので不要な実装とか含まれているかもしれませんが、実際に実装したプログラムは以下です。
普段Pythonしか書かないのでcallbackとか全然頭に入ってこなかった。。

“`
const AWS = require(‘aws-sdk’);
const sts = new AWS.STS({apiVersion:’2011-06-15′,region:’ap-

元記事を表示

Gmailで独自ドメイン(結果編)

Amazon SESを使って通常のGmailで独自ドメインを利用……しようとした。

https://qiita.com/Sand-River/items/4c0dbb16b70e11ec594a

# 結果的な構成

色々あって結果的には以下の構成となった。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554633/2a82d120-ddf8-bffe-2643-ee8317655d79.png)

– GSuite Legacyは塩漬け
– メールの受信はCloudflareのEmail Routing機能を利用してGmailに転送
– メールの送信はAmazon SESを利用してSMTPで配信

この構成で、少なくとも受信・送信ともにSPF/DKIMについてはPASSしてる。

## 「色々あって」の部分
Amazon SESはGmailからSMTPを利用した送信機能についてはほぼ不満がなかったが、受信したメールを素敵に転送するハードルが高かった。

– 添付ファイルを付けて転

元記事を表示

Amplify Lambdaのトリガーでミスした件

# Amplify Lambdaのトリガーでミスした件

## はじめに
Amplify CLIでS3にLambdaトリガーを設定した際に、トリガーが永続的に発火しLambdaの請求額が上がってしまったので再発防止+覚えておくように書きます。

## 概要
AWS Amplifyで開発をしています。以下に簡単な概要を記述します。
クライアントは、ある特定のファイルをAmplifyで作ったStorage(S3)にプットします。それと同時にAPIでDynamoDBにレコードを挿入します。

この際にS3にプットされたファイルオブジェクトが正しいデータが否かを確認するためにLambdaトリガーをAmplifyで設定します。

このLambdaはDynamoDBにそのファイルのデータがあるかを確認し、あればそのままファイルをS3に保存し、ない場合はそのS3オブジェクトを削除するというものです。

## ループまで
Amplify cli で storageにトリガーを設定し、プッシュしました。

“`
$ amplify update storage

Select from one of

元記事を表示

40 代おっさんAWS(AmazonLinux2)環境でPython3の環境構築をしてみる

## 本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

## 構築環境

・EC2:Amazon Linux2
・Cloud9使用
こちらを参照してください

## Pythonのバージョン確認

Amazon Linux2では標準でPython2系が入っています。
これを3系にするのが今回の目的になります。

バージョン確認

“`bash
python -V
“`

Python 2.7.18
とコンソールに出たと思います。

Python3を使うのに必要な物もあるのでそちらも確認

“`bash
pip –version
pipenv –version
“`

どちらも
command n

元記事を表示

ExternalSecretsOperator(ESO)をEKSとGKEに導入して各SecretsManagerからシークレットを取得する

# はじめに
マルチクラウド構成の検討とか色々とやってる中で、アプリケーションで使用するシークレットを取得するにあたって、マネージドサービスのKubernetes(EKS/GKE)からどうやって呼び出すか?を検討しました。環境の前提条件などから色々とハマったので、導入からシークレットの取得までを整理したいと思います。
※間違ってたらコメントなどで指摘を頂けますとありがたいです。

# 前提条件
## AWS
– EKSクラスタが構築されていること
– ノードグループではなく、Fargateで起動する(ここが色々と制限になりました)
– FargateプロファイルはDefaultとKube-systemを別個に作成
– ParametorStoreへの値の設定は事前に行っている

## Google Cloud
– GKEクラスタが構築されていること
– モードはAutoilotとする
– SecretsManagerへの値の設定は事前に行っている

## いろいろ
– kubectlの認証などは省略してます
– ファイルの中身は記載しますが、applyコマンドは省略してます

# 検討

元記事を表示

Lambdaでデプロイしたのに反映されない?と思ったらエイリアスを確認

# Lambdaのデプロイが反映されない
最近ジョインしたプロダクトの開発環境にて、修正したLambda関数をサクッと確認してみようとしたところ「あれ? デプロイしたのに反映されていない……?」となったので以下対応メモします。

## 事象
既にCloudformationその他で構築され問題なく動作しているAWS環境にて、Lambdaのソース(Python3.7)を修正して動かしてみたところ、明らかにソースが反映されていない(修正前のコードで動いている)という事象が発生。

デプロイのやり方としてはとてもシンプルで、Lambdaのチュートリアルとかでもよくある「コンソール画面でソースを修正して、『Deploy』クリック」するという方法。

↓画像の「Deploy」をクリック
![コメント 2022-03-01 124222.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1319998/682df768-17c0-ce83-1a31-41595d982b29.png)

その後別のデプロイ方法(zipフ

元記事を表示

AWS公式資料で挑むSCS認定(10)-KMS(続き)

[前回] [AWS公式資料で挑むSCS認定(9)-KMS](https://qiita.com/mingchun_zhao/items/67b44c02b5d78218702e)

## はじめに

前回の続きとしてKMSの勉強です。
KMSの暗号化/復号のフロー、暗号キーの認可/監査など重要事項を確認してから、
KMSが実際運用でどのように使われているか、ベストプラクティスを見てみます。

## KMSの暗号化/復号のフロー

### 暗号キーの作成と受け渡し

引用元: [[AWS Black Belt Online Seminar] AWS Key Management Service](https://d1.awsstatic.com/webinars/jp/pdf/services/20181121_AWS-BlackBelt-KMS.pdf)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/6a26b2a6-18a0-c50e-3934-a0da44f6cc6

元記事を表示

aws-sdk-goでcredentialを指定するには

# 結論
`Credentials`を指定して、静的な値を入れる。

> You can hard-code credentials in your application by passing the access keys to a configuration instance, as shown in the following snippet.

“`:go
aws.Config{
Region: aws.String(cfg.Region),
Credentials: credentials.NewStaticCredentials(
“AWS_ACCESS_KEY_ID”,
“AWS_SECRET_ACCESS_KEY”,
“TOKEN”,)
}
“`

# 経緯
アプリケーションをデプロイする際に、dockerコンテナの環境変数と本番環境の環境変数が被っていた。
この環境変数は、ElasticSearchを使うにあたって必要だったので命名を変更。
`AWS_ACCESS_KEY_ID` => `ES_A_K_ID`
`AWS_SECRET_ACCESS

元記事を表示

OTHERカテゴリの最新記事