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

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

RailsアプリをRDSと連携させてECSにデプロイする

## 1.AWSアカウントIDの設定
アカウントIDを環境変数に保存し、後の操作で使用できるようにします。

“`bash
export ACCOUNT_ID=$(aws sts get-caller-identity –query Account –output text)
“`

## 2.IAM関連
ECSタスクがCloudWatchなどの他のAWSサービスにアクセスするためのロールを作成します。

“`bash
cat << EOF > trust-policy.json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“Service”: “ecs-tasks.amazonaws.com”
},
“Action”: “sts:AssumeRole”
}
]
}
EOF
“`

“`bash
aws iam create-role –role-name hello-world-rails-rdb-task-execution

元記事を表示

AWS Free tierで知らない間高額請求があった

## 状況
昨日何となくカード明細を見ていたら見慣れない金額の請求があった。
Amazon Web Serviceから400ドル。

特に何かのサービスを展開しているわけでもなく、LambdaやDynamoDB、Amplifyでハンズオン程度の軽いテストをするアカウントであったためそんな額払われるわけないと思い、急いでコンソールを開いた。

まずは、本当にこのアカウントから支払われているかを確認した。
請求管理のページに入ってみると案の定400ドルの記載があった。

今月の利用状況を見に行ったところ、11/2時点で11月の請求額が10ドルになっていた。このままだとどんどん請求額が増えていくため、サービスを止める必要がある。

## 調査

慌てて履歴を見てみると、RDS(Aurora)が主な使用先となっていた。

まずは、思いつく場所を全部見に行った。

### EC2, RDS
起動中のものなし

Free tierでも複数のものを起動していると課金されることを周知していたため、毎回ハンズオンをやったあとはインスタンスを終了していた。履歴に残っているそれではRDSはどこで使われてい

元記事を表示

Pixel StreamingをAWS上にデプロイする – コンテナセットアップ編

![Recording 2024-11-03 143614 (3).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3492828/dc72496c-c05f-7e43-284d-193809345942.gif)

Pixel StreamingをAWS上にデプロイするまでの手順です。
本記事ではPixelStreamingRuntimeイメージをビルドして、EC2インスタンス上で起動を確認するところまでになります。

## Pixel Streaming Runtimeコンテナのビルド
以下からPixelStreamingのデモプロジェクトをダウンロードします。

https://www.fab.com/ja/listings/bfa184d1-f336-4613-933a-a906f98d9c16

Epic Games Launcherからダウンロードできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaw

元記事を表示

【勉強】AWS VPCについて

# VPCとは

VPCとは、Virtual Private Cloudの略で、AWS上でユーザーが自分専用の仮想ネットワーク環境を構築できるサービスである。
このVPCを使用すると何が嬉しいかというと、

– AWSリソースをVPCに配置することで利用することができるようになる
– 現在、VPCをそもそも必要としないAWSリソース以外は全てVPC上に配置される必要がある
– 自分専用の仮想ネットワーク環境を構築できるため、他のAWSアカウントやインターネットからアクセスされない、安全なネットワークを用意することができる
– また、追加でVPCの様々な機能を使用することで、他からのアクセスをこちら側で制御することができる

という点である。

# VPCの作成

VPCは特定のRegion全体に作成される。つまり、複数のAvailability Zoneをまたいで作成され、VPCを特定のAZに絞ることはできない。

VPCの作成時には、IPv4 CIDR ブロックを決めることになる。(IPv6もあるが省略)
ここで設定するIPv4 CIDR ブロックはプライベートIPアドレスの

元記事を表示

AWS Cognito認証をサクッとPythonのみで動作確認する(Backend)

## 背景
私は普段、マイクロサービス開発しているバックエンドエンジニアです。
この度、フロントエンドの画面ができていない状態で、バックエンド単体で認証・認可周りの動作確認をすることになりました。この記事では、AWSマネジメントコンソールと簡単なPythonスクリプトだけで、Cognito認証の動作確認を行う方法をメモいたします。

## 認証フローのイメージ
こちらは、Cognito認証フローの超ざっくりとしたイメージです。
– 最初にユーザーはConitoに対しEmail/Passwordでログインします
– ログインするとユーザーは、CognitoからIdTokenを発行されます
– ユーザーはトークンをBackend APIに投げます
– Backend APIは、ユーザーからもらったトークンを、Cognitoからもらった公開鍵で復号します
– Backend APIは、複合したJsonから正しいユーザーの値が取得できているか確認します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

AWS VPCについて理解をまとめてみた

最近業務でAWSを触る機会が増えたので自分への備忘録として記事を書いておこうと思います。
今回は「VPC」についてです。

本記事は以下の書籍を参考にしています。
### 参考リンク

## VPCとは何か?
AWSを利用する際にVPCというサービスをよく目にすると思うのですが、これは一言で言うと「AWS内に仮想ネットワークを構築で

元記事を表示

【AWS】EC2を触りつつ踏み台サーバー環境を構築する

# はじめに

本記事ではインフラ初学者がVPCを触りつつ、ネットワークを学んでいく内容になります。

既存の環境として、以下のような構成があります。
![sampe.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/5e9b4c7f-0c87-ab45-e161-fb09cb79e4cf.png)

上記構成を元に、色々リソースを付け加えていく形で勉強を進めていけたらと思います。

# 目次

1. プライベートサブネットを追加してみる
1. プライベートサブネットにDBサーバー(仮)を構築する
1. 踏み台サーバーを経由してDBサーバーにSSH接続する
1. まとめ


## プライベートサブネットを追加してみる

以下の構成を作るために、プライベートサブネットを作成していきます。
![sampe.png](https://qiita-image-store.s3.ap-north

元記事を表示

GitHubのリポジトリとCodePipelineを連携させ、DockerイメージをCodeBuildを使ってビルドし、ECRにプッシュし、ECSにデプロイする

## コンソール画面での大まかな手順
1. **GitHubリポジトリの準備**: “https://github.com/shu130/aws_study29”
2. **Amazon ECRリポジトリの作成**
3. **CodeStar ConnectionでGitHubとAWSを連携**
4. **CodeBuildプロジェクトの作成**
5. **ECSでサービスをデプロイ**
6. **CodePipelineを作成し、全体のCI/CDパイプラインを構築**

## 概要図
![diagram01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146025/1105edb4-e0e6-b77e-93af-28be999f76c3.png)

## 1. **GitHubリポジトリの準備**

– **Dockerfile**: Dockerイメージを作成
– **buildspec.yml**: CodeBuildがビルドプロセスを実行するための設定ファイル
– **index.h

元記事を表示

AWS: AWS入門(EC2編4) – パブリックIPアドレスの利用状況を管理する

###### 実施環境

Microsoft Edge 124.0.2478.67 (64bit)

### 0. 概要

世界的な IPv4 資源の枯渇を受け、 AWS は 2024 年 2 月 1 日より、パブリック IPv4 アドレスに対する料金体系を変更しました。
これまではパブリック IPv4 アドレスを 1 つのインスタンスにつき 1 つまでは無料で利用できましたが、今後はすべてのパブリック IPv4 アドレスに対し一律課金されるようになります。
その代わり、 EC2 の無料枠として、アカウント作成から 12 か月の間、月 750 時間までパブリック IPv4 アドレスを利用できるようになりました。

https://aws.amazon.com/jp/blogs/news/new-aws-public-ipv4-address-charge-public-ip-insights/

上記のようにパブリック IPv4 アドレスの料金体系が変更された今、利用しているパブリック IPv4 アドレスの管理はより重要度を増しています。
そのようなパブリック IPv4 アドレスの管

元記事を表示

Ubuntu で Kubeadm により k8s 環境構築実験(3)

[Ubuntu で Kubeadm により k8s 環境構築実験(2)](https://qiita.com/intrajp/items/9ff9664ac3d5f23db338)からの続きです。

2台めのワーカーノードを追加してみようとしたら、kubeadm join でエラーになりました。
“`bash
kubeadm join 10.0.11.67:6443 –token \
–discovery-token-ca-cert-hash sha256:
[preflight] Running pre-flight checks
error execution phase preflight: couldn’t validate the identity of the API Server: failed to request the cluster-info ConfigMap: Get “https://10.0.11.67:6443/api/v1/namespaces/kube-public/configmaps/clust

元記事を表示

【図解】DynamoDBのキャパシティ計算

## 早めの結論
### 計算方法
– `必要なブロック数 = データ / 項目のサイズ (小数点切り上げ)`
– `1 秒あたりの項目数 = 必要なブロック数 * 1 秒あたりのリクエスト数`
– `キャパシティユニット = 1 秒あたりの項目数 / 1 秒あたりの実行回数`

### RCU
– 読み込み方法は 3 種類
– 結果整合性
– 強力な整合性
– トランザクション
– **結果整合性**は,**強力な整合性**の **1/2 倍**の RCU
– **トランザクション**は,**強力な整合性**の **2 倍**の RCU

### WCU
– 書き込み方法は 2 種類
– 結果整合性
– トランザクション
– **トランザクション**は,**結果整合性**の **2 倍**の WCU

## キャパシティユニットとは
DynamoDB のプロビジョニングモードでは,
予め 1 秒あたりどのくらいデータを読み書きするのか回数を指定します
その回数こそがキャパシティユニットです

> プロビジョニングされたキャパシティーのモードでは

元記事を表示

【AWS】AWS Lambda Function URLsを検証!

## はじめに

この記事では「この前リリースされた機能って実際に動かすとどんな感じなんだろう」とか「もしかしたら内容次第では使えるかも」などAWSサービスの中でも特定の機能にフォーカスして検証していく記事です。主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば書き直していく予定です。

今回はAWS Lambdaの機能として提供されたAWS Lambda Function URLs(以下、Function URLs)を検証してみます。

## この記事で伝えたいこと(Point)

– AWS Lambda Function URLsを使うとAPI Gatewayを使わずにLambdaの機能だけでAPIエンドポイントURLを作成できるよ
– AWS Lambda Function URLsの特色はどこかについて説明しているよ

## LambdaがURLを発行するようになったね

[AWS Lambda Function URLs の提供開始: 単一機能のマイクロサービス向けの組み込み HTTPS エンドポイント – Amazon Web

元記事を表示

AWS エンジニア入門口座をよんでのまとめ Chapter 1

AWSの入門テキストを購入したので学習したことをまとめる。

https://www.amazon.co.jp/AWS%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E5%85%A5%E9%96%80%E8%AC%9B%E5%BA%A7%E2%80%95%E2%80%95%E5%AD%A6%E7%BF%92%E3%83%AD%E3%83%BC%E3%83%89%E3%83%9E%E3%83%83%E3%83%97%E3%81%A7%E4%BD%93%E7%B3%BB%E7%9A%84%E3%81%AB%E5%AD%A6%E3%81%B6-CloudTech%E3%83%AD%E3%83%BC%E3%83%89%E3%83%9E%E3%83%83%E3%83%97%E4%BD%9C%E6%88%90%E5%A7%94%E5%93%A1%E4%BC%9A/dp/4297125374/ref=sr_1_1?crid=1WVIBNHS1D78K&dib=eyJ2IjoiMSJ9.9aVaWXgHpl1UBRf11NdrPAGkYBRY1RoEO8oA

元記事を表示

Resource handler returned message: “Error occurred during operation ‘CreateCluster SDK error: Service Unavailable. Please try again later. の対処法

症状

ECSでクラスター作成時に下記のエラーが発生しました。

“`terminal:error
クラスター blog-rails の作成中にエラーが発生しました。
Resource handler returned message: “Error occurred during operation ‘CreateCluster SDK error: Service Unavailable. Please try again later. (Service: AmazonECS; Status Code: 500; Error Code: ServerException; Request ID: hoge-hoge; Proxy: null)’.” (RequestToken: hoge-hoge, HandlerErrorCode: GeneralServiceException)
“`

“`terminal:翻訳
リソース ハンドラーが次のメッセージを返しました: 「操作中にエラーが発生しました ‘CreateCluster SDK エラー: サービスは利

元記事を表示

クラスター には同じ名前の CloudFormation スタックが既に存在します。別の Infra-ECS-Cluster-blog-rails-c5ebf5b2 の名前を選択するか、CloudFormation コンソールから クラスター スタックを削除してくださいの対処法

症状

クラスターを作成しようとしたとき下記のエラーが発生しました

“`terminal:error
リクエストは失敗しました
障害が発生した クラスター には同じ名前の CloudFormation スタックが既に存在します。別の Infra-ECS-Cluster-blog-rails-c5ebf5b2 の名前を選択するか、CloudFormation コンソールから クラスター スタックを削除してください。
“`

解決策

エラーメッセージどおり、CloudFormationで、失敗しているクラスターを選択し削除したら解決しました

参考

https://repost.aws/ja/knowledge-center/ecs-cluster-delete-failure-stack

元記事を表示

荷物減らしたい人は見ちゃダメ!AWS re:Invent快適に過ごしたい人の為の持ち物リスト51選

# はじめに

[AWS re:Invent 2024 関西組 事前勉強会](https://awsbuilder.connpass.com/event/333335/) で快適に過ごす持ち物のリスト公開します〜と宣言してしまったので、個人的にまとめていた50を超える持ち物リスト公開します

## AWS re:Invent は想像以上の体力イベントです

2024年で3回目の参加になり、少しづつ慣れてきたのですが、2019年に初めてAWS re:Inventに参加しましたが、そのスケールと規模感に圧倒されました。
それだけでなく、あまり事前知識もないまま参加してかなりの体力イベントだと言うことを参加後、知らされることになりました。

– 24時間近くかかる移動時間
– 6時間以上待たされるトランジット
– 時差17時間の時差ぼけ
– 早朝から並ぶキーノート
– 深夜までどこかで何かが開催されている懇親会
– 疲れてホテルに戻る頃、日本は業務時間真っ只中
– 1日2万歩を余裕でこえる歩行距離
– AM 4時に集合し、空港に向かう帰路

などなど、他にもあるかもしれません

元記事を表示

AWS SAM で作成した複数のlambda関数で共通のメソッドを使う方法

## はじめに

AWS SAM を使って複数の Lambda 関数を1つのコードベースで管理することはよくあります。開発が進むと、複数の Lambda 関数間で共通のメソッドやクラスを使用したい場面も増えてきます。今回は、AWS SAM でこのような共通コードを効率的に管理するための手法について検討してみました。

## 想定ケース

1つの AWS SAM スタックで管理している複数の Lambda 関数で共通のメソッドを使用するケースを想定しています。

![sam_deploy.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1586001/dd3e87ee-f8f0-c6ed-902a-d49d3e04a86e.png)

なお、テンプレートでは共通のプレフィックスや設定は省略しています。

## 手法

### その1 各lambda関数で同じファイルを作成する方法

“`
.
├── src/
│ ├── lambda1/
│ │ ├── common/

元記事を表示

突然、EC2サーバが落ちた話

## 体験談
ある日、AWSから`AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED`の通知が届きました。いわゆる「リタイア通知」です。

内容を確認すると何やら物騒なことが書かれています。
`Due to this degradation your instance could already be unreachable.`
つまり既にインスタンスにアクセスできなくなっている可能性があるということを意味します。

私の(誤った)認識ではこの文章はあくまで「保険」的なニュアンスで書かれているものであり、通知文に記載されている対応期限前に突然サーバーが落ちる可能性は流石に低いだろうと、たかを括っていました。

とはいえ念の為、対象インスタンスを確認しにいくとインスタンスの状態は「✅実行中」ですが、メトリクスの部分で「特定時間帯からデータがない状態」が発生しているではありませんか。

ファッ!? (゜Д゜;)
まさにこんな顔になっていたと思います。
この時点でなんだか悪い予感がしてきます。

次にターゲットグループを見にいったら、案の定「✖️

元記事を表示

An error occurred (UnrecognizedClientException) when calling the GetAuthorizationToken operation:の対処法

症状

ECSにPUSHしようとしたときに下記のメッセージが表示されました。

“`terminal:error
aws ecr get-login-password –region ap-northeast-1 | docker login –username AWS –password-stdin hoge.dkr.ecr.ap-northeast-1.amazonaws.com
northeast-1.amazonaws.com

An error occurred (UnrecognizedClientException) when calling the GetAuthorizationToken operation: The security token included in the request is invalid.
Error: Cannot perform an interactive login from a non TTY device
“`

“`terminal:翻訳
GetAuthorizationToken 操作の呼び出

元記事を表示

【Windows】VScodeのターミナルでペーストする方法

WindowsのVSCode上ターミナルで、AWSCLI認証時にアクセスキーなどをペーストする際にうまくいかず、10分くらいハマったので、ここに記す

Ctrl+Shift+V

これでコピーしてあるものを、ペーストできる

参考

Linux のターミナルでコピー&ペーストする方法を教えてください。

元記事を表示

OTHERカテゴリの最新記事