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

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

AWS Data Provider for SAPのアクセス許可ポリシーを作成する。SAP on AWS ハンズオン①

### ソース
技術的要件
https://docs.aws.amazon.com/sap/latest/general/data-provider-req.html#data-provider-iam-roles

### PAS試験用まとめ

– 必要な権限
EC2:DescribeInstances→インスタンスを一覧表示する
EC2:DescribeVolumes→EBSボリュームを一覧表示する
cloudwatch:GetMetricStatistics→CloudWatchメトリクスのデータポイントを取得する
s3:GetObject→対象のS3バケットからオブジェクトを取得する

cloudwatch:GetMetricStatisticsに関しては以下。
https://dev.classmethod.jp/articles/get-data-points-for-cloudwatch-metrics-with-api/

“arn:aws:s3:::aws-sap-dataprovider-/config.properties”
ここ

元記事を表示

【aws cli】dynamodbテーブルの作成とクエリ

## aws cliを使用したdynamodbテーブルの作成手順

### aws cliを使ったdynamodbテーブルの作成手順を解説します。aws cliとは、awsの機能をコマンドラインから操作するためのツールです。dynamodbはフルマネージド型のnosqlデータベースであり、高いスケーラビリティとパフォーマンスを提供しています。以下の手順に従って、dynamodbテーブルの作成を行いましょう。

1. aws cliのインストール
まず最初に、aws cliをインストールする必要があります。以下のコマンドを実行して、aws cliをインストールします。

“`bash
$ pip install awscli
“`

2. aws cliの設定
aws cliを使用するには、awsの認証情報を設定する必要があります。以下のコマンドを実行して、認証情報を設定します。

“`bash
$ aws configure
aws access key id [****************]:
aws secret access key [****************]

元記事を表示

【aws cli】セキュリティグループの設定と管理

## aws cli】セキュリティグループの設定と管理

こんにちは。今回は、aws cliについて初心者エンジニアに向けて、セキュリティグループの設定と管理方法について解説します。

## はじめに

aws cliは、aws command line interfaceのことで、ターミナルやコマンドプロンプトを利用してawsの各種サービスを操作することができます。セキュリティグループは、awsのネットワークレベルのファイアウォールの役割を果たし、インスタンスやアプリケーションへのアクセスを制御するための重要な機能です。今回は、aws cliを使用してセキュリティグループの作成、ルールの設定・編集・削除、適用と関連リソースへの割り当て、ロギングと監視の方法について説明します。

## aws cliでのセキュリティグループの作成手順

セキュリティグループを作成するためには、以下のaws cliコマンドを使用します。

“`bash
aws ec2 create-security-group –group-name mysecuritygroup –description “m

元記事を表示

ECSをBlue/Greenデプロイするイメージをterraformで掴んでみる

# はじめに
ECSのデプロイやBlue/Greenアップデートがどんなものだったか、記憶が薄れていたので思い出す意味でも初学時に書いたterraformを書き直しました。
全容を確認しながら、リソースの関係をイメージできればなと思います。

## 概要
#### アーキテクチャ

![cap.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654730/dd21902d-8ce7-d0ab-f8a3-d4b092740356.png)

publicサブネットに配置されたALBを通してprivateサブネットに配置されているECSタスクにアクセスする一般的な構成です。
少しでも節約するため、NAT Gatewayは1台構成としています。

#### フォルダ構成
“`
.
├── main.tf
├── variable.tf
├── terraform.tfvars
├── vpc.tf
├── alb.tf
├── ecr.tf
├── ecs.tf
├── codebuild.tf
├── c

元記事を表示

【aws cli】iamユーザーの作成と権限設定

## aws cliを使用したiamユーザーの作成手順

こんにちは。今回は、aws cliについて初心者エンジニアに向けて、iamユーザーの作成と権限設定についてご説明します。aws cliは、コマンドラインインターフェースを通じてawsリソースを管理するためのツールであり、効率的に操作することができます。

aws cliを使用してiamユーザーを作成する手順は以下の通りです。

### 1. aws cliのインストール
まずは、aws cliを導入しましょう。以下の公式ドキュメントを参考に、適切な環境にaws cliをインストールしてください。

– [aws cliのインストールガイド](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-files.html)

### 2. aws cliの設定
aws cliをインストールしたら、設定を行います。以下のコマンドを実行し、awsのアクセスキーidとシークレットアクセスキーを設定してください。

“`bash
$ aws configur

元記事を表示

AWS CLIのオプションまとめ

aws blackbeltを参考にAWS CLIの基本的な使用方法、オプションをまとめました。

## 使用するまでの流れ

1. AWS CLIのインストール
詳細は省きます。zipのダウンロードだけではなくpip installなどを使用してもインストールできたりします。
1. AWS上でIAMを設定
コマンドラインから実行できるコマンドはこのIAMの権限で制限されることになる
1. IAMユーザーを作成し、必要な権限を付与する
1. IAMのコンソール画面からアクセスキー、シークレットアクセスキーを取得
1. `aws configure` をコマンドラインで打ち込み、設定を行う
下記を最低限設定
1. アクセスキー
1. シークレットアクセスキー
1. リージョン
1. 出力形式

上記をすれば使用できるようになります。

## 操作方法

### 実行コマンドの形式

“`
$ aws [options] [parameters]
“`
– [op

元記事を表示

Fargate上のGitLab起点でEC2を更新するGitOpsを実現したい

# はじめに
この記事はDevOps on AWS大全 実践編の一部です。
DevOps on AWS大全 実践編の一覧は[こちら](https://qiita.com/tech4anyone/items/c27e74f9ae569ced259f)。

この記事ではGitLab起点でEC2を更新するCICDパイプラインのアーキテクチャを決める流れを解説しています。

具体的には以下流れで説明します。

– 解決したい課題の整理
– 今回使うAWSサービスの整理
– アーキテクチャの策定
– 策定したアーキテクチャで達成できたこと

AWSの区分でいう「Level 400 : 複数のサービス、アーキテクチャによる実装でテクノロジーがどのように機能するかを解説するレベル」の内容です。

# この記事を読んでほしい人
– DevOpsエンジニアがアーキテクチャを決めるときにどのような思考フローを踏んでいるか知りたい人
– GitLab起点でEC2を更新するCICDパイプラインのアーキテクチャを知りたい人
– AWS Certified DevOps Engineer Professional

元記事を表示

AWSでAuto Scaling Groupの作成

# オートスケーリンググループ

このチュートリアルでは、以下の要件を持つアプリケーションのケースをシミュレートします。アーキテクチャを導入するために、お客様やプロジェクトマネージャーに同様の質問をすることができます。

**質問1:強いトラフィックがある場合、アプリケーションが正常に動作するために必要なインスタンス数はいくつですか?つまり、最小限で何台必要ですか?**

このチュートリアルでは、アプリケーションは常に最低でも2つの実行中のインスタンスを持っている必要があります。

**質問2:AWSのインスタンスにはコストがかかり、無料ではありません。したがって、そのアプリケーションにデプロイできる最大のインスタンス数はいくつですか?**

このチュートリアルでは、アプリケーションは最大で5つの実行中のインスタンスを持っている必要があります。

**質問3:トラフィックが通常の場合、アプリケーションが良好な状態で動作するための理想的なインスタンス数は何ですか?**

このチュートリアルでは、すべてが順調な場合、アプリケーションはできれば3つの実行中のインスタンスを持っている必要があ

元記事を表示

AWSのマネジメントコンソールでVPC、NAT Gateway等を削除する

こんにちは。
本日は、VPCの作成に引き続きVPCの削除の手順も記載します。

VPCに限らずですが、AWSでリソースを作成すると、リソースに依存関係が生まれます。
AWSのマネジメントコンソールでVPCを作成する際に、NAT Gatewayを作成することがよくあると思います。
このNAT Gatewayが存在していると、VPCを削除することができません。

そこで、依存関係で問題が出ないように、リソースを削除していきます。

# AWSのマネジメントコンソールでVPC、NAT Gateway等を削除する手順

## 前提

AWSのマネジメントコンソールでVPC作成時に、以下の条件で作成していたものとします。

* 自動生成のタグに「PoC-20240105」を設定
* 東京リージョンでAZを2つ作成
* パブリックサブネットを2つ作成
* AZごとにNAT Gatewayを1つずつ、計2つ作成

## 概要
AWSのマネジメントコンソールでVPCを作成した状態で、そのまま削除する場合は、以下の手順でリソースを削除/解放します。

1. NAT Gatewayを削除する
2.

AWSのマネジメントコンソールでVPCを簡単に作成する

こんにちは。
本日は、AWSでVPCを簡単に作成する手順について記載します。

# AWSのマネジメントコンソールでVPCを簡単に作成する手順

## 1. 以下のリンクにアクセス
東京リージョンか大阪リージョンで作成する場合、以下のリンクでVPCを作成する画面に遷移します。

* 東京リージョンでVPCを作成する
[https://ap-northeast-1.console.aws.amazon.com/vpcconsole/home?region=ap-northeast-1#CreateVpc:createMode=vpcWithResources](https://ap-northeast-1.console.aws.amazon.com/vpcconsole/home?region=ap-northeast-1#CreateVpc:createMode=vpcWithResources “VPCを作成(東京リージョン)”)

* 大阪リージョンでVPCを作成する
[https://ap-northeast-3.console.aws.amazon.com/v

【AWS】支払い方法の登録ができない

 AWSでアカウントを作成しようとしたところ、エラーで躓いてしまったので、備忘録としてエラー原因とその対策方法をまとめます。
※解決しない場合はAWSサポートに問い合わせてみてください。

# 状況
 アカウント作成後、支払方法にクレジットカードを登録したが、「未検証」状態になり、解消できない。

# 解決方法
#### 1. キャッシュを削除したうえで再度「検証」してみる
 サイトのキャッシュを削除したのち、部ある座を閉じたうえで改めてAWSを開き、支払方法の「検証」を実行します。
Chromeのキャッシュクリア方法をいかにご紹介します。

>1.パソコンで Chrome を開きます。
>2.画面右上のその他アイコン その他 をクリックします。
>3.[その他のツール] 次へ [閲覧履歴を消去] をクリックします。
>4.上部で期間を選択します。すべて削除するには、[全期間] を選択します。
>5.[Cookie と他のサイトデータ] と [キャッシュされた画像とファイル] の横にあるチェックボックスをオンにします。
>6.[データを消去] をクリックします。

(ht

AWS Secrets Managerとは何か?の備忘録

AWS Secrets Managerを使用すると、データベースの認証情報や、パスワードなどの任意のシークレット情報をAPIコールで取得できます。各サーバからこのAPIを叩くことでシークレット情報を取得でき、認証やサーバセットアップに利用できます。

AWS Secrets Manager では、シークレットを一元的に保存、取得、アクセス制限、更新、監査、モニタリングできます。 保管中のシークレットを暗号化することにより、認可されていないユーザーが機密情報を見る可能性を低減できます。

AWS Secrets Managerは認証情報を自動的にローテーションできます。例えば、データベースの認証情報を保存し、ローテーションできます。

AWSでCI/CDを構築する

はじめまして。この記事は、私が執筆に携わらせていただきました、ハンズオン本をベースにCI/CDについて記載させていただいたものとなります。
なお、記載内容は所属会社を代表したものではなく、私の個人的な意見ということをご了承ください。

# はじめに
パイプラインを当たり前のように構築できるようになることを目指して記載しております。

# CI/CDとは
AWSに関係なく一般的にソフトウェア開発で使われる用語です。
下記参考:
https://it-trend.jp/cicd_tool/article/937-874

CI(継続的インテグレーション)
→ソースコードの修正とテストを自動化する。

CD(継続的デリバリー)
→開発製品と検証環境や、製品が実際に動作する本番環境との連携を自動化する。

CD(継続的デプロイ)
→修正したコードを一括で反映、展開させることを自動化する。

補足事項として、デリバリーとデプロイは下記の点で違います。
・デリバリーは人の手が残る開発プロセスの自動化
・デプロイは人の手が介在しない開発プロセスの自動化
ゆえに多くの人がイメージする開発プロセスの自動

EKS on ALB でターゲットが healthy になってから Pod を終了させる – Readiness Gate

# Pod readiness gate

ローリングアップデートで新しい Pod を起動
 ↓
ヘルスチェックに成功し、新しい Pod が起動後、古い Pod を削除

EKS + ALBの場合 Pod の起動後に AWS Load Balancer Controller によって ALB にアタッチされるというステップがあるため、アタッチが完了するまでに古い Pod が削除されてしまうと処理可能な Pod がなくなり一時的なダウンタイムが発生する可能性がある。

Readiness Gate は AWS Load Balancer Controller でも ALB のターゲットが healthy になってから Pod の status を Ready にする(古い Pod の削除を開始する)という機能である。

https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.1/deploy/pod_readiness_gate/

# Readiness Gate 設定前

下記を参考に、EKS + ALB 

クラウド費用に目を光らせる

こちらは [Makuake Advent Calendar 2023](https://adventar.org/calendars/8992) の記事です。

# ごあいさつ

ふぅ…… 12 月 18 日、 427 時半か……ギリギリセーフだな…… (錯乱)

ご無沙汰しております、株式会社マクアケ SRE チームの dev.aoki です。
例によってアドベントカレンダーでもないと何も書かない不精者ですが、お付き合いくださいませ。

マクアケでは、2013 年からアタラシイものや体験の応援購入サービス「Makuake (マクアケ)」というオンラインプラットフォームを提供しています。
https://www.makuake.com/

自分の所属する SRE チームでは、 Makuake のサービス稼働基盤や監視基盤の面倒を見ることが多く、自然とそのインフラストラクチャにかかる費用に関わる諸作業を行うことが多くあります。 ~~というか毎月経理チームから問い合わせ来ますんで、えぇ、消耗するんですけど。~~
この辺りで意識しないと苦しくなる、コストアラートについて Tips 程度に知見

EC2インスタンスのEBSのボリュームが枯渇したときの対処方法

## 概要
自社のメンバーからWebServerに反映できないと連絡を受け対応した。
ベストプラクティスでは無いと思うのであくまでご参考程度に読んでいただけると幸いです。

備忘録として記事に残しておく。

## 現状を知る
メンバーからディスク容量が一杯というエラーが出ますと言われていたのでとりあえずEC2上のディスク容量を確認してみる。
“`terminal
[サーバー上のアプリディレクトリ内]$ df -h
“`

案の定ディスク容量が枯渇していた。
“`terminal
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/xvda1 493G 0G 493G 100% /
devtmpfs 490M 56K 490M 1% /dev
tmpfs 498M 0 498M 0% /dev/shm
“`

### どのファイルが容量をたくさん食っているかを調べる

とりあえずホームディレクトリは問題なさそう。
“`terminal
[サーバー上のアプリディレクトリ内]

CloudFormationで作成したVPCエンドポイントにAWS CLIにてタグを作成する

# はじめに
CloudFormationで作成したVPCエンドポイントにAWS CLIにてタグを作成する。

CloudFormationにて事前にVPCエンドポイントを作成する必要があり、その際にOutputsにて、VPCエンドポイントIDを出力する必要がある。

# スクリプト

“`sh:create_vpc_endpoint_tags.sh
#!/bin/sh

cd `dirname $0`

STACK_NAME=${CloudFormationのスタック名}

# CloudFormationのスタックの出力からエンドポイントのIDを取得する
VPC_ENDPOINT_IDS=($(
aws cloudformation describe-stacks \
–stack-name ${STACK_NAME} \
–query “Stacks[*].Outputs[*].OutputValue[]” \
–output text
))

# CloudFormationのスタックの出力名を取得

Nature Remoの死活監視をraspberryPiとAWSで

# はじめに
Nature RemoはAlexaと連携出来たりAPIも公開されていたり非常に便利だが、いつの間にか接続が切れ、Alexaに話しかけても「○○は応答していません」と、操作が拒否されることがある。ホームIoTにおいて、家電がお願いを聞いてくれないのはユーザー体験が非常に悪い。お正月休みを使ってAWSとRaspberryPiで死活監視できるしくみを構築した。

### 解決したいこと
Remo miniの赤点滅(画像)。こうなると要求を受け付けない。頻繁には起きないが、たまに点滅しているので困る・・・。(再起動で復活するので、この点滅を検知して再起動させる仕組みを作る)
![IMG_0591.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54100/fa32fb83-9276-0633-d074-92a989b5c78b.jpeg)

## 全体構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

WorkSpaces作成時のエラー対処法

# 発生した事象
WorkSpaces作成時、WorkSpaces用のENIが作成されては消えてを繰り返し、最終的にWorkSpacesのステータスがエラーとなった。エラーメッセージには「There was an issue joining the WorkSpace to your domain. Verify that your service account is allowed to complete domain join operations. If you continue to see an issue, contact AWS Support.」と表示される。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2986198/11d0a986-8e85-2409-3d9c-46a7d762fa1a.png)

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

Amazon Athenaを使ってJsonファイルを読み込もうとして数時間ハマった件について

# はじめに
Amazon Cognitoのユーザープールから任意の条件のユーザー情報を取得する必要があったので、Athenaを使うことにしました。
Athenaを初めて使うこともあり、セットアップにかなり時間がかかってしまいました。
今回はその際に躓いたところを紹介していきます。

# AthenaでJSONを読み込む
## 今回使用したJSONのデータ構造
Cognitoのユーザープールからデータ取得する際にはCLIを使用しました。
参考:[CognitoユーザープールからAWS CLIでユーザーを検索してみる](https://dev.classmethod.jp/articles/search-for-user-with-aws-cli-from-cognito-user-pool/)
“`json:example.json
{
“Users”: [
{
“Username”: “22704aa3-fc10-479a-97eb-2af5806bd327”,
“Enabled”: true,
“User