AWS関連のことを調べてみた

AWS関連のことを調べてみた

AWS SAMでPrismaを使ったAWS Lambdaを動かす

## AWS SAMでLambdaを作成する
まずは、AWS SAM CLIを用いてテンプレート環境を作成します。事前に、AWS SAM CLIのインストールを[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/install-sam-cli.html)に従って行なってください。
準備が完了したら、テンプレートを作成します。
“`sh
sam init
“`
質問には以下のように答えます。
![スクリーンショット 2023-12-26 16.30.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591069/9a528524-63f0-1fd4-374f-f5478d718feb.png)
以下のようにアプリケーションが生成されたら準備完了です。
![スクリーンショット 2023-12-26 16.30.36.png](https://qiita-image

元記事を表示

S3 バケットをEC2 インスタンスにマウントする

# チュートリアルの目的

次のアーキテクチャをどのように構築するかを見ていきます。

![00d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/f203c9e5-622e-9894-5d2e-5038983ef7aa.png)

3つのインスタンスにS3バケットをボリュームとして使用し、これらのインスタンスがデータを共有できるようにマウントする予定です。

以前のチュートリアルで共通のEFSボリュームを使用した似たようなケースについてすでに触れています。

https://qiita.com/seikida/items/94e0b480d4bd1a1a9b92

:::note warn
S3をボリュームとして使用すると、**パフォーマンスとデータの整合性に関する多くの制約があることに注意してください。** S3はオブジェクトをバージョン管理することができますが、まだ更新されていないオブジェクトがインスタンスに取得される可能性があります。バージョニングを使用する場合は、この種の問題に注

元記事を表示

【AWS】CloudFrontのざっくりとした仕組み

## 背景
CloudFrontに対する理解がレベル1からレベル2に上がったので備忘録します。

## 概要
以下を記載する。
– CloudFrontの仕組み
– CDNとは
– CloudFrontの仕組み
– 今後調査したいこと

## CloudFrontの仕組み
CloudFrontを一言で言うと、「CDNを実現するためのAWSサービス」です。
なので、CloudFrontを理解するにはまずCDNを知る必要があります。

#### CDNとは(超簡潔ver)
CDNとは、Webコンテンツの配信を高速化するための仕組みです。
オリジンサーバーの情報を世界中のキャッシュサーバーが代わりに配信することで、配信を高速化します。
例えば、キャッシュサーバーがオリジンサーバーより物理的に近いことにより、配信が高速化されます(下図)
![CDNの仕組み.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2393766/65276af4-089b-b182-a1a0-84c2dcd2720

元記事を表示

【AWS】Application Load Balancerを解説【サービス解説】

## はじめに
AWSにはロードバランサーと呼ばれるサービスがいくつかありますが、今回はその中のApplication Load Balancer(ALB)について解説します。
## ELBの特徴
・書くELBの特徴についてはここでは省略しますが、AWSのコンソールにとてもよくまとまっているページがありましたので、その画面キャプチャを載せておきます
![ELBの特徴.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192949/391feb28-b0b2-dc42-26f2-3fa0478c5afd.png)

## Application Load Balancer(ALB) の主な特徴
### レイヤー7のロードバランシング
ALBはアプリケーション層での負荷分散を提供します。これはHTTPおよびHTTPSトラフィックに対応しており、トラフィックを複数のターゲットに分散させることができます。
### 柔軟なリスナールールとアクションの設定が可能
パスベースおよびホストベースのルーティングをサポートし

元記事を表示

【AWS】ソリューションアーキテクト アソシエイト に首の皮一枚残って合格した話

# はじめに
「SAAに合格した暁にはQiitaに合格体験記を投稿するぞ!」という謎のモチベーションのもと、何とか合格することができました。
巷にはSAAの合格体験記やら勉強法やらがQiitaだけでなく個人ブログやYouTubeなど色々な媒体に溢れかえっており、そちらを参照したほうがみなさんの糧となるはずです。
それでも当記事を投稿するのは、タイトルにあるとおり「首の皮一枚残って」という合格ラインギリギリで生き残ったことが、もしかしたらこれから受験する方々の背中を1mmでも押せるのでは、という思いがあることが理由です。
お世辞にもみなさんのお手本にはなることはありません。その点を踏まえて、もしよければ読み進めていただけると幸いです。

### 私のスペック

:::note info
– 受験時点で芸歴21年。年数は重ねてるものの全てアプリケーションエンジニアとしてやってきておりインフラ系は全く経験なし。
– Java, C# のアプリケーション開発経験を持ってる。DB は Oracle, PostgreSQL あたり。自称バッチ処理大好きおじさん。
– 過去の業務の中でAWS

元記事を表示

AWSのウォームアップについてわかりやすく具体例を用いて覚える備忘録

### AWSのウォームアップについての説明がよくわからなかったので調べて具体例を用いて説明

AWSの説明

インスタンスがウォームアップしている間、動的スケーリングポリシーは、ウォームアップしていないインスタンスのメトリクス値がポリシーのアラーム上限しきい値 (またはターゲット追跡スケーリングポリシーのターゲット利用率) より大きい場合にのみスケールアウトします。需要が高くなる場合は、アプリケーションの可用性を保護するためにスケールインを控えめに実行することがその目的になります。このブロックは、インスタンスのウォームアップが完了するまでスケールインして動的スケーリングを行います。

>これ一発でわかりませんでした。クールダウンとどう違うの?!

### 具体例を用いて理解する

#### ウォームアップ中のシナリオ

ある Auto Scaling グループがあり、動的スケーリングポリシーが設定されています。このポリシーでは、インスタンスの平均 CPU 使用率が70%を超えた場合に新しいインスタンスを起動するように構成されています。

#### ウォームアップが開始された時

元記事を表示

人工知能(Artificial Intelligence、AI)とは

機械学習エンジニアの木村です。AI(人工知能)への注目度が高まっています。AIは、あなたを幸せにするのでしょうか?

「幸せな人生とは、探して見つかるものではなく、自分で作っていくものです」

You do not find the happy life. You make it.
トーマス・S・モンソン

利用しない手は、ないでしょう。ただ、仕組みをわかってないと、使いこなす事は、出来ないでしょう。そのため、仕組みを理解する為の支援をさせて頂きます。

☝️ まずは、AI(人工知能)に注目してみます。

人工知能(Artificial Intelligence、AI)とは、人間の知能を模倣した機械の知能のことです。AIの研究は、1950年代に始まり、1997年には、IBMのコンピューター「ディープ・ブルー」が世界チャンピオンのチェスプレイヤーを破り、AIの可能性を世界に示しました。機械学習とは、大量のデータからパターンを学習する技術です。

機械学習のモデルは、アルゴリズムに基づいて学習し、未知のデータに対して予測や判断を行うための数学的な表現です。モデルは訓練データから学習し、

元記事を表示

SQSにLambdaトリガーを設定してみた

## はじめに
SQSにLambdaトリガーを設定して、SQSがメッセージを受信した時、自動でLambda関数が発火する仕組みを試してみました。

見なくていいですが、気分は前回記事の続き?です。

https://qiita.com/suiwave/items/149822a70b02daa25bd3

## 挙動まとめ
こんな感じの挙動が確認できました。

#### ①正常系
![cap_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654730/4db3e7f2-f025-635a-815e-344f7917eb6d.png)

キューはメッセージ受信後、メッセージをeventに含めながらlambdaを実行します。
可視性タイムアウト時間内にlambdaが正常終了すると、キューからメッセージが削除されます。

#### ②異常系
![cap_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654730/

元記事を表示

Amazon SQSのデッドレターキューの挙動を確認

# はじめに
年明けから重いInputは気分的に乗らなかったので、なんとなく気になっていたSQSを軽ーく動作確認してみました。
ドキュメントを読んで初めてデッドレターキューなる存在を知ったので、挙動を確認して、自分用にまとめます。

https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html

## 結論

– 可視性タイムアウト期間を過ぎたメッセージはエラー扱いとなる。
– customerはPrimaryキュー側の「最大受信数」まで同じメッセージを受信することができる。
– 例えば最大受信数が1の場合、customerは1度だけ同じメッセージを受信することができる。
– 受信数が最大受信数をむかえ、かつエラーとなったメッセージは、**次のメッセージがcustomerに受信されたタイミングで**デッドレターキューに送信される。

#### ①正常系
![cap_1.png](https://qiita-image-store.s

元記事を表示

AWS Application Composer in VSCodeを使ってAPIを作ってみた

# はじめに
こんにちは、都内でソフトウェアエンジニアとして活動している[YSasago](https://qiita.com/YSasago)です。
AWS re:Invent 2023の基調講演でDr. Werner Vogelsによって発表されたAWS Application Composer in VSCodeを使って、実際にAPIを作成してみたいと思います!基調講演は[Youtube](https://youtu.be/UTRBVPvzt9w?si=5nRqa3j17gIICjYP)で視聴することができます
![スクリーンショット 2023-12-28 14.21.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95954/2d34787a-f744-d253-4604-61178d4a7028.png)

# Application Composerとは
Application Composerは、前年のre:Inventで初めて発表されたツールで、AWSコンソール内で直感的にサーバーレ

元記事を表示

【AWS】APIKeyを使用したAPIGatewayの設定備忘録

 顧客へのAPIをサービスとして提供するには、API Gateway 使用量プランを設定する。API Gateway 使用量プランは、API キーを設定し、キーを知っているユーザーのみ利用可能にし、API キーでリクエストユーザーを特定することで、定義した制限とクォータに基づいて、スロットリングすることができる。今回は、LambdaとAPIGatewayを用いた使用料プラン付きのAPI作成方法を紹介する。

## Lambda + APIGatewayでAPIkey作成

1. 適当にLambda関数を作成する
1. トリガーを追加で、APIGateway、API type = RestAPI、Security = APIKeyを選択する
1. 作成したAPIgatewayをコンソール画面で開く
1. ステージを開き、CORSを有効にして、デプロイする
![APIGateway12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/22918afd-2eb9-17ee-d651-4a0

元記事を表示

【AWS】EC2でCloudWatchのカスタムメトリクス備忘録

カスタムメトリクスを使用すると、標準メトリクスでは監視できないパラメーターをロギングすることができる。カスタムメトリクスの導入には、統合 CloudWatch エージェントをインストールする必要がある。今回は、その方法をEC2を用いて紹介する。

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html

## EC2へカスタムメトリクス導入手順

1. IAMロールを作成して、アタッチする
インスタンスにアタッチされた IAM ロールに CloudWatchAgentServerPolicyが必要

1. IAM コンソールを開き、ロール -> ロールの作成を押す
1. 信頼されたエンティティタイプは、「AWS のサービス」を選択し
1. EC2を選択し、次へを押す
1. 許可ポリシー で、CloudWatchAgentServerPolicy, AmazonSSMManagedInstanceCore, CloudWatchAgentAdmi

元記事を表示

ALB(パブリック)- VPCエンドポイント-S3の構成 (追加でパスによる振り分け)

# 外部ALBに対してS3を直接紐づける

## 概要

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1364181/9fb0bf02-c0b4-8251-a10d-c82068ab36e4.png)

この構成です。この構成を実施したい人も多いと思うので記載します。

AWSの公式には内部ALBのバージョンの手順が載っているのですが、外部ALBバージョンでも作成できます。AWSのサポートには、これだとヘルスチェックが落ちると言われましたが、それも下記のようにすれば回避できます。

## 手順概要

内部ALBで構築するときの公式の手順

https://aws.amazon.com/jp/blogs/news/hosting-internal-https-static-websites-with-alb-s3-and-privatelink/

ほとんど上記の手順通りに進めます

**Step1: Amazon S3 のVPC Endpoint を作成する**
**Step2

元記事を表示

NATインスタンスをテンプレート化した

### テンプレート化した理由
AWSのテストをしたいときに、NATゲートウェイだとそこそこコストがかかるので、Natインスタンスを利用することがあります。NATインスタンスは使用するときだけ起動すればよいので、NATゲートウェイよりもコストを抑えられますが、まったく使用しない場合では、若干のEBSのコストが発生します。
そこで、NATインスタンスをCFnテンプレート化し、使用したいときだけ作成して課金できるようにしてみました。

### 参考にしたブログ
クラスメソッドさんの以下のブログを参考にさせていただきました。

https://dev.classmethod.jp/articles/how-to-create-amazon-linux-2023-nat-instance

https://dev.classmethod.jp/articles/create_nat_gateway/

### テンプレートの前提
EC2キーペア、NATインスタンス用のサブネット(パブリックとプライベート)、ルートテーブル(パブリックとプライベート)、インターネットゲートウェイ、セキュリティグル

元記事を表示

SecurityGroupが有効のNLBをEKSでプロビジョニングする

### 背景
3番煎じくらいのネタですが、最新版のLoadBalancerControllerでSecurityGroupが有効のNLBが作成できるようになったとのことなので実際に作成してみたのでその際の記録です。

### 手順

1. LBCのインストール
1. Podの起動
1. NLB用のマニフェスト作成と適用
1. 動作確認

### 環境

“`bash
[root@ip-192-168-0-50 ~]# k version
Client Version: v1.28.3-eks-e71965b
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.4-eks-8cb36c9
“`

### LBCのインストール

EKSがNLBをプロビジョニングするために、LoadBalancerControllerをインストールします。[公式](https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/aws-load-balan

元記事を表示

re:Invent2023でDr.Warnerが発表したTHE FRUGAL ARCHITECTに学ぶトレードオフアーキテクチャ

# はじめに
re:Invent2023に参加してきました!色々アウトプットしたいことが溜まっておりますが、もっとも感銘を受けたAmazon.comのCTODr.Warnerのキーノートについて考察を書いていきたいと思います。
![スクリーンショット 2023-12-10 17.53.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584167/8714019f-992a-90be-6f38-4aaa682e6148.png)

# THE FRUGAL ARCHITECTとは
THE FRUGAL ARCHITECT=倹約的なアーキテクト
コストを意識した持続可能なモダンアーキテクチャを構成するための法則のことです。
7つの法則が公開されていますので順番に考察を書いていきたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584167/1597b112-c662-aac1-655e-8

元記事を表示

AWSのAutoscalingによるスピンアップとは?の備忘録

“スピンアップ”は、Auto Scalingグループ内で新しいインスタンスが起動され、アプリケーションが新しいリソースで安定して動作するまでの時間を指します。Auto Scalingグループがインスタンスを自動的にスケールアウト(増やす)すると、新しいインスタンスが「スピンアップ」します。

図にするとこんな感じ????
違ってたらご指摘いただけると幸いです。

![AWSスピンアップ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/540462/86773804-044c-989d-a9fa-b33ce6231069.png)

スピンアップには、以下の主なプロセスが含まれます:

### 新しいインスタンスの起動

Auto Scalingグループは、需要が増えた場合に新しいインスタンスを起動します。これは通常、AMI(Amazon Machine Image)を使用して定義されたイメージをもとにした新しい仮想マシンの起動です。
起動時の設定の実行:

インスタンスが起動されると、指定された起

元記事を表示

AWS CLIのインストール手順

AWS CLIのインストール手順を説明します。

***
## AWS CLIとは
>AWS コマンドラインインターフェイス (AWS CLI) は、AWS のサービスを管理するための統合ツールです。 ダウンロードおよび設定用の単一のツールのみを使用して、コマンドラインから AWS の複数のサービスを制御し、スクリプトを使用してこれらを自動化することができます。
参考リンク:https://aws.amazon.com/jp/cli/#:~:text=AWS%20コマンドラインインターフェイス%20(AWS,することができます%E3%80%82

***
## 作業
① 下記リンクにアクセス

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html

② 使用しているOSを選択

![スクリーンショット 2024-01-02 0.21.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co

元記事を表示

Amazon EFSの使い方

# チュートリアルの目的

次のアーキテクチャをどのように構築するかを見ていきます。

![00c3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/d51b9e78-34fb-e917-5601-f09db62c44f1.png)

同じEFSボリュームを使用する3つのインスタンスを作成します。

## セキュリティグループの作成

「**EC2 ダッシュボード**」にアクセスしてください。

![Screenshot 2024-01-01 at 19.10.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3620161/1a095170-3a60-9c6c-5760-1e6e0010d229.png)

「**セキュリティグループ**」をクリックしてください。

![Screenshot 2024-01-01 at 19.10.30 copy.png](https://qiita-image-s

元記事を表示

【SSH】IPが毎回変わる場合、以前のホストキーが残っているとエラーになる

# 概要
踏み台サーバからEC2インスタンスへアクセスしようとしたら、`WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!`というエラーメッセージが表示されました。本記事では、こちらの原因と解決方法を記載します。

### 前提
アクセスしようとしたEC2インスタンスは、毎日起動・停止を繰り返す設定にしており、その度にプライベートIPが変わるようになっています。ですので、踏み台サーバからアクセスする際は以下のようなコマンドで実施しています。

“`
ssh -i sample_ecs.pem ec2-user@{プライベートIPアドレス}
“`

# エラー全文

“`
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS

元記事を表示

OTHERカテゴリの最新記事