AWS関連のことを調べてみた2022年10月11日

AWS関連のことを調べてみた2022年10月11日
目次

NLB経由でPrivate subnetにあるEC2へアクセスする

# はじめに
AWSのNLBでPrivate subnetにあるEC2へアクセスする方法を書いた記事です。
Web3層アーキテクチャをEC2単体で全部賄っているけど、EC2自体はPublic subnetではなくPrivate subnetに置いておきたいなといった場合に便利です。
ところで、なぜALBではなくNLBを採用するのか?というと、今回は以下の条件があったからです。
– 複数AZで冗長化する予定がない。
– 多量のデータをやり取りする可能性がある。
– 相互 TLS 認証(サーバー認証+クライアント認証)を使いたい。ALBは今のところ相互 TLS 認証がサポートされていません。

公式資料はここら辺を参考にしました。
Network Load Balancer の作成
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/network/create-network-load-balancer.html
プライベート IP アドレスを持つバックエンドインスタンスを ELB のインターネット向けロードバラン

元記事を表示

AWS S3 オブジェクトの保護についてまとめ

## 概要

AWS Solution Architect Associate試験で問われがちなS3のアクセス制御・誤削除防止など、「オブジェクトの保護策」についてまとめてみました

## アクセス制御

### ACLによる読み取り・書き込み制限

パブリックアクセスをブロックするなどの設定を行い、直接URLからオブジェクトにアクセスできるのを防ぐ
デフォルトではバケット内のオブジェクトがプライベートアクセスとなっており、所有者以外はアクセスできない

### バケットポリシーの設定

IAMユーザー・ロール・AWSアカウント・サービスに対してアクセス制御を行う。
特定のIPアドレスを許可/拒否、バケット内のオブジェクト・ディレクトリごとにアクセス制御を行えるなど、ACLより柔軟に設定ができる。
一つのポリシーで100個までルールを設定できる。

バケットポリシーのサンプル

“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “IPAllow”,
“Effect”: “Deny

元記事を表示

【AWS】rootユーザー以外で、AWSの請求金額を閲覧する設定方法 〜IAMユーザー・ロール・IAM Identity Centerユーザー(SSOユーザー)で請求金額を見る方法〜

## 背景
– AWSのアカウントを作成した際、初期設定ではrootユーザー以外ではAWSからの料金の請求情報が見えません。
– AWSを使用していく中で、rootユーザーを使用することは稀(というか[AWSも普段からrootユーザーは使うな](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_root-user.html)と言っている。)だと思います。
– IAMユーザーやIAM Identity Centerユーザー(SSOユーザー)で請求情報を閲覧するためには、簡単な初期設定が必要なので、その設定方法を紹介します。

## rootユーザー以外で、請求情報を見えるようにする設定方法

### rootユーザーでAWSにログインする
– [AWSのマネジメントコンソール](https://aws.amazon.com/jp/console/)画面からログインを選択します。
– スクショのログイン画面でrootユーザーによるログインを行います。
![01.png](https://qiita-image-store.s

元記事を表示

Amazon WorkSpacesを使ってみた(二度目)

# はじめに
M1 Macしか手元になく、Windowsマシンが利用したくなったのでWorkSpacesを利用しようと思います。
この記事では利用開始時のメモを残しておきます。
ちなみに過去に利用していたことがあったため、初めて使うときとは画面表示や手順が違うかもしれません。

# 手順

### 1. AWSアカウントでログインし、WorkSpacesをクリック
以下の画面になりますね。“`WorkSpacesの起動“`を押下します。
![スクリーンショット 2022-10-10 22.24.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/894678/ed10900e-0e90-23e0-69bb-8c49f20fbb33.png)

### 2. ディレクトリの選択
過去に作ったSimple ADがあったのでそれを利用します。“`次のステップ“`へ。
![スクリーンショット 2022-10-10 22.26.14.png](https://qiita-image-store.s3.ap

元記事を表示

検証目的のためにCloudFormationでシングルインスタンスのAuroraを建てようとしたら手こずった話

# 本記事の内容

– AWSが提供するCloudFormationサービスを利用し、データベース(RDS)の一つであるAuroraをシングルインスタンスで建てる方法を記載した記事です。
– 検証目的のため等、インスタンスを冗長化せずシングル構成で作成したいこともあるかと思います。たくさん建てますとお金もかかりますし。ネットにはシングルインスタンス構成で構築した情報があまりなく、冗長構成前提の情報が多かったため、試行錯誤して完成したCloudFormationテンプレートを本記事にまとめました。参考情報になれば幸いです。

本記事の手順で以下のような構成のクラウド環境を作成します。
![CF_Aurora-ページ1.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2017667/0c221a43-0f07-ed08-5722-68c630bc542f.png)
※AWSの操作画面はサービスリリースと共に更新されていくため、本記事をご覧いただくタイミングによっては、現在の画面と異なる場合があ

元記事を表示

GitHubからAWSにOIDC認証するときのIAM信頼ポリシーではStringLikeとStringEqualsに気をつける

# 概要

今までGitHub ActionsでAWSにOpenID Connect認証する設定を2回して、2回ともハマった設定ミスを今後はもう繰り返さないためにメモ。

# 内容

設定の過程で、認証先のIAMロールに信頼ポリシーを設定する必要がある。
https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services#configuring-the-role-and-trust-policy

そのConditionに次のようなものを書いてしまうと失敗する。

“`
“Condition”: {
“StringEquals”: {
“token.actions.githubusercontent.com:aud”: “sts.amazonaws.com”,
“token.actions.githubusercontent.com:sub”: “repo:octo-or

元記事を表示

【備忘録】JAWS DAYS ハンズオンコーナー「コンテナサービスをCI/CDパイプラインでデプロイしよう」をやってみての気づき・学び

[**JAWS-UG**](https://jaws-ug.jp/) の最大のイベントである [**JAWS DAYS 2022**](https://jawsdays2022.jaws-ug.jp/) ではハンズオンも開催されており、3種類のハンズオンがありました

その中でも個人的に一番気になっていたのが「コンテナサービスをCI/CDパイプラインでデプロイしよう」です

私は今回ボランティアスタッフとして参加したため、イベントの次の日を丸一日使ってハンズオンをやりました

内容や構成を理解することを重視してハンズオンを進めましたが、これがかなり濃密なハンズオンなのです
私にアプリケーション開発の経験がないことも相まってかなり大変でした・・・
ただ、非常に勉強になったため学びを残しておこうと思います

# タグの付け方によってコマンドの形態が違う

まず前提として、CLI でのタグ付け操作の方法は以下の2パター

元記事を表示

Amazon ComprehendとLambdaを利用した感情分析APIを作成する

# はじめに

AWSを利用してのテキスト分析が何か出来ないか?と思い、調べていたところ、**Amazon Comprehend**なるものを知りました。
POSTリクエストで「特定の文書」を送ると、文書内の感情分析を行うAPIを作成してみたので、ご紹介します!
※とりあえずAPIを作って動かしてみたい方向けの記事です。

## 感情分析とは?

Amazon Comprehendではドキュメントの感情を4つの値から判断します。
「Positive(肯定的)」「Negative(否定的)」「Mixed(混合)」「Neutral(ニュートラル)」の4つの値が結果として返ってきます。

例えばAmazon Comprehendのコンソール上からInput textに適当な値を入れて「Analyze」を押すと…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411902/6b9e58d2-86cd-c52a-9993-04edd124721b.png)

`Sentiment`として以下

元記事を表示

【AWS】CloudTrailでS3特定バケットの動作をTrailする

S3の特定バケット動作をTrailしたかったのでやってみました?
## ①S3バケットを作成する
Trailしたいバケットとログを吐き出したいバケットの2つを作成します。
(既にあるなら不要です)

test:ログをおいたいバケット
output:ログをはきたいバケット
![スクリーンショット 2022-10-10 20.03.52.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/984662/f035bf66-6723-da79-4201-fde07da374c0.jpeg)

## ②CloudTrailを設定をする
**1.保存先バケット(output)の指定**
![スクリーンショット 2022-10-10 20.05.59.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/984662/8f313aaf-80a5-70f4-b9f2-41b9acdc4dcc.jpeg)
KMSキーも必須なのでここも入力しておきます。

元記事を表示

Laravel9で作成したアプリをAWSにデプロイする

# 前書き
今回は、作成したポートフォリオをAWS上に作成した本番環境にデプロイしてみました。

# 環境

https://qiita.com/ucan-lab/items/56c9dc3cf2e6762672f4

上記記事に準じて環境構築を行っています、

また、VPC・EC2インスタンス・RDSの作成については省略します。

# 実現したいこと
・AWS上にデプロイし、作成したアプリを公開

# 対応方法

## ①EC2インスタンスに各種インストール

○各種アップデート
“`
sudo yum update -y
“`

○webサーバーインストール→今回はnginx
“`
sudo amazon-linux-extras enable nginx1
sudo yum install nginx -y
“`

○phpインストール
→php8.1のインストールにはamazon-linux-extrasコマンドが使用不可
→eoel(Extra Packages for Enterprise Linux)を使用して導入する
“`
# php8.1と関連するモジュ

元記事を表示

【CloudFront】オブジェクト指定でキャッシュ削除したがキャッシュ削除されない

AWS CloudFrontのコンソール上でディストリビューションのキャッシュ削除をする際にオブジェクトを指定してキャッシュ削除。
> /index.html
> /img/hoge.jpg

その後キャッシュ削除ステータスが「完了」となったがCDNにキャッシュされたままサイトが更新されない現象が発生。

## 前提
### 構成
・ドキュメントルート直下にindex.htmlを配置、画像などのリソースは/img/に配置
・https://example.com/ にリクエストしたら、index.htmlを表示させる構成
・ブラウザキャッシュはさせず、CloudFrontにキャッシュさせる

■更新したいファイル(=キャッシュ削除したいファイル)
・/index.html
・/img/hoge.jpg

## 解決
CloudFrontはクライアントからのリクエストパスでそのままキャッシュされる。
言い換えると/へのリクエストは/でキャッシュされ、/index.htmlは/index.htmlでキャッシュされる。
なので今回の場合、
> /index.html
> /img/ho

元記事を表示

Django+AWS+freenomでhttpsを有効化するまでの話

# はじめに
今回はdjangoのアプリをAWSにデプロイし, freenomとRoute53とACMとELBを用いてドメインの取得とhttpsを有効化した際の方法について述べていきます.
かなりボリュームがあるのですが, サラミ出版みたいになるのが非常に嫌だったので, 1つの記事にまとめさせていただきました.

本記事の構成は以下のようになっています.
[①djangoのアプリをAWSにデプロイするまで](#djangoのアプリをawsにデプロイするまで)
[②freenomとRoute53を用いてインスタンスにドメイン名でアクセスするまで](#freenomとroute53を用いてインスタンスにドメイン名でアクセスするまで)
[③ACMとELBを用いてhttpsを有効化するまで](#acmとelbを用いてhttpsを有効化するまで)

djangoのアプリ制作が完了済みで, 既にGitHub上に公開されているという前提でお話をします.
NginxやApachといったサーバアプリを使用せず, RDSなども使わず, djangoにデフォルトで備わっているもののみで実装することを

元記事を表示

AWS AmplifyでコンテナREST APIをデプロイしiOSアプリと通信する

# はじめに
AWS Amplifyを用いることでバックエンドの構成をほぼ意識することなくAPI, 認証、データベースなどをAWS環境に構築し、フロントエンドアプリケーションから呼び出すことができます。
REST APIを作成すると、Amazon API GatewayとAWS Lambdaを用いたイベント駆動型の環境を構築できます。ですが、ユースケースによってはイベント駆動ではなく、常駐型のサーバが適切な場合もあるかと思います。
AWS Amplifyではプロジェクト設定を変更することで、このようなケースにコンテナを用いて対応することができます。

今回は、AWS Amplifyを用いてコンテナREST APIをデプロイし、iOSアプリと通信したいと思います。

# 環境
Amplify CLI: v10.0.0
Xcode: v14.0.1

# 手順
1. Xcodeプロジェクトを作成します。
2. Xcodeプロジェクトディレクトリ直下でAmplify CLIを用いて `amplify init` でAmplify プロジェクトを初期化します。
3. Amplify CLIを用

元記事を表示

ネットワークACLを作成する

# ネットワークACLを作成する
AWSマネジメントコンソールにログインしてください。
VPCダッシュボードに移動してください。
VPCダッシュボードの[ネットワークACL]をクリックしてください。
![スクリーンショット 2022-10-09 7.27.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/f7509d07-6852-d317-018c-fbae61ead49e.png)

ネットワークACLのページが表示されます。
[ネットワークACLを作成]をクリックしてください。
![スクリーンショット 2022-10-09 7.28.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14202/994b4419-cf66-f8b9-bc9c-cfe8d3037bab.png)

任意の名前を入力し、NACLを作成するVPCを選択してください。
[ネットワークACLを作成]をクリックしてください。
!

元記事を表示

[PostgreSQL] Aurora Serverless v1→v2へのアップグレード [AWS/RDS]

## 概要
Aurora Serverless v1(PostgreSQL 10.XX) → Aurora Serverless v2(PostgreSQL 13.7)へ
アップグレードする手順の紹介です。

【本記事の参考ページ】
[・Aurora PostgreSQL の PostgreSQL DB エンジンのアップグレード(aws.amazon.com)](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.PostgreSQL.html#USER_UpgradeDBInstance.PostgreSQL.MajorVersion)
[・Aurora Serverless v2で開始(aws.amazon.com)](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.upgrade.html#aurora-server

元記事を表示

AWS初心者は必ず読むべき!必見!AWSの基本⑥EC2にてWordPress構築構築

# この記事の続き

https://qiita.com/Hashimoto-Noriaki/items/8531a9c2f4fd9497c626

# この記事の概要
WebサーバーにWordPressをインストールし、WordPressからデータベースへ接続します。
ドメイン名にブラウザからアクセスするとWordPressから表示されるようになります。

# WordPressのためのデータベース作成
ドメイン名でWordPressにアクセスできるようにしていきます。

#### RDSインスタンスの中にWordPress用のデータベース作成
まずはEC2でSSHでログインしていきます。
MySQLに接続します。

“`
# MySQL実行   
#  MySQLは環境によって変わることがあるので上のコマンドで動くとは限りません。

[ec2-user@ip-10-0-7-161 ~]$mysql -h aws-infra-web.cssrje6zwv8w.ap-northeast-1.rds.amazonaws.com -u root -p  
Enter password

元記事を表示

AWS初心者は必ず読むべき!必見!AWSの基本⑤RDSを使ったDBサーバー構築

# この記事を読む前に

https://qiita.com/Hashimoto-Noriaki/items/5d2093f41bab397d6bcb

# 記事の中でやること
***プライベートサブネットにDBサーバーを設置***していきます。
そして***アベイラビリティゾーンに新しく作りプライベートサブネット***を作っていきます。
DBの冗長化ができるように***複数のアベイラビリティゾーン***を使うためです。
障害などが起きた時の対応のためです。

# RDSとは
***フルマネージド(運用管理から何までやってくれる)***に対応した***リレーショナルデータベースのサービス***です。
構築や運用の手間が軽減し、データベース設計のベストプラクティスを適用できます。

### RDSの特徴
1. ***何か障害があっても簡単にサービスが停止せず、マルチAZを簡単に構築できます。***
2.***リードレプリカを簡単に構築でき、パフォーマンスを向上***できる
3. ***運用不可の軽減***

運用不可の軽減を細かく見ていきます。

①***自動バックアップ***   

元記事を表示

Amazon RDS for Oracleのスマートフラッシュキャッシュを試してみた

# はじめに
2022/9/14 に 「Amazon RDS for Oracle に、M5d/R5d インスタンス向けの一時テーブルスペース用インスタンスストアおよびデータベーススマートフラッシュキャッシュのサポートを追加」(https://aws.amazon.com/jp/about-aws/whats-new/2022/09/amazon-rds-oracle-instance-store-temporary-tablespace-database-smart-flash-cache-m5d-r5d/) が発表され、それを受けて[インスタンスストアを一時表領域にする方法を試した](https://qiita.com/asahide/items/be714a426ec735658107)。

アップデートの内容としては、インスタンスストアを一時表領域またはスマートフラッシュキャッシュに利用できる、ということだったので、今回はスマートフラッシュキャッシュの利用を試してみた。

スマートフラッシュキャッシュだが、[Oracleのガイド](https://docs.oracle.com

元記事を表示

Kinesis Data Streamsのモニタリングを調べてみた

# 背景・目的
Kinesis Data Streamsのボトルネック調査のため、確認した内容を整理します。
今回は、拡張ファンアウトはオフの状態で確認します。

# まとめ
以下の順番で確認をする。

– 書き込み、読み込みの成否
– PutRecord.Success
– GetRecords.Success
– WriteProvisionedThroughputExceeded
– ReadProvisionedThroughputExceeded
– 遅延状態
– IteratorAgeMilliseconds
– 性能
– PutRecord.Latency
– GetRecords.Latency

# 概要
大きく、ストリームレベルとシャードレベルの2種類があります。

| |ストリームレベル(基本) | シャードレベル(拡張)|
|:———-|:—————-|:—————|
| 収集サイクル | 1分| 1分|
| 料金 | な

元記事を表示

[Rails] 本番環境でrails db:dropする

AWS(EC2)へデプロイ後にデータベースを破棄しようとした際に発生
“`
ec2-user@ip-*** ~]$ docker exec -it ***** sh
# rails db:drop RAILS_ENV=production
rails aborted!
ActiveRecord::ProtectedEnvironmentError: You are attempting to run a destructive action against your ‘production’ database.
If you are sure you want to continue, run the same command with the environment variable:
DISABLE_DATABASE_ENVIRONMENT_CHECK=1
/usr/local/bundle/gems/activerecord-6.1.5/lib/active_record/tasks/database_tasks.rb:63:in `check_protected_enviro

元記事を表示

OTHERカテゴリの最新記事