AWS関連のことを調べてみた2023年09月15日

AWS関連のことを調べてみた2023年09月15日
目次

個人の開発環境を全てクラウド上 (AWS Cloud9とGithub Codespaces) に移行してみた

# はじめに
– **個人開発をする環境として、ローカルPCを使うのを止め、全てクラウド上に移して**数年経ちました。
– 現在は、主に[AWS Cloud9](https://aws.amazon.com/jp/cloud9/)と[Github Codespaces](https://github.co.jp/features/codespaces)を使っていますが、自分が使ってみたいくつかのサービスの使用感などを紹介します。

(なお、用途としては、Pythonを使って簡易アプリ作成やデータ分析をしていました)

# なぜクラウド
色々と良いところがあると思っています。
– 物理端末に依存しないので、**ネットさえつながれば、どんな場所からでも同じように使える**(自分のMac PC, Windows PC, iPad, etc..)
– 自分の物理端末がハイスペックでなくとも、必要なときに必要なだけ高スペックなマシンを使うことができる
– ウン十万円する良いマシンを自前で買うより、長期的に見たら(多分)安い
– 環境構築失敗して意味不明になったら、環境潰して新たにインスタンス立て

元記事を表示

AWS Gamedayに参加してきたのでメモメモ

どうもこんにちは。

今回は9/7(木)開催された **AWS Gameday** についてメモしていきたいと思います。

# 概要

AWS Gamedayについて[公式ページ](https://aws.amazon.com/jp/gameday/)があるため、そちらを参照させていただきながら説明します。

ただし、詳細を公開することは禁じられているので、かなりぼかして記載します。

(ところどころ解釈しやすいように和訳をいじっています。)

## AWS Gamedayについて

AWS GameDayは、参加者がチームとなって実際の技術的な問題を解決するために、AWSのソリューションを使用してゲームに挑戦する学習イベントです。一般的なワークショップとは異なり、参加者は自由に原因を探して、最適解を追い求めることができるイベントとなっています。

> 公式ページ参照
> AWS GameDay is a gamified learning event that challenges participants to use AWS solutions to solve real-wor

元記事を表示

Amazon Forecast ハンズオン やってみた

はじめに

今回、AWS公式の[Amazon Forecast ハンズオン](https://pages.awscloud.com/rs/112-TZM-766/images/201912-AmazonForecastHandson.pdf)をやってみました。せっかくなので記事にしたいと思います。ハンズオンとしては、過去の家庭の電⼒使⽤量のサンプルデータから学習を行い、その後の使⽤量を予測するモデルを**Amazon Forecast**を使って構築する内容になっています。
それではやっていきましょう!

データの準備

最初に、**Forecast**にデータを渡すための準備をします。
やることは簡単で、S3を作成してそこにcsvファイルをアップロードするだけです。
今回はハンズオンで用意されているサンプルを使用しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/38b2fb7a-3f20-7c3e-a63a-fcae5d8c

元記事を表示

Terraform で、AWS ECS(Fargate), ALB, RDS の構成をコード化した。

## 概要
AWS ECS(Fargate), RDS, ALB 構成をTerraformでコード化してみましたので、ポイントをまとめます。
アーキテクチャの概要等は、下記の記事にまとめています

https://qiita.com/hiiragiya/items/7df1af73b6f3e34b63ab

### 参考
ネット上にすごく良い情報があるので、それらから多くを学びました。
ただ、皆さんベースは、「実践Terraform AWSにおけるシステム設計とベストプラクティス」という印象です。こちらの本は見た方がいいです。

– [著書:野村 友規「実践Terraform AWSにおけるシステム設計とベストプラクティス」](https://www.amazon.co.jp/dp/B07XT7LJLC)
– [Terraform で ECS 環境を構築する① 〜ネットワーク編〜](https://blog.linkode.co.jp/entry/2020/10/15/090000)
– [YouTube: それ、どこに出しても恥ずかしくないTerraformコードになってるか?](h

元記事を表示

UnrealEngineのWebSocketsモジュールでパスがないURLを指定すると//が追加されて通信できなかった

UnrealEngineのWebSocketsモジュールを利用してAWSのAPI Gatewayのwebsocketとパスなしのカスタムドメインで通信できなくてはまったので内容を記録しておきます。

# 確認した環境

Windows 11
UE5.2.1

# WebSocketsモジュールについて

build.csにPrivateDependencyModuleNamesにWebSocketsを追加し、以下のようなコードでWebSocket通信ができます。

“`c++
#include “WebSocketsModule.h”
#include “IWebSocket.h”

[略]

TSharedRef Socket = FWebSocketsModule::Get().CreateWebSocket(ServerURI, ServerProtocol, Headers);
Socket->OnConnected().AddUObject(this, &UWebSocketClient::OnConnected);
Socket->OnConnec

元記事を表示

Amazon EventBridge Schedulerのイマイチだったところ

## はじめに

本記事はAmazon EventBridge Schedulerのイマイチな部分を説明する予定でしたが、
投稿日時点では改善されていて良い機能になっているという内容になります

検証をすることにした経緯も書いていますが、結論だけ読みたい方はスキップしてください

## Amazon EventBridge Schedulerを検証することになった経緯

とある業務システムを構築している際に、指定の時間になったらLambdaを実行する機能を実装することになりました。
繰り返し実行するのではなく、1回のみ実行することになります
簡単に説明すると、スマホのアラームのように、WEB画面から時刻を入力し、その時刻になればLambdaを実行させるシンプルな機能です

時刻の登録は画面から行うため、AWSコンソールでポチポチ設定することができません
WEBアプリとして一連の流れを実現させる必要がありました

アーキテクチャとしては、本記事の投稿時点では、Amazon EventBridge Schedulerが発表されていますが、それ以前に実装を行なったため、Amazon Even

元記事を表示

AWSで、Terraformを利用する方法をまとめてみた(3/10)

バージョン管理ツールtfenvとは?

tfenvはTerraformのバージョン管理ツールであり、異なるバージョンのTerraformを切り替えて使用できるようにするために使用されます。以下はtfenvを使用してTerraformをインストール、バージョン管理する方法の詳細です。

まず、Git Bashをインストールします。Git Bashは、Windows上でUnixシェル環境を提供するツールであり、Linuxと同様のコマンドを使用して作業することができます。

次に、tfenvをインストールします。Git Bashを起動し、ターミナルウィンドウを開いて、以下の手順を実行します。

cd ~を入力して、ユーザーディレクトリに移動します。
次のコマンドを入力して、tfenvをクローンします。
~~~
git clone https://github.com/tfutils/tfenv.git ~/.tfenv
~~~
.bashrcに環境変数を追加します。
~~~
PATH=$PATH:/c/Users//.packer/bin
~~~
これにより、Gi

元記事を表示

AWSとは何でしょうか?

今回の担当のSと申します!

今回はAWSを興味はあるけど全く知らないという方向けに、大まかですがAWSとは何かについて解説していきたいと思います。

【AWSとは何か】
AWSとはアマゾン社が提供するクラウドサービスのことです。クラウドサービスとは、ハードウェア、ソフトウェア、データなどのIT資産を自分で所持や管理するのではなく、
AWS上で利用できるサービスのことです。AWSはこのクラウドサービスの中で圧倒的によく使われているサービスで、クラウドサービス界の「デファクトスタンダード」として
位置付けられています。

【クラウドサービスの優れた点】
クラウドサービスが普及する前は、全て自前でコンピュータやソフトウェアを用意したり、データの保管をしたりしないといけませんでした。クラウドサービスを使えば、このような手間やコストを大幅に削減することができるようになります。どういうことかと言いますと、クラウドサービスはサーバ上に仮想サービス(サービス内容はサーバーやデータベースなど多岐に渡ります)を生成し、利用者はそれらのサービスを必要に応じて欲しいだけ無駄なく利用することができるのです。

元記事を表示

AWS Secrets ManagerとLambdaを使ってローテーションする際に「シークレットをローテーションできませんでした」とエラーが出た時の対象法

## 概要
AWS Secrets Manager内でキーローテーションの設定をしてうまくいかなかった際に下記画像のように
`シークレットをローテーションできませんでした`
としか表示されずに困ったのでその原因と対処法について解説します

![スクリーンショット 2023-09-13 14.14.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625980/dac7b8c9-abd6-b85b-a218-26262ce69bc4.png)

## 原因
結論から言うとリソースベース(今回だとSecerts Manager)のポリシーステートメントが足りてなくてローテーションができませんでした

リソースベースのポリシーステートメントについては下記の通りです
> 関数は、その実行ロールから AWS リソースに対する許可を受け取ります。AWS SDK を使用して AWS のサービスを呼び出すには、そのサービスの API オペレーションへのアクセスを許可するポリシーをロールに追加します。
Lambda コ

元記事を表示

AWSアクセスキーを環境変数に格納し、Terraformに読み込み失敗時の対応方法:Error: validating provider credentials: retrieving caller identity from STS

# 課題
Terraformの初心者ですが、
TerraformからAWSへアクセスする際に、いつも便宜上このように直接ソース内に書いたが、

“`
variable “region” {
default = “ap-northeast-1”
}

variable “access_key” {
default = “自分のaccess_key”
}

variable “secret_key” {
default = “自分のsecret_key”
}

# AWS プロバイダの設定
provider “aws” {
access_key = var.access_key
secret_key = var.secret_key
region = var.region
}

“`
最近ソース内に書くと漏洩しやすいかというご意見を部署内から頂いて、
Windowsの環境変数に格納し、Terraformへ読み込む方法を調べてみました。

今回はこちらの記事の方法を試したけど、うまくいかなかった。。。

https://qiita.com/Hikosabu

元記事を表示

悩みを解決するアプリ”MeyasuBako”(目安箱)

本記事について

スクールの卒業課題で作成しましたオリジナルアプリ、”MeyasuBako”についてご紹介します。

http://meyasubako-app.com/

https://github.com/oguyu2021/organized_brain

![スクリーンショット 2023-09-13 11.55.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3468229/47bace57-6030-e447-535d-7dcf10c4d41e.png)

概要・制作背景

このアプリは一言で言うと、
日頃の悩みを整理し、相談して解決するアプリです。
まず作成に至った経緯ですが、「悩みを解決する際、同じ悩みを経験した人なら共感してもらえるし、解決する可能性は上がるのでは」と考えたからです。

拘った点としましては、誰でも簡単に使えるシンプルな機能となっています。

使用方法

まずはトップページからログインします。
※まだアカウント

元記事を表示

Transit Gatewayを使って閉域網内のオンプレサーバーのインターネット接続実現

最近、あるドラッグストア様のシステムAWSリプレースにより、Transit Gatewayを使って要件を実現しましたので、設計のポイント、使い方等を記載しておきます。

【要件】
当該ドラッグストア様は、AWS移行後の構成として、以下のように設計していますが、
店舗UNO → NTT.comのFlexible InterConnect → private VIF → AWS DirectConnect Gateway → AWS VGW → リプレース後のサーバー(EC2)

店舗UNOに接続されている決済端末は、インターネットが接続できる環境が必要という要望がありました。
本来なら、閉域網内(専用線)での通信でセキュリティ面は優れているので、インターネット接続できるのは当初の設計に含みませんでした。

Private VIFを使用する場合、オンプレミス環境から送信されたインターネット向けのトラフィック(インターネット上のグローバルIPアドレスを宛先IPアドレスとしたパケット)をVGW経由でVPCへルーティングすることは叶いません。
したがって、オンプレミス環境から送信されたインターネ

元記事を表示

Dockerを起動させたら「Bind for 0.0.0.0:8080 failed: port is already allocated」

Hi, there!今回は簡単なTipsだよ。

さっきAWS内のEC2インスタンスでDockerコンテナを立ち上げたら、

“`log
[SAmmys@MyInstance]$ docker-compose up -d

Error response from daemon: driver failed programming external connectivity on endpoint operation (4d238a89bc8c8e9728b854f7fcfbadc176f59234aafa870f7264bfb48970d040):
Bind for 0.0.0.0:8080 failed: port is already allocated
“`

というエラーが出たよ。どうやら、直前にインスタンスが落ちちゃったときの残骸がインスタンスの再起動後も残っちゃって、それが悪さしちゃった感じだね。

最近出たAmazon Linux 2023って旧の Amazon Linux 2 と違って、障害発生時にインスタンスを再起動させると、直前まで動いてたプロセスも復元しよう

元記事を表示

EKS on Fargateのリソースリクエストの落とし穴

# Fargateのリクエスト量の組み合わせ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/722539/2318cb62-f3da-98f2-3c38-1130fa1c17a7.png)

# 期待していたこと
以下のようなdeploymentマニフェストを書いて、`0.5vCPU, 4GB`がリクエストされることを期待していた。
“`yaml
〜〜〜
# .spec.template
resources:
limits:
cpu: 500m
memory: 4000Mi
requests:
cpu: 500m
memory: 4000Mi
〜〜〜
“`

# 実際のリクエスト量
スケジュールされたPodを`kubectl describe pod`で見てみると.
以下のように一つ上のvCPUがリクエストされていた。
“`
Annotations: CapacityProvisioned: 1vCPU 5GB
“`

# なぜ起こった?

元記事を表示

CodeCatalyst Blueprintの”Single-page application”をやってみた

# はじめに

– CodeCatalystば2022年のre:Inventで発表された、「開発ツールをオールインワンで提供する」サービスです
– CodeCatalystにはBlueprintという機能があり、様々なユースケースに沿ったサンプルプロジェクトを用意してくれています
– [Amazon CodeCatalyst Blueprints](https://codecatalyst.aws/explore/blueprints)
– 今回はその中の”Single-page application”(いわゆるSAP)に関するBlueprintを試しつつ、ちょっとだけ詳しめにレポートしてみようと思います
![スクリーンショット 2023-09-12 23.50.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1079261/cdd8611c-82b4-6714-f47e-bd3af3cfaa1b.png)

# お断り

– CodeCatalystは、AWSアカウントの他にBuilde

元記事を表示

AWS インスタンスタイプ覚え書き

## EC2インスタンスのネーミングポリシー

– インスタンスファミリーは種類を表す
– インスタンスサイズは性能を表す
– インスタンス世代はバージョンを表す

下記の記事が分かりやすい。
https://qiita.com/cloud-solution/items/c8dd9ed491abd3360516

## 覚えておきたいインスタンスタイプ
### 汎用のT系・M系
– T系 : バースト可能なインスタンス。CPU負荷が少ない時にCPUクレジットをためておき、負荷が上がった際にクレジットを使ってバーストする。ステージング環境で利用されがち。
– M系 : バランス型で様々な場面で利用が可能。本番環境で利用されがち。

### なぜ本番環境はT系ではなくM系なのか?
Amazon EC2でT系インスタンスを使用しようとした場合、他のインスタンスタイプとは違い、ベースラインと呼ばれるあらかじめ決められたCPU使用率が定義されている。その上で、ベースラインを超えたCPU使用率が使用できる状況がバースト機能であり、CPUクレジットを消化する。
また、CPUクレジットの残高

元記事を表示

VPCpeerlingを使った時のはまりポイント

publicルートテーブルにアセプタ側のcidrを登録していなかった

元記事を表示

AWSを「ミリしら」な私が半年+α で12冠した受験録

## はじめに
9/3に受験したPAS-C01の合格を以てAWS試験を12個取得し,AWS ALL Certificated Engineersの取得資格をゲットしました.大手企業の新入社員2年目で,AWSはメインではないものの触れる環境が多く,取っておいて損はないだろうという意図から12冠しました.技術的な興味と経歴に箔を付けるために受験しており,業務において全てを利用するわけではないので,前半は学習ファーストでじっくりと,後半は合格ファーストで知識を詰め込む形で受験しています. 約半年の受験当初はクラウドに疎く,「EC2,S3はなんとなく分かる.でもAuroraって何?」というレベルからスタートしています.
12冠したばかりなので,その恩恵はまだ実感がありません.後々に記事にしたいと考えています.

今回は受験録として,本記事を投稿しようと思います.皆様のご参考になれば幸いです.

## 各試験のスケジュール
AWSの試験はテストセンター会場で自由に受験できる形式のため,柔軟にスケジュールを組むことができます.オンラインで自宅で受験もできますが,環境を用意できなかったため,そちらは

元記事を表示

CDK) RDSの認証局の有効期限対応

# TL;DR

– aws-cdk-lib 2.94.0以降を利用する
– caCertificate: rds.CaCertificate.RDS_CA_RDS4096_G1 を記述する
– rds-ca-rsa4096-g1を指定した場合期限は100年後の2121年なので今回対応すれば今後は対応不要

# 経緯

– RDSではデフォルトで認証局が設定されていて、最近までのデフォルトはrds-ca-2019となっている
– AWSからrds-ca-2019は2024年で期限切れになると通知が来たので対応する(RDSの認証局の更新)
– 9/2まではCDKで認証局を変更するのは工夫が必要だった(CDKに認証局を直接指定するプロパティがない。CFnにはある)(https://dev.classmethod.jp/articles/setting-rds-aurora-instance-ca-with-cdk/)
– 9/2にリリースされたaws-cdk-lib 2.94.0で可能になった

# 記述

“`
“dependencies”: {
“aws-cdk-li

元記事を表示

【無料】爆速でAWS EC2でNode.jsの自動デプロイ環境を作る

Discord Botを無料で24/7(休まず常時稼働)させたいが、Vercelなどの無料サービスはその要件を満たさなかったので、AWSのEC2でやることにした。私と同じお金を使わずに何かをしたい人に向けてますので、感想等くださるとありがたいです。
特に誤った内容があると思われた方は、ぜひコメントをお願いいたします。

# この記事でやること
– 【大目的】「無料」で、Node.jsのサーバを「爆速」で作る。
– GitHubリポジトリのNode.jsのアプリを自動でAWS EC2インスタンスにデプロイする環境を作る。
– 本番環境のコードのブランチ(production)を作り、ソースコードがプッシュ(マージなど)されると、自動で最新のコードでNode.jsプロセスがスタートするようにする。
– また、手動でデプロイ等の操作を実行することもでき、ここでアプリケーションの起動・停止を操作することもできる!!

**※全部無料でやります!!!** ←重要

## 想定読者
– Git, GitHubは使える!
– Node.jsは使える!
– AWSは全くわからな

元記事を表示

OTHERカテゴリの最新記事