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

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

Lambda Node ランタイム v12 → v14 update 備忘録

# はじめに
Lambda Node ランタイム v12が2022/04でサポートが終わるため、v14に更新しないといけないProjectが存在していました。
その際の手順として備忘録を残したいと思います。
ただ、本記事ではv14へ上げるというよりは、ランタイムのバージョンを上げる際にどういうことをやったのかを記載したいと思います。

# 環境
– ローカル環境端末
– macOS Big Sur
– AWS SAM CLI 
– Docker
– Lambda ソース環境
– AWS SAM で構築を実施
– ApiGateway & Lambda(TypeScript)を構築
– TypeScriptのためwebpackで実行ソースを作成(トランスコンパイル)している
– 利用しているnodeModules群はすべて最新のVersionに更新済み

# 手順
私の環境での対応としては以下の流れで実施しました。
1. AWS SAM Template.yamlでNodeRuntimeのVersionを更新
2. AWSアカウントにデプロイを実施
3. AW

元記事を表示

セッションマネージャーがリモートホストのポートフォワードに対応した件

# 背景
AWS Summit Japan 2022 の興奮冷めやらぬ間にしれっとAWSが次ような発表をしました。
[AWS Systems Manager announces support for port forwarding to remote hosts using Session Manager](https://aws.amazon.com/jp/about-aws/whats-new/2022/05/aws-systems-manager-support-port-forwarding-remote-hosts-using-session-manager/)

詰まるところ今まではローカルホストのポートフォワードしか対応できていなかったので、外部からRDSへ接続する為の踏み台に対して SSH アカウントを個別に発行する必要がありました。
SSH アカウントの管理ではキーペアの登録等で運用が面倒でしたが、それが一切不要になりました。

# 課題
一部の運用では「セッションマネージャーを許可したいだけだったのに RDS に接続できてしまう」というのが不都合だということで、こ

元記事を表示

AWS認定試験の受験と勉強記録

## はじめに
現在、私は7冠AWS資格を取得しました。
取得時期と当時苦労したことなど勉強方法などを記載します。
勉強方法は個人差はありますので、参考程度にして頂けたら幸いです。

## 受験時期

|No. |試験名 |受験時期 |点数|合否 |
|—|—|—|—|—|
|1 |AWSクラウドプラクティショナー |2019-09-21|785点|不合格 |
|2 |AWSクラウドプラクティショナー |2019-11-02|656点|合格|
|3 |AWS Certified Solutions Architect – Associate |2020-08-11|660|不合格|
|4 |AWS Certified Solutions Architect – Associate |2020-09-26|680|不合格|
|5 |AWS Certified Solutions Architect – Associate |2020-11-07|753|合格|
|6 |AWS Certified SysOps Administrator – Associate

元記事を表示

CloudWatch監視設定

# はじめに
今回、CloudWatchを用いた監視設定を試してみましたので整理していきます。公式ドキュメントにある無料利用枠内で設定をしました。
https://aws.amazon.com/jp/cloudwatch/pricing/
尚、監視設定の対象とした構成は以下となります。
![スクリーンショット 2022-05-31 8.13.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1067765/633f9612-6619-83b4-bba2-d82491b94659.png)

# 使用したメトリスク

|監視対象サービス |メトリスク名 |監視内容 |
|—|—|—|
|EC2 |CPUUtilization |EC2インスタンスのCPU使用率 |
|EC2 |StatusCheckFailed_Instance |インスタンス内部のソフトウェアおよびネットワーク設定の監視。インスタンス内部に異常がある場合は「1」となる。 |
|RDS |CPUUtili

元記事を表示

AWS EventBridgeとSNSの連携

# はじめに
SOAの資格試験対策のために学んだことを記録として残します。
SOAの試験は、C02に改訂されてからマネジメントコンソールで回答する問題も追加され、ハンズオンで学習することが今まで以上に重要となりました。
この記事では、実際にEventBridgeを動かして使い方を説明します。
# EventBridgeとは?
状態の変化(イベント)に対し、あらかじめ設定したルールに基づいて、ターゲット(他のAWSサービスなど)に対して何らかのアクションを実行させるサービスです。
イベントは、AWS Config、CloudWatch、CloudTrailなどによって検知されます。
今回はEC2インスタンスの状態変化を検知して、SNSを起動し、メール通知を行うという仕組みを構築します。
![EventBridge-SNS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1000359/c5a0b30d-48a2-4d85-e7b4-b68bce53afc1.png)
# 手順
1. EC2インスタンスの作成

元記事を表示

[Amazon Linux] ユーザー追加とパスワード設定

OS

Amazon Linuxを使用しています
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2664791/b8058341-1181-e732-4aed-62c4878c7e12.png)

ユーザーの追加

一旦root権限にします
![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2664791/057fb6cb-6324-57a2-add8-3b39b90ca136.png)

useradd ●● とコマンドを入力します。
私の場合は”uni”を新規ユーザーとして作成しました。
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2664791/a909242c-b73a-bf89-7082-75ed3388a738.png)

今作成した”uni”ユーザーにログインできることを確認します。
sudo

元記事を表示

AWSのEC2へアプリをデプロイした際のThe page you were looking for doesn’t exist.というエラーについて

## はじめに
Railsで作成したアプリをAWSのEC2上にデプロイしようとした際、ブラウザ上に
The page you were looking for doesn’t exist.
You may have mistyped the address or the page may have moved.
というエラーが生じました。
自分の状況にピッタリくる参考記事が見つけられず、上記のエラーに苦しめられたためこの記事を作成しました。

## 開発環境
– ruby2.6.3
– rails6.1.4
– IDE:Cloud9

## エラー内容
railsのエラーログを確認するとActionController::RoutingError(ルーティングエラー)が/(ルートパス)へ生じている。urlへさまざまなルーティングを打ち込むと全てルーティングエラーになっている。
– アプリがgithubからpullできているか確認 → OK
– 結び付けられたサーバーがあっているか確認 → OK
– 本番環境内にルーティングがあるか確認 → OK

サーバーを落としてみようと下記コマンド

元記事を表示

[Amazon Linux] Apatchのインストール

OS

AMAZON Linuxを使用しています。

Apatchのインストール
——-
下記コマンドを入力する
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2664791/9ee9b867-68d4-374b-e826-20dc3060f99c.png)

Complete!が表示されればOK!
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2664791/2784d0ce-1e97-55c9-2488-142d531c6b42.png)

apatchサービスの状態確認を行う

下記青線のコマンドを入力
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2664791/990c1f02-bea7-9c43-103e-6b7dce30b4ea.png)

状態(Active)がinactive(de

元記事を表示

S3からオブジェクトをダウンロードしようとするとKMSの権限エラー

## 概要
– 特定のIAMでS3のオブジェクトをダウンロードしようとすると以下のエラーが出る
– **The ciphertext refers to a customer master key that does not exist, does not exist in this region, or you are not allowed to access.**
– IAMユーザを使用できるIPアドレスを絞るためにIAMユーザのポリシーでConditionで「**aws:SourceIp**」を使っていることが原因
– Conditionに追加で**Null**の条件演算子の「**”kms:ViaService”: “true”**」を指定することで解消

## 背景
以下を行った際、「The ciphertext refers to a customer master key that does not exist, does not exist in this region, or you are not allowed to access.」というCMKに関連する

元記事を表示

全てのリポジトリを一括 git-secrets したい

# 課題
git-secrets でクレデンシャルがリポジトリにコミットされていないか確認したいけど、リポジトリが多過ぎて全部チェックするのは… という方向けの記事です。

# 解決
git-secrets はこちら。
https://github.com/awslabs/git-secrets

一覧取得はgithub公式のghコマンドを利用します。
https://github.com/cli/cli

## コード
“`shellscript
#!/bin/sh

ACCOUNT_ID=example
LIST_LIMIT=100

for repo in `gh repo list ${ACCOUNT_ID} –limit ${LIST_LIMIT} | awk ‘{print $1}’ | awk -F/ ‘{print $2}’`
do
echo “### ${repo}”
rm -rf ${repo}
# ダウンロード状況は一時ログへ
git clone https://github.com/${ACCOUNT_ID}/${repo}.git >

元記事を表示

Redisのメモリが100%を超えたときの挙動の調査・検証

## はじめに

社内のプロジェクトでAWSのElasticCache for Redisを利用する機会がありました。
その際、Redisメモリ利用量が100%に達する可能性があったので、そのあたりの挙動について調査・検証してみてみました。

## 調査

### メモリが100%を超えようとする時どうなるのか

Redisはメモリが100%になったとしてもいきなり落ちることはありません。
Redisのメモリが100%になるかmaxmemory設定を超えた時、**Eviction** という事象が発生します。
**Eviction** とは直訳すると「立ち退き、明け渡し」的な意味で、既存のキーを削除しメモリを確保する挙動です。

### Evictionの設定
Eviction発生によるキーの削除ルールはRedisの`maxmemory-policy`という設定で変更することができます。
(ElasticCacheのRedisだとパラメータグループの設定で確認・編集できます)

`maxmemory-policy` の種類には以下のようなものがあります。キーに有効期限(TTL)があ

元記事を表示

AWS 認定 ソリューションアーキテクト – プロフェッショナル(AWS Certified Solutions Architect – Professional) の合格メモ

**AWS 認定 ソリューションアーキテクト – プロフェッショナル(AWS Certified Solutions Architect – Professional)**
通称SAPを受験したのでその備忘録として残します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438389/cfc2c2a2-e672-6a6a-b38d-021c8ad90189.png)

[公式ページ](https://aws.amazon.com/jp/certification/certified-solutions-architect-professional/?ch=sec&sec=rmg&d=1)

ちなみに試験を受け終えた後に知ったのですが、
**AWS Certified Solutions Architect – Professional 認定試験は、2022 年 11 月 15 日に変更となります。現行の試験の最終受験日は 2022 年 11 月 14 日です。**
だそうです。

[試験

元記事を表示

複数のEC2を指定された時間に自動的に停止及び起動

# 要件
複数のEC2を指定された時間に自動的に停止及び起動をさせる。実行が失敗した際に、SNSでメールを送信する必要があるとする。

# STEP1:IAMロールの作成
■ IAMのロール作成の画面を開く
■ ユースケース⇒「他のAWSのサービスのユースケース」に「Systems Manager」を選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457891/a7f251a9-63be-fd1a-b609-bf68681e0fff.png)

■ 許可ポリシーを追加:
AWSの管理ポリシー:AmazonSSMAutomationRoleをアタッチする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/457891/dff837b7-11bf-b6d6-4f2c-f84a6a90511b.png)

■ ロール名と説明部分を入力する
![image.png](https://qiita

元記事を表示

AWS ソリューションアーキテクトアソシエイツ (SAA) 一発合格のためにやったこと

## はじめに

SAAに合格したので、勉強のこつや学んだ知識を残しておきます。あとに続く方の参考に少しでもなればよいなーっていうモチベーションです。

## 学習量

2ヶ月前くらいから本買って読み始めましたが、正味2週間弱といった感じです。人間、直前にならないとやらないということで…

## 前提

一応、私のAWS歴ですが、仕事でほんのちょぴっと触る(といってもガチエンジニアではないのでほんとちょぴっと)くらい。ただし、趣味で個人開発をしており、Amplifyまわりはそれなりに詳しくなりました。

## 合格までのロードマップ

– [徹底攻略 AWS認定 ソリューションアーキテクト](https://www.amazon.co.jp/%E6%A8%A1%E6%93%AC%E5%95%8F%E9%A1%8C%E4%BB%98%E3%81%8D-AWS%E8%AA%8D%E5%AE%9A-%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E

元記事を表示

【AWS】CloudWatchのログが出力できない時の対処

よくある**CloudWatch**が出力されない問題の対処です。
尚、以下はAMIコピーで作成したインスタンスでログが出力されなかった時の内容です。
(つまり旧インスタンスでいろいろやれている状態:imp:)

## 前提
今回のケースではロググループが異なったため、
**awslogs.conf**を書き換えました。

“`
vi /var/awslogs/etc/awslogs.conf
“`
ここで下記の箇所を書き換えます
“`
log_group_name =
“`
書き換えたらサービス再起動
“`
systemctl start awslogsd
“`

## 1、ログの確認
エラー時の基本です。
とりあえず下記ログファイル確認しましょう。
**tail**とかでよいと思います。

“`
tail -f /var/awslogs/etc/awslogs.log
“`

## 2、ロールの確認
EC2のロールに付与されていない可能性があるので、これを確認します。

基本的には**EC2→IAMロール**に、**CloudWatchLogsFullAcces

元記事を表示

【AWS】AMIコピーからのEC2作成時に設定したpemキーでログインできない問題

AMIコピーで、インスタンスを作成したとき、
新規に作成したpemキーでログインできない場合があります。
その対処法を記載します。

## 1、新pemキーからpubキーを作成する
“`
$ ssh-keygen -y -f ~/.ssh/新pem名.pem > 新pem名.pub
“`
ここでpubキーの中のデータをコピーしておきます

## 2、authorized_keysの書き換え
**①旧pemキーでインスタンスにログインします。**

**②authorized_keysを編集します。**
“`
vi ~./.ssh/authorized_keys
“`

中身を1でコピーした内容に差し替えます。
差し替えなのでauthorized_keysは、
cpとかでバックアップしといた方がいいかもしれません。

以上です。このあたりの処理もAWS側がやってくれるといいのですが、
なんらかの理由があってauthorized_keysを書き換えられないのでしょう。

ちょっとだけ鍵の仕組みを知る機会になったのでよしとします:smirk:

元記事を表示

WordPressをFargateで運用時、エラー対応 [AH01630: client denied by server configuration: /var/www/html/server-status]

# はじめに
WordPressをFargateで運用時、apacheのエラーログに以下の出力を発見しました。
“`
[Thu May 1 xx:xx:xx.xxxxx 2022] [authz_core:error] [pid 694]
[client xxx.xxx.xxx.xxx:43092] AH01630: client denied by server configuration: /var/www/html/server-status
“`
client IPから、海外のbotが`https://ドメイン/server-status`にアクセスしていることが分かりました。
この対応について説明します。

# 事前構築

– 以下を記事通り、wordpressをfargateで構築済み
– 基本的に下記のDockerfileをビルド後、ECRにpushし、デプロイしただけです。

https://qiita.com/hirai-11/items/bde67b8334f3362c8009

“`Dockerfile:Dockerfile
FROM wordpr

元記事を表示

【AWS】t2→t3のインスタンスタイプ変更方法

t3が出てきたのが2018とかだったので、この手の変更はよくあるのではあるのかと思います。
サイズの変更とかだとサクッといきますが、世代だとそうはいきませんでした。

ENAの拡張ネットワーキング機能を有効化させてあげる必要があるため、以下変更手順です。

## 1、ENAモジュールのインストール確認
**ENAモジュールが有効であることを確認します。**
“`
$ modinfo ena
“`
一覧ぽいものが返ってくればOKです。

※もし返ってこなかった場合、導入が必要です
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/enhanced-networking-ena.html#test-enhanced-networking-ena

## 2、ENAモジュールがインターフェースで使用されていることの確認
**ENAモジュールがインターフェースで使用されていることを確認します。**
“`
$ ethtool -i eth0
“`

**driver: ena** になっていればOKですが、おそらく**dr

元記事を表示

今からでも間に合う!AWS Summit Onlineのオンデマンド視聴お勧めコンテンツと、自己流時短ウォッチ

今年もAWS Summitが開催されました。ほとんどのコンテンツは**6/30まで**、オンデマンドで視聴できます。

近年はオンラインが主体になっています。
以前までの現地開催の場合、私自身は登壇やブース対応をお手伝いさせていただく機会も多かったため、スケジュールをがっつりと押さえていました。現地で空き時間に視聴することができました。
一方、オンラインではなかなか時間を確保することが難しく、予定していた視聴カレンダーが上書きされていくことも多いです。
さらに、150を超えるセッションの全てを閲覧することは非常に難しいです。

そこで、私自身がAWS Summit Onlineのような大規模なオンラインイベントを効率的に観るための自己流ノウハウと、個人的オススメのコンテンツを共有させていただきます。

# 自己流時短ウォッチ
## 時短視聴のTips
### 再生速度を変更する
多くの聴衆が聴きやすいように、少しゆっくり目に話されることが多いです。
ある程度理解していることを聴く場合は再生速度を上げても理解がついていくかどうかを試してみましょう。
自分自身は、基本2倍、内容によっては1

元記事を表示

【SwiftUI】Amazon Cognitoでソーシャルログインする

## 前提
– ソーシャルログインに用いるサービス側の設定(クライアントID、シークレットキー等の取得)が完了している

## 環境
– Xcode 13.4

## 1. プロジェクトの作成
XcodeからiOS Appのプロジェクトを作成します
![プロジェクト作成](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568230/6a2b8ce5-d7ae-7dbf-48d3-882affd03369.png)
![プロジェクト情報](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568230/dbdb4fa2-2cfa-b8d0-df62-edffdddbaaea.png)

## 2. Amplifyのインストール
“`
npm install -g @aws-amplify/cli
“`

## 3. 初期設定
プロジェクトのルートフォルダで下記コマンドを実行
“`
amplify init
“`
いろいろ聞かれるので順番に

元記事を表示

OTHERカテゴリの最新記事