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

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

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

元記事を表示

AWS EC2インスタンスの起動/停止をスケジュール実行(タグ指定あり)

## 1. はじめに
テスト環境の場合、コスト削減の観点で、決まった時間に起動、停止したいケースは多いと思います。
よくある方法として、インスタンスIDを指定する方式がありますが、対象のインスタンスが変動する場合は、メンテナンスが面倒になります。

ベターな方法として、タグの編集で制御する方法が考えられます。

本記事では、定期的なEC2の起動/停止を特定タグで管理して実現する方法を纏めました。

## 2. 実現したいこと(要件)
– 稼働時間帯:月-金の9時-20時
– 停止要件
– 時間帯:月-金の20時に対象インスタンスを停止する
– 対象インスタンス:下記のタグが設定されていること
– Key:EC2AutoStop
– Value:true
– 起動要件
– 時間帯:月-金の9時に対象インスタンスを起動する
– 対象インスタンス:下記のタグが設定されていること
– Key:EC2AutoStart
– Value:true

## 3. 構成図
停止要件を満たす、構成は下図の通り

元記事を表示

AWSの「Redshift」「Athena」「EMR」を比較して理解を深めたいっという備忘録

# Amazon Redshift

■用途
データウェアハウス(Data Warehouse)として使用されることが主な目的です。大規模なデータセットの分析クエリやBI(Business Intelligence)ツールからのアクセスに適しています。

■アーキテクチャ
カラムベースのストアエンジンを使用しており、大容量のデータを高速に処理できるように最適化されています。

■データの格納
データは列単位で格納され、クエリパフォーマンスを向上させることが可能です。

■データのロード
大規模なデータセットを一括でロードすることができます。

****特徴****
データウェアハウスとして設計され、高性能な分析用途に特化しています。専用のクラスタを使用し、大量のデータを高速に処理できます。

———————-
### できること

大規模なデータセットを高速に処理し、データウェアハウスとして使用可能。
カラムベースの格納エンジンを使用してクエリのパフォーマンスを最適化。
テーブル結合、集計、窓関数などの高度なSQL操作が可能。
データの圧縮、ソートキー、分

元記事を表示

AWSのCloudFrontとCloudFrontディストリビューションの違いについての備忘録

## CloudFrontとは

AWSのコンテンツデリバリーネットワーク(CDN)サービスです。
CloudFrontは、世界中のエッジロケーションに配置されたサーバーを利用して、ユーザーに対してコンテンツを高速に配信することを可能にします。
静的および動的なウェブコンテンツ、APIエンドポイント、動画など、さまざまな種類のコンテンツを高効率かつ低遅延で配信できます。

## CloudFrontディストリビューションとは

「CloudFront Distribution」とは、AWS CloudFrontサービスを使用する際に特定のコンテンツデリバリーの設定や構成を指す言葉です。
CloudFront Distributionは、特定のオリジン(通常はS3バケット、EC2インスタンス、API Gatewayなど)からデータを取得し、エッジロケーションにキャッシュします。
CloudFront Distributionを設定することで、コンテンツの配信設定、キャッシュコントロール、セキュリティポリシーなどを定義できます。

## 違いを簡単にいうと

「CloudFront」はAW

元記事を表示

AWSサーバ公開の備忘録

# 何の記事?
AWSサーバを構築して、ドメインやネットワークの設定もしたはずなのにアクセスできない!
を解決する方法の記事
(解決を確約するものではないのでご了承ください)

# 何があったの?
Route53でドメインを発行して設定し、EC2でインスタンスを立てて諸々設定したのに、ドメインにアクセスできなかった(「応答時間が長すぎる」と表示される)

# 解決方法
1. Apacheをインストールする
2. セキュリティグループの設定を追加する

## 1. Apacheをインストールする
飛んできたリクエストを仕分ける人が居ないんだから、そりゃWebページの表示なんかできないよね。

以下のコマンドをコピペで実行すればOK
“`
sudo apt install apache2
sudo systemctl start apache2
sudo systemctl enable apache2
“`

## 2. セキュリティグループの設定を追加する
インスタンス作成時の設定次第では、HTTP/HTTPS通信が許可されてない状態となる。
ということで、インスタンスのセキュリテ

元記事を表示

40 代おっさん AutoScaling を学ぶ

## 本記事について

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

## 概要

EC2インスタンスが処理しきれないときに
AutoScalingにてEC2インスタンスを増やして対応してもらえるようにする。

## AutoScaling

### 起動テンプレート

![AutoScalingkidou.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641940/691f6e0c-eb03-62c3-e9e7-3326bf433d88.png)

上記の図のように起動テンプレートを作成

#### 起動テンプレートとは

AMIは何か
インスタンスタイプ何か
Key Pair何か
Security group は何か

を通常EC2を起動するときに手動するものを、まとめたもの

※これとは別に起動設定がある。AutoScaling group で使用できるが

元記事を表示

AWS CLIアカウントでMFAさせてみた

## 前提
https://qiita.com/Snooze1229/items/e8898a0a63498273f710
の続きになります。

chromeのgoogle authenticatorを使用しますのでインストールをお願い致します。

## MFAとは
ここでの場合はAWSリソースになりますが、他にもアプリケーションやアカウント等にアクセスする際に、
多くの場合は「ユーザ名」と「パスワード」となりますが、MFAはこの2つに加えてさらに追加で認証を要求し、
サイバー攻撃等からのセキュリティを高める要素の1つの事を言います。

## MFAの仕組み
MFAでユーザに求める要素は多くは期限付きのランダムな数列になります。
ログインする際に手間は1つ増えますが、これを実装することにでパスワードをハッキングされても
突破できないですし、一時的な認証要素なので情報を知っている社員が退社してもセキュリティは担保される形となります。退社に関しては権限やアカウントを消してくださいって話なんですけどね、、

設定自体は少し手順が多いですが難しい物ではないので気楽にやっていきましょう!

##

元記事を表示

Amazon AuroraとAmazon Bedrockを統合してRAG化検証

AuroraがBedrockに対応したブログを見て衝撃を受けました。

https://dev.classmethod.jp/articles/amazon-aurora-postgresql-bedrock-ml2/

“`sql
SELECT aws_bedrock.invoke_model (
‘amazon.titan-text-express-v1’,
‘application/json’,
‘application/json’,
‘{“inputText”: “what is orange”}’
);
“`

**何このSQL www**

と思ったのですが、どういうふうに活用するのかいまいちイメージがつかなかったので、実際に検証してみました。

## 準備

このような環境を構築します。詳細な構築方法は[こちら](https://moritalous.pages.dev/75793555a5e1fe2657d0)を参照ください。

![image.png](https://qiita-image-store.s3.ap-nor

元記事を表示

Amazon EC2 プレイスメントグループについて整理してみた

# 背景・目的
AWS Certified Advanced Networking – Specialtyの学習の過程で、プレイスメントグループという概念が登場したのであらためて整理してみたいと思います。

# まとめ
NWのパフォーマンスを向上させるには、下記の方法があります。
– プレイスメントグループ
– 拡張ネットワーキング
– Elastic Fabrick Adapter(EFA)
– プレイスメントグループは下記の特徴があります。

|特徴 |説明 |
|:–|:–|
|概要|相互に依存するEC2インスタンスのグループをプレイスメントグループ内に作成することで、パフォーマンスを向上させることができる。|
|プレイスメント戦略|・クラスタ
・パーティション
・スプレッド|
|料金|プレイスメントグループ単体で発生しない|

プレイスメントグループの戦略ごとの特徴は下記のとおりです。

|戦略|特徴|用途|アベイラビリティゾーン(AZ)|ラック|
|:–|:–|:–|:–|:–|
|クラスタ|同一の低遅延ネットワーク上にインスタンスを配置。ネットワー

元記事を表示

ガンダムSEEDfortune用(発進シーケンス)辞書ファイルを作るためにAmazonLinux2にfotruneコマンドを入てみた

# 背景
年末のある日、機動戦士SEED FREEDOMの公開を記念して、SEEDとSEED DESTINYの発進シーケンスのセリフをLinuxログイン時にランダムで表示させるとかいう、どうでもいいことを思いついてしまった…
その中でfortuneコマンドを使ってランダムにセリフを選択させようと思い、開発環境をAWS上に作った際にAmazonLinux2にfortuneコマンドを入れるので8時間弱苦戦したので、メモメモです。
インフラ屋さんじゃない上に技術経験浅いのが出た個人開発(?)でした。

# 参考文献
今回の記事では下記のサイトを参考にさせていただきました。
[AWS AmazonLinux2 EPELリポジトリ設定](https://qiita.com/vesoccer13/items/2b5aa3f4bf1e1c623384)

# 導入
上記文献を参考にEPTLをインストール後、下記コマンドを実行
“` bash
yum install fortune-mod

# 動作確認
fortune
“`
以上

# なんやかんやいじくりまわした結果の成果物
https:

元記事を表示

OTHERカテゴリの最新記事