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

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

AWSのデプロイサービスを使いこなそう!効率的なアプリケーションデプロイの実現方法

# AWSのデプロイサービスを使いこなそう!効率的なアプリケーションデプロイの実現方法

こんにちは!インフラ寄りの業務に携わっている関係でアプリ周りの理解が乏しいことから、AWSのデプロイサービスについて調べたものをまとめなおしてみました。

## なぜCI/CDサービスを使うべきなのか

一般的な話題として、手動デプロイ運用に対する辛さがあるように見受けられました。例えば、チーム内でデプロイ手順の認識違いがあったり、本番作業のデプロイ時にミスをしたり…。そういったツライ経験は、CI/CDサービスを導入すると、すっきり改善できそうです。どのように改善できるかという観点では、具体的には以下のようなメリットがあります。

**開発効率が劇的に向上**
– 面倒なデプロイ作業が自動化され、コードを書くことに集中できる
– テストも自動化されるので、早期にバグを発見できる
– テスト環境だけでなく本番環境のデプロイ時でもミスの心配が少ない

**デプロイの信頼性が格段にアップ**
– 手作業によるミスがなくなる
– いつも同じ手順でデプロイされるので安心
– 問題が起きてもすぐにロールバ

元記事を表示

クラウド運用の強化:CloudWatchの「HealthyHostCount」とEventBridgeを使ったEC2障害検知システムの作り方

## はじめに
AWSインフラストラクチャを運用する上で、EC2インスタンスの状態を継続的に監視することは非常に重要です。

特に、ターゲットグループ内に複数のEC2インスタンスが存在する場合、すべてのインスタンスが正常に動作していることを確認する必要があります。

本記事では、ターゲットグループ内の2台のEC2インスタンスでApacheサービスが停止したことを検知し、EventBridgeをトリガーする方法について解説します。

## 知識整理
ターゲットグループ内のEC2インスタンスの状態を監視するためには、以下のAWSサービスを活用します。

:::note
**CloudWatch アラーム:**
EC2インスタンスのヘルス状態を監視し、特定のメトリクスが閾値を下回った際にアラームを発報します。**具体的には、ALB (Application Load Balancer) のターゲットグループに関連するメトリクスである HealthyHostCountを使用します。**

**EventBridge:**
CloudWatchアラームの状態変更を監視し、アラームが発火したと

元記事を表示

VirtualBoxでエクスポートしたイメージがAWSへインポート出来ない件

# 概要
VirtualBoxでエクスポートした.ova ファイルを[AWSへVM Import](https://docs.aws.amazon.com/ja_jp/vm-import/latest/userguide/what-is-vmimport.html)すると、”ClientError: Disk validation failed [Unsupported specified file format]”となり失敗する。

# 環境
ホストOS: Windows 10
VirtualBox: ver. 7.1.4 (2024/10時点の最新)
ゲストOS: AlmaLinux 9

# 結果
以下の手順でAWSへインポートし、AMIとして利用可能になった。
1. VirtualBoxで仮想マシンをVirtualizatoin Format 1.0形式で.ovaエクスポート
2. VMware Workstation Proで.ovaファイルをインポート
3. VMwareのディスクファイル(.vmdk)を”aws ec2 import-image”コマンドでAMIとしてイン

元記事を表示

ChatGPT 4oと対話しながらwebサービスを個人開発する話

# これまで
前回の記事でChatGPTと対話しながらフロントエンドとバックエンドの土台となるコードを作成しました。今回は、AWSにサーバーレスの環境を構築していきます。

[前回の記事]

https://qiita.com/travelclass0606/items/fceb85872620a418e8ab

# やること
Route53でドメイン取得

Cloudfrontで配信

S3でフロントエンドをホスティング

APIGatewayを介してLambda関数を実行

DyanmoDBでデータ管理

# Route53/CloudFront/S3の構築
以下の記事を見ながら環境を構築しました。
記事通り、進めて特に問題なく完了。

https://qiita.com/ushi_osushi/items/a32d7b710567c2313faa

# Lambda関数/API Gatewayの構築
まずは、Lambda関数を作成していきます。

AWSのLambda関数へ行き「関数の作成」をクリックします。
![スクリーンショット 2024-10-25 20.05.05

元記事を表示

【検証】もしかしてClaude 3.5 Sonnetの出力形式変わった?

こんにちは、ふくちと申します。

2024年10月23日にClaudeのアップデートがありましたね!

https://www.anthropic.com/news/3-5-models-and-computer-use

この中で、**Claude 3.5 Sonnet new**が新しく公開されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3616210/a3b2fc8f-e271-8f32-6bfe-d9897c6c6821.png)

旧Claude 3.5 Sonnetよりもコーディング性能がはるかに向上しているようで、更なる性能向上が期待されています。

ただ、この新Sonnetに対して、私は少し違和感を抱きました。

# 個人的に違和感を抱いたきっかけ
Claudeのプレスリリースを日本語に翻訳してもらおうと思い、いつものように「翻訳して」とお願いしました。すると…

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

元記事を表示

【見落とし厳禁!】知らないとヤバいセキュリティグループとネットワークACL

## はじめに

こんにちは、uiroleです!
今回は、AWSのセキュリティには欠かせない、セキュリティグループとネットワークACLについて解説していきます。

AWS SCS試験でも、セキュリティグループとネットワークACLどちらかを選択する問題が出てくることもあるので、しっかり押さえておきましょう!

### 【対象者】

この記事は、以下のような方を対象としています。
– セキュリティグループやネットワークACLの違いが分かりにくいと感じている人
– AWS環境でネットワークのセキュリティ設定をしっかり行いたいと考えている初心者・中級者
– AWSのアクセス制御のベストプラクティスを学びたいインフラエンジニア

### 【前提】

この記事では、以下の前提をもとに進めていきます。
– VPCやEC2インスタンスなどの基本的な操作に慣れていること
– 基本的なネットワークの概念(サブネットやポート番号など)を理解していること

### 【この記事を読んで解決すること】

– **セキュリティグループとネットワークACLの違い**が分かり、それぞれの役割を理解できる
– 適切な設定

元記事を表示

EventBridge Schedulerを使ってECSタスクを自動で起動・停止してみよう!

## 概要
コストカットの観点で例えば平日のみECSを起動させたい、などのユースケースがあるかと思います
今回はEventBridge Schedulerを使って行う方法についてCloudFormationのテンプレートを交えて解説します

## 前提
– ECS Cluster及びECSタスクを作成済み

## 実装
以下がEventBridge Scheduler用のテンプレートです

“`yaml
# 本テンプレートの使用方法
# ECS Service の複数指定は不可のため、複数 Service のスケジュール設定を
# 行いたい場合は Service 単位で Stack をデプロイすること

AWSTemplateFormatVersion: 2010-09-09
Description: “EventBridge Scheduler Stack For ECS Auto Start And Stop”

# ————————————-
# Metadata
# ——————————-

元記事を表示

今日から始めるセキュリティシフトレフト on AWS ④AWS CodeBuildとAWS Security Hubで効率良く脆弱性管理をする

# はじめに
セキュリティシフトレフト記事第四弾。

前回は、アプリケーションのSASTツールをどのようにAWS CodeBuild上で使うのが良いのかを検証した。

https://qiita.com/neruneruo/items/7021a808b9513bcb8f87

今回は、第二回の記事の内容に戻り、Trivyによって検出した脆弱性に関連した情報をAWS Security Hubを送り、問題管理を行えるようにしていく。AWS CodeBuildのバッチビルドの構成はそのままに、Trivyを動作させるビルド部分のみを変更するため、第二回の記事の内容を参照しておいていただきたい。

https://qiita.com/neruneruo/items/83ed70aa286ec511f900

# 脆弱性のあるDockerfileの準備
今回は、あえて脆弱性を仕込んだDockerfileを作って検知までしてみたいため、以下のようなDockerfileを準備する。Dockerfile内でnginx.confを差し替えていないので、実際の運用ができるものではないが、サンプルのため細か

元記事を表示

【超雑】ALB経由のみのアクセスを許可するEC2インスタンスの構築をした時のメモ

メモ程度に書きました
※https通信に対応するための手順は省略してます

:::message alert
本手順セキュリティや本番環境での正常な動作を保証するものではないことをご了承ください。
:::

## 登場人物

– ALB (ELBの中でApplication用のロードバランサ)
– セキュリティグループ(ALB向け)
– ターゲットグループ
– リスナー
– ルール
– EC2
– セキュリティグループ(EC2向け)

## それぞれの説明

### ALB

– セキュリティグループに関して、一般ユーザーからのhttp(ポート80) or https(ポート443)のリクエストを受け付けるため、どちらもセキュリティグループで許可する。
– (開発時は、リクエスト元のIPを絞り、想定外のアクセスを防ぐために、IPアドレスはマイIPを設定する)
– ターゲットグループは、EC2が存在するのサブネットを設定
– EC2のアプリケーションのポートがずれている場合、
– リスナーに関して、一般ユーザーからのアクセスであるh

元記事を表示

「AWS Hands-on for Beginners AWS Managed AI/ML サービス はじめの一歩」をAWS CLIでやってみる

https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-AIML-2022-reg-event.html?trk=aws_introduction_page

上記、「AWS Hands-on for Beginners AWS Managed AI/ML サービス はじめの一歩」をAWS CLIでやってみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3297641/93a86743-3f46-a463-05aa-b90e2f9661ae.png)
ハンズオンから引用

:::note alert
Amazon Forecastは下記画像の通り、新規利用はできませんでした。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3297641/a0aebccb-915d-0238-d518-ceb71b05e04

元記事を表示

[Python] SQS拡張クライアントライブラリ

SQS拡張クライアントライブラリ

SQSのペイロード256KB制限を超えたいときに利用できる拡張ライブラリ、最近Pythonでもライブラリが公開された。

S3を経由してメッセージを伝えているが、それらを隠蔽しているだけなので自作したほうがいいかもしれない

公式のチュートリアル
“`python
import boto3
import sqs_extended_client

sqs_extended_client = boto3.client(“sqs”, region_name=”us-east-1″)
sqs_extended_client.large_payload_support = “S3_BUCKET_NAME”
sqs_extended_client.use_legacy_attribute = False

“`
これでもいいが、分かりにくいのとLinterに引っかかるためboto3.Sessionクラスを継承したSQSExtendedClientSessionを使うほうが好き。

“`python
from sqs_extended_clie

元記事を表示

AWS IaC環境(Terraform版)構築

# 前提
AWS IaCをTerraformで実行する環境を作るための手順です。
## 利用ソフトウェア
– AWS CLI
– Git
– Terraform
– VSCode
::: note warn
VSCodeのみ既にインストールしている前提で進めます。
VSCodeのインストールは[以前投稿した記事](https://qiita.com/furu38/items/6776acba6621012ee475)を参考ください。
:::
# AWS CLIのインストール

  1. コマンドプロンプトを開き、以下のコマンドを実行する。

    “`
    msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
    “`

  2. インストーラーが起動するため、指示に従いインストールを実施する。
  3. インストール完了後、コマンドプロンプトで以下のコマンドを実行し、バージョンが表示されることを確認する。

    “`
    aws –version
    “`

  4. AWS Credentialの設定をする
元記事を表示

Application Load Balancer入門:AWS ALBで複数EC2インスタンスを負荷分散する手順

## はじめに
この記事では、AWSのEC2インスタンスを起動し、Application Load Balancer (ALB)を設定する手順について説明します。

ALBを使用することで、複数のEC2インスタンスにトラフィックを分散させ、可用性を高めることができます。

また、ヘルスチェック機能を利用することで、インスタンスの稼働状況を監視し、異常時には自動的にトラフィックを切り替えることが可能です。

この記事を通じて、基礎的な知識を整理し、忘れがちな自分への備忘録として記録を残していきます。

## 知識整理
今回のアーキテクチャを実装する上で、以下の知識が必要です。

:::note
**EC2 (Elastic Compute Cloud):**
AWSが提供する仮想サーバー。必要に応じてスケールアウト/スケールインが可能。

**ALB (Application Load Balancer):**
トラフィックを複数のEC2インスタンスに分散するためのサービス。HTTP/HTTPSプロトコルに基づくリクエストのルーティングを行う。

**ヘルスチェック:** ALBがタ

元記事を表示

AWS サクッと EventBridge のハンズオン。EventBridge が動かない、、、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680230/f3090d5c-cb9c-08ca-33f2-a9b91059293d.png)

# はじめに
今回は社内の勉強会向けにハンズオン資料です。

毎週木曜日にAWS勉強会をしているのですが、前々回の話題に「S3 -> EventBridge -> SageMaker」が有り、EventBridge と SageMaker を使ったハンズオンを企画する事にしました。
ただ、SageMaker はサクッと 30 分の勉強会では、できそうにないので別の勉強会にしたいと思います。

今回は、AWS 初心者向けで「S3 -> EventBridge -> SNS」のサービスでハンズオンを行います。
1. S3 : バケット作成
1. EventBridge : S3のファイルアップロードをキャッチして、SNSへ通知
1. SNS : アップロードされたファイルの情報をメールで通知

# 事前準備
– ハンズオン参加者は、AWS 勉強会

元記事を表示

【Next.js App Router&Cognito】Google認証を独自UIで作ってみた【日本語化対応】

# はじめに
Next.jsとCognitoを使ったGoogle認証を実装する際、デフォルトのCognitoのUIでは認証画面が英語で表示されるという課題がありました。
また、日本語化の解決策としてAWS Amplifyを使う方法が紹介されていますが、最新のバージョンでは対応していない可能性がありました。
本記事では、これらの課題を踏まえ、NextAuth.jsとAWS SDKを用いた認証の実装方法を紹介します。

↓デフォルトだとこういう画像が表示されます
![スクリーンショット 2024-10-26 7.01.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840696/ffd89c1f-7216-e694-ce6d-cc9e4087d7fb.png)

# 目次
– [はじめに](#はじめに)
– [サンプルリポジトリ](#サンプルリポジトリ)
– [前提事項](#前提事項)
– [Cognito設定](#cognito設定)
– [環境構築変数確認](#環境構築変数確認)
– [フロントエン

元記事を表示

物件カードエラー対処メモ

# amplify

| Command | Error | Solution |
|:-:|:-:|:-:|
| amplify pull –appId d2bv4pi66mnlc8 –envName develop | Amplify appId mismatch. Resolution: You are currently working in the amplify project with Id dmba37fhdrvrw | https://qiita.com/mmkpp/items/cd281fa3abcdbb787fd5 |
| | | |
| | | |

# sam deploy

| Command | Error | Solution |
|:-:|:-:|:-:|
| aws ecr get-login-password –region ap-northeast-1 | An error occurred (UnrecognizedClientException) when calling the GetAuthorizat

元記事を表示

AWSのインフラをコード化:Terraformで簡単にEC2インスタンスを構築する方法

## はじめに
Terraformは、インフラストラクチャをコードとして管理できるツールで、AWSやAzureなど複数のクラウドプロバイダで利用されています。

この記事では、Terraformを使って米国東部リージョン(“us-east-2“)に最小限の構成でEC2インスタンスを構築する手順について説明します。

:::note warn
Terraformのインストールが完了していることを前提に進めます。
:::

## Terraformとは

Terraformは、インフラストラクチャをコード(Infrastructure as Code, IaC)として管理するためのツールです。

![スクリーンショット 2024-10-26 8.26.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/a1531ea9-3a09-2a88-6aae-c6ee8c04baae.png)
引用画像:https://sdpf.ntt.com/services/docs/fic/tutorial

元記事を表示

上級者向け:Amazon Bedrockを使用して独自の生成系AIを作成する方法

## はじめに
近年、生成系AIの発展により、さまざまなアプリケーションでの活用が進んでいます。Amazon Bedrockは、開発者がこれらのAIモデルを容易に利用できるプラットフォームです。

私自身、職場では生成系AIの使用が基本的に禁止されているため、主にインターネット上の文献などを参考にしながら、日々の手順書作成や障害対応を行っています。

本記事では、Amazon Bedrockを使用して生成系AIを作成する手順を詳しく説明します。

## 知識整理
### Amazon Bedrock
Amazon Bedrockは、さまざまな基盤モデル(FM)にアクセスできるサービスです。

![スクリーンショット 2024-10-25 23.49.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/000e3b01-a867-096c-5081-756cc89eec2b.png)
引用画像:https://businessnetwork.jp/article/16662/

これにより

元記事を表示

東大の「コードで学ぶAWS入門」を読んで理解したことのまとめ#3

## 2章の「クラウド概論」を理解する#3

#### 「クラウド」が提供する3つのサービス形態その2

##### Platform as a Service (PaaS)とInfrastructure as a Service (IaaS)を理解する。
前回のSaaSに引き続き、クラウドのサービス形態の残り2つを理解していく。どうやらこの2つを別々で理解するのは難しそうなので、2つを比較しながら進めていく

##### 「分かりそう」で「分からない」でも「分かった」気になれるIT用語時点によると、、、
IaaS はサーバや回線などのいわゆる「インフラ」に分類される部分を、インターネット越しに使えるようにしてくれるサービス
PaaS はサーバやOS、データベースなどのいわゆる「プラットフォーム」と呼ばれる部分を、インターネット越しに使えるようにしてくれるサービス

ん?サーバーって結局どっちなの?

#### ChatGPTに聞いてみた

##### サーバはIaaSとPaaSどちらですか?

🗒️ Answer
サーバは主にIaaS(Infra

【AWS】APIコールで疎通できていてもECSタスクが自動起動されない理由

# 概要
EC2 on ECSで構築したアプリについて、APIコール(エンドポイントへのコール)はできていたのに、デプロイ時や再起動時のECSタスク起動では失敗する、というケースがありました。

こちらの原因と解決方法を紹介します。

# 前提
・EC2 on ECSを利用。EC2はプライベートサブネットに配置
・サブネットは`ap-northeast-1a`、`ap-northeast-1c`の二つのAZに配置
・AutoscalingGroupでは、上記どちらのサブネットも選択している状態
・`ap-northeast-1a`ではNAT Gatewayを介してインターネット接続ができる状態

# 原因
前提を見ると原因は察しがつきやすいと思いますが、今回の原因は、

・EC2インスタンスが`ap-northeast-1c`で起動してしまうことがあったため

でした。

最初これに気づかず、`ap-northeast-1a`で起動したECSタスクでは疎通確認ができていたので、問題なしと勘違いしてしまいました。

ただし、デプロイ作業などでECSタスクを一度落とした際に、`ap-nor