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

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

CloudFrontとは

## 勉強前のイメージ
エッジロケーションとかいうのがキーワード
世界規模でコンテンツを配信したいときには候補に挙がるサービス
(実際にどんな機能があるのか、アーキの候補までは浮かばない)

## 結論
世界規模で配信でき、配信元のオリジンサーバ周りではいくつかのアーキ候補がある

### まずエッジロケーションとは
・エッジロケーションというのは一言でいうとキャッシュサーバのこと
・ユーザはまず、このエッジロケーションに対してアクセスし次の順序でコンテンツを取得する
①エッジロケーションにリクエスト対象のコンテンツが存在していればそれを取得しレスポンスとして返す
②エッジロケーションになければ次はエッジロケーションの背後の”リージョン別エッジキャッシュ”にコンテンツを探しに行く。コンテンツがあればそれをレスポンスとして返す
③ ②でもなければリージョン別エッジキャッシュ背後のオリジンサーバにコンテンツを取りに行く

### よく候補となるオリジンサーバ
→これはコンテンツがいつアクセスしても内容が一定の静的なものか、アクセスごとにコンテンツを構成して返す動的なものかで別れる

静的コ

元記事を表示

Playwright PythonをAWS Lambdaで動かす

たまにPlaywrightをLambdaで動かしたくなりますよね。

すでにいろいろな方が挑戦されているようで、簡単に使えるLambdaレイヤーが公開されているようです。

https://developer.mamezou-tech.com/blogs/2024/07/19/lambda-playwright-container-tips/

ただ、そういうことじゃないんです。自分でやることに意味があるんです。なんとか動作しましたので、ご紹介。

## きっかけ

先日投稿したこちらの記事で、LangChainの「AsyncChromiumLoader」を紹介しました。

https://qiita.com/moritalous/items/44c0cff860f7b5697822

これをLambda化したいなぁと思ったのがきっかけです。(そしてBedrock Agentsから呼び出したい)

AsyncChromiumLoaderは内部でPlaywrightが使われているのですが、先ほど解説した「`chromium.launch`」の呼び出し部分のargsを外部から指定する方

元記事を表示

Blue/GreenデプロイでAuroraMySQL3にアップグレードしてみた

# はじめに
Amazon Aurora MySQL 2(MySQL5.7互換)が2024年10月31日にサポートが終了するので、Aurora MySQL 3(MySQL8互換)にバージョンアップしました。
手法は色々あるのですが、Amazon RDS がマネージドサービスとして提供する**Blue/Greenデプロイメント**が良さげでしたので手順を共有します。

# 手順
## 現状のバージョン確認
アプリケーションと同じルートからバージョンを確認します。

“`
$ mysql -h foo-production.cluster-bar.ap-northeast-1.rds.amazonaws.com -u username -ppassword dbname

Server version: 5.7.12 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
“`
MySQL5.7が動いていますね。

“`
> select @@a

元記事を表示

個人開発向け、AWS NATゲートウェイのコストを削減!

## 背景
個人開発をして、3ヶ月程度たった。
売り上げなど特にない中、1ヶ月2万円弱のコストをキープするのはきつい。

![スクリーンショット 2024-09-23 10.44.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634885/2cbf8b83-6bb0-1d79-3fd4-c05c6e138942.png)

まずコストが最も高いElastic Computing Cloudを調べてみると、NatGatewayのコストがほとんどを占めている。

![スクリーンショット 2024-09-23 10.44.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634885/9e282a0b-6e12-d2bc-faeb-70867e66a983.png)

### NATゲートウェイとは?
プライベートサブネット内のリソースがインターネットにアクセスするために必要なもの。
NATゲートウェイって、意外と高

元記事を表示

【AWS】S3+CloudFrontへNuxtアプリケーションをCICDでデプロイ

# はじめに
今回はNuxtのアプリケーションをS3+CloudFrontの構成へデプロイする手順を紹介します。

# 前提
– リポジトリ:GitLab
– フレームワーク:Nuxt3

# 実装手順
## S3構築
1. 下記の設定でS3を作成していきます。

* バケットタイプ > 汎用
* バケット名 > 任意
* オブジェクト所有者 > ACL有効
 ※パブリックへ公開するためにACLの設定を有効化する必要があります。

暗号化はデフォルト暗号化のままで問題ありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3024215/902a4ee8-1994-ad92-da0c-9d3d42fcb51e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3024215/d36fa987-9570-d8fc-826c-65f886a40661.png)

![image.p

元記事を表示

AWS Datapipelineとは

##勉強前イメージ
Kinesis周りのサービスと何が違うんだ・・
違いが全然分からない・・

##結論
ざっくりと以下の内容で理解
・AWS内でのデータの転送・変換を自動化するもの、何か特定の機能を持つサービスではなく、複数のAWSリソース間のデータの橋渡しを定義する連携サービス

例)以下のようにアプリログを毎日保存し、週末にログ分析を実行する流れを自動化できたりする。
アプリケーションサーバ(EC2) → S3に日次保存 → EMRでデータ解析
![AWS-datapipeline-概略図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892426/c2a8a672-11ba-f922-84a5-bfc9ca1f1218.png)

##Kinesis関連のサービスとの違い
結論、実行していること自体はほぼ一緒(リソース間のデータの転送・分析)だが、目的が違い、それぞれの目的に沿ってサービスが設計されている
・Kinesis
「リアルタイムに」データを分析したり転送したりしたい場合にはこっちを選

元記事を表示

【AWS】AWS Well-Architectedについて

# 前回までのあらすじ
第2回目の学習では「AWSのアクセス権」についてまとめました。もしよろしければご覧ください。

https://qiita.com/koutorino/items/d42f57051d60a768974f

# AWS Well-Architectedとは
AWSが提供するクラウドアーキテクチャのベストプラクティスをまとめたフレームワークのことです。
公式サイトによると
>AWS Well-Architected フレームワークは、AWS でシステムを構築する際に行う決定の長所と短所を理解するのに役立ちます。このフレームワークを使用することによって、信頼性が高く、安全で、効率的で、費用対効果が高く、持続可能なシステムを設計して運用するための、アーキテクチャに関するベストプラクティスを学ぶことができます。

今回はこのAWS Well-Architectedについて理解するために記事を書いていきたいと思います。私なりの解釈が入る箇所があるので、間違っているところがあればご教授いただければと思います。

## 6つの柱
### 運用上の優秀性(Operational

元記事を表示

Lambda で Lex Bot のDRAFT バージョンビルド処理を実装する

# はじめに
本記事では、AWS Lambda のスクリプトからLex Bot のビルド処理を実装していきます。

# 環境
– Python:3.12
– Lex:v2

# ゴール
– Lambda 関数を実行し Lex Bot の DRAFT バージョンをビルドする
– ビルド後にBotが使用可能な状態になっている事を確認する

# 前提
– Lexのボットは作成されてる事

# Lambdaの作成

– `get_draft_status`:describe_bot_locale API を使用して、Bot の現在のステータスを取得します。
– `wait_for_build_completion`:ビルドが完了するまで5秒ごとにステータスを確認し、”Built” または “Failed” になるまで待機します。

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lexv2-models/client/describe_bot_locale.html

“`python:l

元記事を表示

SAA合格体験記

## はじめに
AWS Certified Solutions Architect – Associate(SAA)試験にこのたび合格できました。
多忙な日々の中で合格できたため、当時の苦労点や勉強の工夫を伝えられればと思います。

## 試験を受ける前
非機能領域の業務が増えていたものの、背景知識がないまま毎回調べて業務に取り組む状況から脱したかったため。

自分のAWSレベルは、運用保守作業で主要サービスは少し触ったことがある程度でした。
大きめのプロジェクトが並行で走っており、まとまった時間ができるのは基本平日の21時以降(もっと遅いときも多々..)という状況。

## 学習リソース

### 1.参考書(3時間程度)
概要を捉えるために、一読しました。
試験でよく問われる可用性・負荷分散を意識したアーキテクチャ構成について丁寧に解説されていると思います。

– [徹底攻略 AWS認定 ソリューションアーキテクト − アソシエイト教科書](https://www.amazon.co.jp/%E6%A8%A1%E6%93%AC%E5%95%8F%E9%A1%8C%E4%BB%98%

元記事を表示

【IAM】ABACで遊んで、ABACできる操作とできない操作を調べてみた!!

# ABACとは
以下の記事が**とても**わかりやすいです。

https://zenn.dev/jimatomo/articles/f75a60e9673cc9

失礼ですが、抜粋し超雑にまとめます。

> – RBAC(ABACの先輩)はRole-Based Access Controlの略で、ロール(人々のグループ)を中心に権限管理を行う仕組みです。
> – ABACはAttribute-Based Access Controlの略で、属性を中心に権限管理を行う仕組みです。
> – ABACの場合、RBACで付与された大まかな権限に加えて、操作先・操作元の属性値を使って追加の許可・拒否条件を導入できるのです。

**操作先・操作元の属性値を使って追加の許可・拒否条件を導入できる**のです。

すごい!便利じゃん!!

つまり、RBAC、ABACを適切に設定することで、こんな感じの運用ができます。

1. グループAの人はEC2サービスを自由に触って良いですよ~(RBAC)

1. ただし、 “`”Importance”: “High”“` タグのついたEC2は操作できませ

元記事を表示

AWS Lambdaのタイムアウトを検知する (Terraform)

## 概要
– `AWS Lambda` のタイムアウトを検知する実装を解説します
– 実装の `Terraform` コードサンプルを提供します
– `CloudWatchLogs MetricFilter` におけるハックをお伝えします

## AWS Lambdaのタイムアウトを検知する実装
### 想定ケース
以下のように、EventBridge経由でLabmdaを実行するケースを考えます

![architecture](https://raw.githubusercontent.com/RyuyaIshibashi/great-chatgpt-quotes-bot/master/chat_architecture.jpg)

引用:

https://qiita.com/rubita/items/966bcbfd58c6e9368556

### Lambdaの仕様
Lambdaは以下の仕様を持っています
– タイムアウト設定のデフォルト値は 3 秒です
– 最大値の 900 秒 (15 分) まで 1 秒単位で調整できます
– タイムアウトエラーとなった場合、2回までリト

元記事を表示

EC2 instance をインターネットに繋ぐ

AWS の EC2 instance からインターネットに繋ぐのにハマったのでメモ。

# 概要
AWS の EC2 instance からインターネットに繋ぎたい。以下の要請がある。
– 複数のインスタンスを立てるかもしれない。その時のためになるべく少ない個数の public IPv4 アドレスを利用したい
– Web サービスは立てないので、EC2 instance に public IPv4 アドレスが紐づいている必要はない
– インターネットに繋ぐには何らかの形で public IPv4 アドレスを 1 個以上要する

# 完成図
VPC の中に以下のようなものができる。
![スクリーンショット 2024-09-22 17.46.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/67404/632df6cf-bbf7-55fe-e9e3-93cf38caf651.png)
図からわかりにくいが、`koba-nat-gateway` が `subnet-for-internet-access`

元記事を表示

CloudFormationを使ってWordPress環境を構築

## はじめに
2020年のハンズオンを使用してCloudFormationを使ってWebサイト環境を構築しました。2020年作成だったためテンプレートファイルを書き加える必要があったり、変更点がいくつかあったりしたので改修しました。
また公式ではCloud9を使用してますが、2024年7月から新規でCloud9の使用ができなくなっているため、今回はCloudShellを使用しております。
CloudFormationを触ってみたい方はぜひ試してみてください。

## 記事の対象者
– IaCに興味のある方
– CloudFormationを触ってみたい方

## 作成する環境
![IMG_1433.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812406/3200e849-85f9-3efd-6959-03b42fb153fc.jpeg)

## 手順
– VPCの作成
– EC2の作成
– RDSの作成
– ELBの作成

## テンプレートファイル
以下のリンクからテンプレートファイルを事前

元記事を表示

AWS:Webサーバ構築

# Webサーバの構築

## 知識
EC2(elastic compute cloud):仮想サーバ

インスタンス:EC2からたてられたサーバ

AMI(amazon machine image)あみ:
インスタンス軌道に必要な情報が入ったOSのイメージ
AMI→インスタンス
AMIがあるため、自分でOSをいれなくていい

インスタンスタイプ:サーバーのスペック
m5.xlarge
m:インスタンスファミリー
5:インスタンス世代
xlarge:インスタンスサイズ

ストレージ:
– EBS(elastick block store)
永続的に保存
– インスタンスストア
一時的なストレージ
無料

## 操作 EC2インスタンスの設置
1. AMIの選択
1. インスタンスタイプ
1. ネットワークの選択
1. ストレージの追加
1. セキュリティグループの設定
1. SSHキーペアの設定
→後でダウンロードしなおすことはできないのでなくさない!

ネットワーク
自動割り当てパブリックIP:
グローバルIPアドレスをつけるかどうか

キャパシティ予約:
事前にリソースを確保

元記事を表示

CloudFormationでコンソールからのリソースインポートに失敗した

# 概要
CloudFormation(以下CFn)で管理しているAurora MySQLを[ブルー/グリーンデプロイ](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments-overview.html)にて手動でアップグレードを実施しました。
再びCFn管理にする際、コンソールからリソースをインポートしようとしたところ問題が発生したため、その問題の内容と実施したことを記載します。

:::note warn
この記事は2024/9/18の内容であり、現在問題は解消している可能性があります。
:::

# 問題
新しいAurora MySQLバージョンでクラスターとインスタンスをCFn管理にする際には下記ドキュメントを参考にコンソールよりリソースのインポートを実行しました。

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/resource-import-resolve-d

元記事を表示

AWS Batchのジョブキューとジョブスケジューリングを整理した

# 背景・目的
以前、下記の記事で、AWS Batchの基本的な情報とコンピューティング環境について整理しました。

https://qiita.com/zumax/items/f9b27b5e69cba66c9a81

https://qiita.com/zumax/items/4d426da81e38e7f8a040

今回は、ジョブキューについて整理します。

# まとめ
下記に特徴を整理します。

|特徴|説明|
|:–|:–|
| ジョブキューの役割|ジョブは、ジョブキューに送信され、コンピューティング環境で実行するようスケジュールされるまで保存される

ジョブは、ジョブキューに送信され、コンピューティング環境で実行するようスケジュールされるまで保存される

ジョブキューには優先度がある。スケジューラーはこれを使用して、どのキューのどのジョブを最初に実行すべきか判断する|
|ジョブキューパラメータ|下記の4つの基本コンポーネントに分かれる
・name
・state
・priority
・compute environment

元記事を表示

EC2インスタンスにSSHでログインできない(Tera Term)

# EC2インスタンスにログインできない
接続はできるのに、認証でエラーがでていた

## 解決策
Tera Termのバージョンを5以上にした

## 原因
Tera Termのバージョン4ぐらいは rsa-sha2-256 および rsa-sha2-512 プロトコルがサポートされていなかったぽい

以下のサイトを参考にした

【EC2】Amazon Linux 2023にTeratermで接続できない?

元記事を表示

個人開発サービス(Q)のインフラ(AWS)アーキテクチャ

## 概要
2024年春から個人でサービス(Q)の開発を行っています。本ページではサービス(Q)のインフラ(AWS)のアーキテクチャを紹介します。

*サービス自体は非公開としています。

## アーキテクチャ図
サービス(Q)のインフラ(AWS)についてアーキテクチャは下図のようになっています。

![architecture-aws.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3628782/b7a48fee-2df8-0cbe-aa39-77a0cb1e1ecc.png)
サービス(Q)のインフラ(AWS)アーキテクチャ図

## ふりかえり
本サービスはまだ開発の初期段階にあります。
本ページで紹介したアーキテクチャの中で一部はTBDとなっている箇所もありますが、
今後も随時アップデートをしたいと考えています。

元記事を表示

AWS CDKでメタトランザクション用サーバーレスAPIを実装してみた!

![0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1299653/77db81af-f2c1-ea1a-4f9c-da7580b24d7c.png)

## はじめに

2024 年 9 月 21 日〜22 日にかけて開催されている **ServerlessDays Tokyo 2024** に参加して触発されてこの記事を執筆しました!!

https://serverless.connpass.com/event/325659/

**サーバーレスこそ至高!!!!**

そんな思いが芽生えてきました・・!!

今回は AWS と Web3 両方の技術スタックにまたがる記事となっています!!

ぜひ最後まで読んでいってください!!

## 関連用語解説

### AWS CDK

AWS CDK は、 **CloudFormation** を 1 段階抽象化させた IasC のツールです!!

https://aws.amazon.com/jp/cdk/

https://aws.amazon.c

元記事を表示

【AWS】AWSのアクセス権について

# 前回までのあらすじ
第1回目の学習ではクラウドサービスとはなんなのかをAWSが公式で紹介しているサイトについてまとめました。今回からは実際にAWSの中身を詳しくみていこうと思います。

https://qiita.com/koutorino/items/bca3517a560bd7876778

# IAMについて
IAMとはAWSにおける認証機能であり、セキュリティー面を考慮する上で必要不可欠なものになります。
AWS公式サイトによると以下のように説明があります。
>AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全に管理するためのウェブサービスです。IAM を使用すると、ユーザーがアクセスできる AWS のリソースを制御するアクセス許可を管理できます。IAM を使用して、誰を認証 (サインイン) し、誰にリソースの使用を認可する (アクセス許可を付与する) かを制御します。IAM は、AWS アカウント の認証と認可を制御するために必要なインフラストラクチャを提供します。

簡単に言えば、特定の個人に対してA

元記事を表示

OTHERカテゴリの最新記事