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

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

Terraform初心者の備忘録 〜IaCを使うときに学んだあれやこれ〜

## はじめに
グループワークにおいてawsを使う必要があったけど金かからんようにするためだけに毎回GUI操作をログインしてEC2起動して停止して、、、ってやるの面倒だったからIaC使ってみたって話。できたこと、できなかったこともまとめる。

## 今回の課題
– apacheからの動画ストリーミングと動画アップロードを受け取り、保存するサーバの構築
– Go言語でのデータベース操作のAPIサーバの構築
– MySQLデータベースのサーバ構築

### そもそもIaCってなんぞや?
聞いたことあっても自信を持ってこれ!!って説明できなかったからこの際にしっかりと。

参考:[RedHat IaC (Infrastructure as Code) とは](https://www.redhat.com/ja/topics/automation/what-is-infrastructure-as-code-iac)

**IaC** : Infrastructure as a Codeの略

IaC によるインフラストラクチャのプロビジョニングを自動化することで、開発者は、アプリケーションを

元記事を表示

AWSのストレージサービスについて

# きっかけ
AWSのストレージサービスといえばS3の印象が強かったですが資格勉強を進めていくうちに他にも様々なストレージサービスがあることを知りました。
Amazon E〇Sのような名称のものが多くごっちゃになってしまうことがあるので今回はそれを整理するために作成しました。

## 目次

以下について(特にS3,EBS)まとめています。

・Amazon **S3**:**S**imple **S**torage **S**ervice
・Amazon **EBS**:**E**lastic **B**lock **S**tore
・Amazon **EFS**:**E**lastic **F**ile **S**ystem
・Amazon FSx for Windows File Server
・AWS Backup

## 詳細

### Amazon S3(以下「S3」と表記)

完全マネージド型のオブジェクトストレージ

**特徴**
・ストレージ容量が無制限であり、残りの容量の確保や調達を気にする必要がありません。

・耐久性が非常に高いです。選

元記事を表示

portfoward設定をスクリプト化する

# 作った背景

– 開発エンジニアがRDSにportfowardingする環境が増えた
– SSH接続はセキュリティ上リスクが高いので今後やめていきたい
– デプロイされたEC2インスタンスのインスタンスIDがコロコロ変わるので調査に一手間がかかりそう
– RDSのエンドポイントの入力に手間がかかる

# 前提条件

1. クレデンシャルキーは各自で設定しておくこと保存すること

2. スクリプト使用前に権限を変更しておくこと

“`jsx
chmod +x portfowarding-rds-instance.sh
chmod +x portfowarding-rds-cluster.sh
chmod +x portfowarding.sh
“`

# スクリプト(RDSクラスター版)

– 前提としてリージョンは固定しています。 ap-northeast-1
– 前提としてRDSクラスターの環境にのみ使います。
– プロファイル名を読み込み、踏み台となるEC2インスタンス名、RDSクラスター名を参照する。

“`portfowarding-rds-cluster.sh
#!

元記事を表示

DynamoDBストリームって何?

# はじめに
DynamoDBのストリームについて学ぶ機会があったので、備忘録として記事を書きます。

# DynamoDBストリームとは
DynamoDBストリームとは、DynamoDBの機能の一つで、**テーブルのデータ変更(アイテムの作成、更新、削除)をリアルタイムにキャプチャし、それに基づく処理をトリガーするためのものです**。
DynamoDBストリームを有効にすると、テーブル内のアイテムに対する変更がストリームに記録されます。これにより、変更の内容を順次取得して、様々な用途に利用することができます。
「Stream」の「流れ」という意味の通り、**テーブル内のデータ変更(作成、更新、削除)の連続的な流れをキャプチャし、保存する機能**ということです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2613586/0645c6f1-66b3-381d-f771-6da345c11f69.png)

https://docs.aws.amazon.com/ja_jp/amazo

元記事を表示

CodePipeline V2の機能をCDK Pipelinesで対応させてみた

## はじめに
2024/02/09のアップデートで、CodePipelineで、追加のパイプライントリガーフィルターに対応しました。
[CodePipeline が追加のトリガーフィルターと新しい実行モードのサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2024/02/codepipeline-trigger-filters-execution-modes/)

本機能を利用することで、特定ブランチやリポジトリ内の特定ファイルなど、指定したイベントをトリガーとしてCodePipelineを起動できるようになりました。
ですが、CDK Pipelinesで作ったパイプラインにV2を利用しようとすると、工夫が必要になります。
そこで今回はCDK Pipelines+CodePipeline V2を実現させ、その上で新機能を試してみたいと思います。

## 条件

– CodePipeline V2であること
– 以下のソースであること
– GitHub.com
– GitHub Enterprise Se

元記事を表示

AWS Cost and Usage Reports(CUR)を作成してみた

# はじめに

みなさんこんにちは!みなさんはAWS Cost and Usage Reports(以降はCURと記載します)をご存知でしょうか。

その名の通り、AWSのコストと使用状況に関する情報が出力されたレポートです。AthenaやQuickSightと連携することで、データの分析や可視化が可能となっております。今回はマネジメントコンソールからCURを作成する方法についてご紹介します。

# CURとは

AWS公式が提供するドキュメントによると、CURについて以下の記載があります。
> AWS コストと使用状況レポート (AWS CUR) には、利用可能な最も包括的なコストと使用状況のデータが含まれています。コストと使用状況レポートを使用して、所有している Amazon Simple Storage Service (Amazon S3) バケットに AWS 請求レポートを発行してもらうことができます。
> (中略)
> Microsoft Excel や Apache OpenOffice Calc などのスプレッドシートソフトウェアを使用してレポートを表示することも、Am

元記事を表示

ECS タスク定義ファミリーの古いリビジョンを削除

# issue
* タスク定義のリビジョンが溜まりすぎている

# 対策
* ライフサイクルがないようでまたもやLambda出動

# Lambda
“`python:lambda_handler Python3.12
import json
import time
import boto3

def list_all_task_definitions(ecs_client):
paginator = ecs_client.get_paginator(‘list_task_definitions’)
task_definitions = []

for page in paginator.paginate(status=’ACTIVE’):
task_definitions.extend(page[‘taskDefinitionArns’])

return task_definitions

def list_task_definition_revisions(ecs_client, task_definition_family)

元記事を表示

【AWS】ECR に Docker Image をプッシュするとき認証エラーが発生したら

## 概要

`Amazon ECR` に `Docker Image` をプッシュするとき、
以下のような認証エラーが発生しました。

“`
denied: Your authorization token has expired. Reauthenticate and try again.
“`

この記事では、このエラーの原因と対処法について説明します。

## 原因

このエラーは、`Amazon ECR` への認証トークンが有効期限切れになっているために発生します。`AWS CLI` を使用して取得する認証トークンは、12時間の有効期限があります。長時間セッションを開いたままにしていると、このトークンが期限切れになり、`ECR` にアクセスできなくなります。

## 対処法

認証トークンを再取得して、`Docker` に再ログインすることでこの問題を解決できます。以下の手順を実行します。

1. 認証トークンの再取得

`AWS CLI` を使用して、新しい認証トークンを取得します。

“`
aws ecr get-login-password –region a

元記事を表示

SSM用エンドポイント費用を節約したい2

“`
AWSTemplateFormatVersion: ‘2010-09-09’
Description: AWS CloudFormation template to create VPC, subnets,sg.
Resources:
# VPC
MyVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
– Key: Name
Value: MyVPC

# Subnet
MyPrivateSubnet:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: 10.0.1.0/24
VpcId: !Ref MyVPC
MapPublicIpOnLaunch: false
Tags:

元記事を表示

Amazon OpenSearch ServiceをRAG用のナレッジベースとして整える

OpenSearchの最近のアップデートで、RAGに使えそうな機能が続々と追加されています。

* Hybrid search(2.11~) 

https://opensearch.org/docs/latest/search-plugins/hybrid-search/

* Reranking(2.12~)

https://opensearch.org/docs/latest/search-plugins/search-relevance/reranking-search-results/

* Text chunking(2.13~)

https://opensearch.org/docs/latest/search-plugins/text-chunking/

全部使ったら、最強のナレッジベースができるかもと思いまして、試してみました!

:::note
「ロングコンテキスト対応 自動チャンク分割 ハイブリッド&リランク検索」ナレッジベースができました
:::

## Amazon OpenSearch Serviceとは

Amazon OpenSearch Serv

元記事を表示

本番環境で、エラーが発生した時の修正フロー

# はじめてのデプロイ
早速エラーが出て苦戦したので、
エラーを修正する手順をまとめておきたいと思います。

# 修正フロー
![スクリーンショット 2024-06-06 21.35.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3782860/ce1d77ee-5b43-db8b-dacc-6bed3b6dc024.png)
上記のエラー画面が発生、この画面の場合Railsのエラーの可能性が高いため以下のコマンドを実行しRailsのログを確認します。

“`
[ec2-user@ip-172-31-18-108 go_out_planning]$ $ sudo tail -f log/production.log
“`

ログなどでエラーの原因を特定したら、該当の箇所を修正します。
その後、Cloud9のターミナルからGitHubにpushします

“`
ec2-user:~/environment/アプリ名 (main) $ git add .
ec2-user:~/environm

元記事を表示

AWS上にステージング環境を構築する(備忘録)

# はじめに
## この記事について
社内で対応したステージング環境構築の備忘録です。(もちろん重要な部分は諸々ぼかしています)
自分用の備忘録かつ、同じような作業を一からやる初学者の方に作業イメージを持ってもらうために作成しています。
(細かい部分は環境によって変わるため、あくまで流れだけでも理解していただけると幸いです)
※実装に関わる部分やデプロイなどは含めていません。

## 対象者
自分と同じAWS初学者の方向け

# 今回のゴール
ざっくり下記画像のような構成で作りたい。
本来はS3を利用する画像のホスティングをServer内の静的なファイルホスティングに置き換える、
certbot(Let’s Encrypt)を利用してSSL証明書を発行しhttpsで接続できるようにする。
などのステージング向けの個別処理も行う。
![構成ず.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303906/77849d12-0119-ef13-fd3b-4a92c4de5d13.png)

#

元記事を表示

AWS Well-Architected アーキテクチャの持続可能性を分析する

## はじめに
Well-Architected アーキテクチャのベストプラクティスを簡潔にまとめてみました。全体像を整理する過程で、持続可能性を実現するためには、効率の高いサービスの選択、リソースの最適化を行う事が重要です。とはいえ、有効なツールを知っているのと知らないのとでは、随分、対応が変わってくるのではないでしょうか?そこで、今回は、AWSブログを用いて、持続可能性を実現する方法を模索してみました。

## 目次
1. [はじめに](#はじめに)
9. [公式ブログで理解する](#公式ブログで理解する)
3. [フレームワークで要件定義を行う](#フレームワークで要件定義を行う)
4. [信頼性](#信頼性)
5. [セキュリティ](#セキュリティ)
6. [パフォーマンス効率](#パフォーマンス効率)
7. [コスト最適化](#コスト最適化)
8. [持続可能性](#持続可能性)

## 公式ブログで理解する
### 信頼性(Reliability)
運用監視を行うことで、信頼性を維持することが出来ます。
https://aws.amazon.com/jp/blogs/ne

元記事を表示

HULFT 10 for Container Servicesでスケーリングをやってみた

# はじめに
こんにちは、すぎもんです:smile:

いわゆる「コンテナ版HULFT」であるHULFT10 for Container Servicesを少しずつ触っております。今回はHULFT10 for Container Servicesでスケーリングをやってみます。

HULFT10 for Container Servicesのスケールはデータプレーンによって異なります。データプレーンがEC2の場合はEC2をスケールする方法とECSのタスクをスケールする方法がありますが、データプレーンがFargateの場合はECSのタスクをスケールする方法のみとなっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/abddc4ce-d967-af73-f25e-9d9904a447ae.png)

:::note info
**EC2とFargateのスケーリングの違いについて**
ECS on Fargateは実行環境のスケーリング設定が不要です。データプレーンがEC

元記事を表示

Local Development with Amplify Gen 2

Sandbox と言われる Amplify Gen 2 (Amplify) でのローカル開発について。

Amplify の実用性について調べる。

Code はこれ。

https://github.com/danny-yamamoto/buttermilk-backend-app.git

## tl;dr
– Sandbox は本番と同等で構成され、停止すると自動で Resources は削除される。
– Amplify で Frontend から Backend、Database まで全て定義できる。理論上。

## Implement the API
– NestJS で API を実装する。CRUD まで generate される。 `nest g resource todo` [^4]
– CRUD の HTTP Method に Prisma で実装を追加する。[^5]

## Set up local AWS profile [^1]
– AWS CLI は VS Code の extension を使用する。

https://github.com/danny-ya

元記事を表示

AWSでKubernetes The Hard Wayをやってみた

# 概要
https://github.com/kelseyhightower/kubernetes-the-hard-way
2024/4/6に約3年ぶりのアップデートがあった。
以前はGCP環境が前提の手順となっていたが、そのアップデートでクラウドプロバイダ問わずの手順に変わっていたのでAWS環境で実践してみた。

なおOSは`Debian 12 (bookworm)`が前提となっていたが、わずかでも独自性を出すべく`Amazon Linux 2023`を使用している。

# 結果
手順が十分以上に整備されていることもあり、完走するだけならほぼコマンドをコピペするだけで事足りた。
そのため過程について記述することは特段なかったが、備忘のため2点だけ注意点を書き残す。

## ①`configs/encryption-config.yaml`が存在しない
2024/6/6時点では`configs/encryption-config.yaml`が`.gitignore`によって無視される対象に含まれてしまっている。
そのため内容をリポジトリから探し出して手作業で作成する必要があった。

元記事を表示

CloudFormationでssmを使う時だけendpoint作成してeventbridgeスケジューラーで自動削除したい。

VPC,SG作成

“`
AWSTemplateFormatVersion: ‘2010-09-09’
Description: AWS CloudFormation template to create VPC, subnets, and security groups.

Resources:
# VPC
MyVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
EnableDnsSupport: true
EnableDnsHostnames: true
Tags:
– Key: Name
Value: MyVPC

# Subnet
MyPrivateSubnet:
Type: AWS::EC2::Subnet
Properties:
CidrBlock: 10.0.1.0/24
VpcId: !Ref MyVPC
MapPublicIpOnLa

元記事を表示

AWS Global Acceleratorを整理してみた

# 背景・目的
以前、[AWS Gateway Load Balancerについて整理してみた](https://qiita.com/zumax/items/57902304829861e44ca7)でGateway Loadbalancerを調べました。
今回は、Global Acceleratorについて整理してみます。

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

| 特徴 | 説明 |
| :– | :– |
| GlobalAcceleeratorとは | 複数のAWSリージョンのエンドポイントをサポートするグローバルサービス|
| 目的 | ローカル、グローバルユーザ向けのパフォーマンス向上|
| アクセラレーターの種類|標準とカスタムルーティングのアクセラレータの2種類がある|
|標準のアクセラレーター|・世界中のユーザが使用するインターネットアプリケーションの可用性を向上できる

・AWSグローバルネットワーク経由でクライアントに最も近いリージョンのエンドポイントにトラフィックを転送する|
|カスタムルーティングアクセラレーター|・1人以上のユーザを複数の

元記事を表示

AWS Backupで取得したバックアップからEBS/RDS/S3を復元してみた

# はじめに
お疲れ様です。yuki_inkです。
以下の記事の続きとして、取得したバックアップからの復元をやってみます。

https://qiita.com/yuki_ink/items/5ce373ad4433e67c82a1

前の記事で、AWS Backupで取得したバックアップは、以下2通りのやり方で確認できました。
1. AWS Backupの画面から「復旧ポイント」として確認
1. 各サービスの画面上で、スナップショットとして確認(EBS・RDS)

であるならば、復元も2通りのやり方でできるのでは? と考え、やってみました。

# 事前準備
### EBS
セッションマネージャーでEC2「test-1」に接続し、`/tmp` 配下に `bk_test` というファイルを作成しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/731275/b36f65a2-dab7-ecca-f209-5185f5f3e2bb.png)

### RDS
まず、デフォルトで存在する

元記事を表示

HULFT10 for Container Services の ECS on Fargate 環境でS3連携をしてみた

# はじめに
こんにちは、すぎもんです:grinning:

今回は、前回投稿した投稿「**[HULFT10 for Container Services の ECS on Fargate 環境構築してみた](https://qiita.com/sugimon/items/368f3f6746f124c1fa59)**」の続編として、AWS S3に格納したファイルを使ったファイル連携を実施したいと思います。

# 今回やること
今回実施するのは ECS on Fargate 環境でのAWS S3に格納した集配信ファイルのループバック転送です。

図にするとこのようなファイル転送になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/df47240f-f0d1-a76d-6e75-1082e51441cb.png)

今回は前回記事の続きとして、HULFT10管理画面にログイン後から再開します。

:::note info
**HULFT10 for Contain

元記事を表示

OTHERカテゴリの最新記事