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

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

Terraform で CloudFront の OriginAccessIdentify から OriginAccessControl に変更する

# Terraform で CloudFront の OriginAccessIdentify から OriginAccessControl に変更する

## はじめに

2022/8/26(日本時間)に CloudFront の OriginAccessControl なる機能が追加されました.

この機能は以下の Terraform AWS Provider のバージョン`4.29.0`にてTerraformで作成できるようになったので試してみました.

https://registry.terraform.io/providers/hashicorp/aws/4.29.0

OACに関しての説明はこちらの記事がわかりやすいと思いますのでそちらを参照してください.

https://dev.classmethod.jp/articles/amazon-cloudfront-origin-access-control/

:::note warn
本記事の内容で実施すると,ダウンタイムが発生します.移行手順ではないのでご注意ください.
:::

## Terraform構成

参考

元記事を表示

普段Azureしか触らない人がAmplifyを触ってみた

こんにちは、普段はAzure, .NETでアプリ開発をしていてAWSコンソールとは縁のないエンジニアです。
個人的にはAWSよりもAzureの方が好きなのですが食わず嫌いは良くないのでAWSも個人開発で触ったりしてます。

半年前くらいに業務で位置情報サービスについて調査する機会があり、Amazon location Serviceについて調べていて位置情報を使うと面白いサービスが作れるのでは!?と思いAWS周りのことを調べていてamplifyというサービスに出会ったのでamplifyについて記事にしていこうと思います。

### 最短amplify導入
詳しく知りたい人は[amplify Document](https://docs.amplify.aws/start/getting-started/installation/q/integration/js/)へGo!

簡単な使い方としては、

“`
npm install -g @aws-amplify/cli
npm install -g @aws-amplify/cli
“`

でAWSコンソールへの認証設定をして、

元記事を表示

サブネットとDHCP

# サブネットとは
**サブネットとは、大きなネットワークを小さく分割したネットワーク**。
ネットワークを切り分けることで、直接通信できる範囲を狭め、ファイアーウォールを設定し、セキュリティの境界を作る目的で使う。AWSの場合はそのサブネットをどこのAZに置くのかを設定する。**つまりサブネットは物理的な場所を特定する**。
VPCでは、まずユーザーの使用できる領域としてネットワークの範囲を作成し、その下に用途に応じて、サブネットを作成する。
**サブネットを分ければ、サブネットAは公開し、サブネットBは非公開にするなどの役割を変えることもできる**。
**通常のネットワークではサブネット同士の通信はルーターが必要ですが、VPCの場合、ルーターなしで通信できる。**
# ネットワークの範囲とCIDR表記
ネットワークやサブネットの範囲を分けるには、**CIDR**(サイダー)と呼ばれる表記を使う。プレフィックス表記とも呼ぶ。
「/24」「/20」など、バックスラッシュの後ろにネットワーク長の数字を書いて表記する。これは「255.255.255.0」や「255.255.240.0」のよ

元記事を表示

Terraformの概要とAWS EC2作成の定義のやり方について

今回は、Terraformを学んでみました。
Terraformとは、AWS、GCP、Azureなどのクラウドリソースを、
コードで定義して、構築できるオープンソースです。

AWSでいう、Cloud Formationに似ているものですが、
AzureやGCPも汎用的に使えるということで、
Dockerや、Kubernetesと同様に広く愛されている技術です。

最低限の使い方ということで、
試しに、AWS EC2のt2マイクロを作成するための、
定義ファイルをmain.tfという名前で作ってみました。

事前準備

まずは、最初の準備として、
・Terraformがインストールされていること
・AWS CLIがインストールされていること
“`
yusuke@mbp terraform % terraform –version
Terraform v0.15.4
on darwin_amd64
+ provider registry.terraform.io/hashicorp/aws v4.26.0

Your version of Terraform is

元記事を表示

Cloud9でphpMyAdminを使用する方法

## 環境
PHP 7.3.30
laravel 8.83.23
mysql Ver 14.14

## 方法
1. mysql -u root -p
2. update mysql.user set password=password(‘root’) where user=’root’;
2. exit;
2. cd your_project/public
2. wget https://files.phpmyadmin.net/phpMyAdmin/4.8.3/phpMyAdmin-4.8.3-all-languages.zip
2. unzip phpMyAdmin-4.8.3-all-languages.zip
2. public 以下に回答されたフォルダ名をphpMyAdminへ変更
2. cd ../
2. php artisan serve –port=8080
2. Previewを表示
2. URLの末尾に/phpMyAdmin/index.phpを追加して表示
2. .env内を修正する

元記事を表示

SageMaker運用(ライフサイクル編)

# はじめに
最近、PoCがてらSageMakerを利用しており少し工夫したので本記事で共有したい

# SageMakerとは
機械学習やAIを使った分析をしたい従来であれば幅広い知識と環境を用意する必要があった。
幅広い知識でいうと、分析とは数学チックな知識や、高度なプログラミング知識を要求されるデータサイエンティストがまさにそれだ。環境面でいうとGPUであったり、Hadoopの環境を整えたりと分析以前に準備でとん挫することが多々あったが、このマネージドサービスを利用すれば多少なりとも素人なりに分析環境やアセットを提供するよといったサービスと思ってもらえればよい(かなりかみ砕いた)

# 今回は
本記事ではSageMakerのノートブックインスタンスを運用するうえで便利なライフサイクルというものがあるが、それを利用するうえで工夫した内容を書き記していく

# ライフサイクルとは
SageMakerで動いているサーバはベースに関してはEC2で動いてるが、これが絶妙に厄介で(利用者はEC2の運用をしない点では嬉しいが)、ノートブックインスタンス自体を停止してしまうと、設定内容や、インス

元記事を表示

★★★ Amazon DynamoDB

# __基本項目__

## 1. サービス概要
キーバリュー型のNoSQLを扱うマネージドデータベースサービスである。
あるひとつのキーに対してひとつのデータ値を保存する。
優れた信頼性とスケーラビリティを持つので、クラウドネイティブのDBとしてまず第一に考えたいサービスである。

## 2. 役割と性能

### 基本動作
シンプルな**キー**と**バリュー**の組み合わせでデータを保存するDBとすることで高性能を実現している。あるキーに格納されたデータバリューに対しシンプルなCRUD処理を実施するような使い方なら万単位の同時データ処理なども実現できる。

### パーティションとデータ分散
DynamoDBはテーブルを**パーティション**という複数の分散された領域に保存する。パーティションは自動的にDynamoDBにより複数のAZに複製・管理される。分散配置することにより大量データの高速スループット処理と耐久性を実現している。

:::note info
スループットを高める・確保するためにパーティションに分割し処理を行う
:::

### パーティション分散したデータを特

元記事を表示

Amazon QuickSight とは

## 勉強前イメージ

んーなんか環境を可視化できる的なやつ?

## 調査

### Amazon QuickSight とは

AWSで使用できる、完全マネージド型のBIツールになります。
BIツールのBIとはBusiness Intelligenceの略で、組織が蓄積したデータを収集・分析・報告することで経営上の決定に役立てるツールのことを言います。
BIツールの基本機能としては以下になります。

– データ抽出
– データ加工
– データ分析・可視化
– ダッシュボード作成・共有

QuickSightとは、AWSで利用できる収集・分析・報告のサービスということになります。

### Amazon QuickSight の特徴

– データソースとの統合が可能

RedshiftやRDS、またデータベースインスタンスをデータソースとして
既存のデータソースで使用することができます。

– 複数人で共有できる

ダッシュボードを共有することで使用したい人全員が見られるようになります。

– コストを抑えられる

QuickSightの費用はストレージ容量とユーザ数です。
利用ユー

元記事を表示

EBS DeleteOnTermination 属性を触ってみた

## 現状の設定確認方法(コンソール)

・対象のEC2からストレージタブを選択⇒右下の設定を確認
※デフォルトではEBSのルートボリュームはインスタンス終了時に削除されるようになっている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/516945/cd8847b8-f181-8cf4-fad3-f7cae58f322c.png)

## 現状の設定確認方法(CLI)

“`
aws ec2 describe-instances –instance-id インスタンスID
You must specify a region. You can also configure your region by running “aws configure”.
“`

上記だと、リージョン指定のエラーが発生する為、オプション追加しなければならない。

“`
aws ec2 describe-instances –region ap-northeast-1
Unable to locat

元記事を表示

【AWS】無料利用枠アカウント作成からEC2へのssh接続まで

会社のアカウントとTerraformでしか構築したことなかったのでコンソールに慣れるついでに書きました。
超初心者向けに説明しています。
Multi-AZを無視していて、細かい語句の説明も端折っているので感覚だけ掴んでもらえれば。

### 環境
MacBook Pro BigSur
zsh

### アカウントの作成
こちらにアクセスして無料アカウントの作成からアカウントを作成します。
**無料利用枠内でもデビットカードもしくはクレジットカードの登録必須です。**

https://aws.amazon.com/jp/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all

住所など全てアルファベット入力なので気をつけます。
こちらのページを参考に登録しましょう。

https://aws.amazon.com/jp/register-f

元記事を表示

Amazon Data Lifecycle ManagerでEC2インスタンスのバックアップを取得する

## はじめに
Amazon Data Lifecycle Managerを利用する事で、EBSボリュームのスナップショット、EBS-backed AMI の作成、保持、削除を自動化する事ができます。
これにより、例えば、EBSスナップショットを毎日取得しつつ、毎週日曜日には週次のシステムバックアップとしてAMIを作成するといったバックアップ運用が簡単に設定できます。

一度ポリシーを作成しておけば、ポリシーでターゲットに指定したタグのキーと値を、EBSやEC2のタグに追加する事で、自動でバックアップが取得できるようになります。

なお、蛇足ではありますが、EBSスナップショット、AMI作成は、EC2インスタンス上で動いているプログラムによっては(RDBなど)、データの整合性が保てない場合があるので、必要に応じて、静止点を取るなどの対処が必要になります。

今回は、EBSスナップショット作成のスケジュール設定、AMI作成のスケジュール設定を行います。

## EBSスナップショット作成のライフサイクルポリシーの作成
![image.png](https://qiita-image-st

元記事を表示

本番環境で実践したいAWSセキュリティのベストプラクティス26選

本文の内容は、2022年8月29日にAlejandro Villanuevaが投稿したブログ(https://sysdig.com/blog/26-aws-security-best-practices/)を元に日本語に翻訳・再構成した内容となっております。

Well-architected フレームワークの最も重要な柱の1つは、セキュリティです。したがって、AWSセキュリティベストプラクティスに従って、不測なセキュリティの事態を防止することが重要です。

さて、あなたは解決すべき問題を持っていて、ソリューションを構築してホストするためにAWSに注目しました。アカウントを作成し、コーヒーを淹れてワークステーションに座り、設計、コーディング、ビルド、デプロイをする準備はすべて整いました。しかし、そうではありません。

今さら聞けないAWSでロードバランサーを使ったWEBサイト構築手順(ロードバランサー編)

第4回目はロードバランサー編ということで、ロードバランサーを作成していきます。
あと最後にロードバランサー用のDNSレコードを登録します。

## 構成図
構成図でいうと赤枠部分の設定をしていきます。
![20220901_alb.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101744/406d2753-a0a5-8558-caeb-1cb7bfa7c7d2.png)

## ロードバランサー作成
いよいよ最後となるロードバランサーを作成します。

ロードバランサー作成は「ロードバランサーの作成」と「ターゲットグループ」の作成が必要になります。

ターゲットグループはロードバランサー配下にどのインスタンスを配置するか指定します。
今回のような1台構成でもターゲットグループの作成は必要です。

図にすると以下のようになります。
![alb_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101744/771b9f5

元記事を表示

今さら聞けないAWSでロードバランサーを使ったWEBサイト構築手順(サーバー編)

第3回目はサーバー編ということで、主EC2を作成していきます。

## 構成図
構成図でいうと赤枠部分の設定をしていきます。

![20220901_server.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/101744/cef5e205-ae9a-82dc-b212-8103f5e32279.png)

### セキュリティグループの作成
まずロードバランサー、踏み台サーバー、WEBサーバのセキュリティグループを作成します。
ロードバランサーのセキュリティグループだけ先に作ります。
必要最低限な設定をしますので、それぞれ以下の設定となります。

| 役割 | 名称 | 許可ポート | アクセス元 |
| — | — | — | — |
| ロードバランサー | web-system-alb-sg | https(443番ポート) |どこからでも許可|
| 踏み台サーバー | web-system-bastion-sg | SSH(22番ポート) |自分のグルーバルIPアドレス|
|

元記事を表示

AWS CLI による Lambda Layer (Python) 作成・公開手順

# 手順

`python` という名称でディレクトリを作成します。(`python` でないと Lambda 上でライブラリをインポートできません)

“`sh
% mkdir python
“`

ターゲットディレクトリを `python/` に指定して、利用したい任意のライブラリをインストールします。

“`sh
% pip install -t python/ requests
“`

zip で固めます。

“`sh
% zip -r layer.zip python
“`

S3 上にアップロードします。`${BUCKET_NAME}` およびプロファイルは自身の環境に合わせて読み替えてください。

“`sh
% aws s3 cp layer.zip s3://${BUCKET_NAME}/layer.zip –profile main
“`

AWS CLI コマンド `publish-lambda-layer` [^1] を利用して Lambda Layer を公開します。

“`sh
% aws lambda publish-layer-ver

元記事を表示

AWS の請求金額を Teams の チャネル に POST してみました 【Account毎-Daily編】

## 概要

[この記事(Pythonで CostExplorer を利用してアカウント毎の請求情報を Teams に POST してみました)](https://qiita.com/turupon/items/5c58e013dbdf5f4a7de9) のPythonプログラムを Azure Functions に登録して自動実行させ、その結果を会社の情報共有ツールとして利用している Temas のチャネルに POST し、少しでもAWSの利用料金削減につながれば、、、、、、と。

### 実行環境

macOS Monterey 12.3.1
python 3.8.12
Azure CLI 2.34.1
Azure Functions Core Tools 4.0.3971

## 事前の準備

### Azure上で必要なものを作成

“`
## 使用するテナントのAzure環境へのログイン
$ az login –tenant

## 使用サブスクリプションを定義します
$ az account set –subscription

元記事を表示

AWS App Runnerから外部インターネットへのアクセスを許可する

AWS AppRunnerでVPC内のサービスを利用できるようになりましたが、外部インターネットにアクセスする場合は別途設定が必要。

https://dev.classmethod.jp/articles/aws-app-runner-for-vpc/

今回は、App Runnerのサブネットはプライベートサブネットに配置しているという条件です。

## 手順

App RunnerのVPC Connectorのサブネットに以下のようにNATゲートウェイ(NAT)とインターネットゲートウェイ(IGW)をアタッチしたルートテーブルを割り当てる。

– パブリックサブネットにのルートテーブルIGWをアタッチする
– プライベートサブネットのルートテーブルにNATをアタッチする

## 参考

App Runner新機能でVPCリソースを利用してみた

https://jp.magicode.io/Nao/articles/1e8b0057900d47df97ddf5735721a1a4

元記事を表示

AWSの各サービスを一言で説明

:::note info
**ご注意**
本ページは厳密な用語説明ではなく、イメージを掴むための簡易説明です。
:::

## EC2(Elastic Compute Cloud)
AWSで作る仮想サーバのこと。最も利用されるサービスの一つ。

## RDS(Relational Database Service)
AWSで作るデータベースのこと。
トランザクション処理など、汎用的なデータベース。

## S3(Simple Storage Service)
AWSで作るストレージのこと。Webサーバの静的コンテンツの格納場所として利用できる。

## IAM(Identity and Access Management)
AWSで権限管理するサービスのこと。

## EFS(Elastic File System)
AWSで作るNFSのこと。

## AWS CloudFormation
AWSのリソースをコード化し、プロビジョニングするサービスのこと。

## Amazon Redshift
AWSでペタバイト級のデータウェアハウス

元記事を表示

terraformのforとfor_eachを使い倒して膨大なsgをスマートに記述する

若干端折ってますがこんな感じの構造ですsgとmainの関係だけ見ていれば大丈夫です。←これ」って書いてあるやつの一部だけを公開します
“`txt:
.
|– README.md
`– terraform
|– environments
| |
| `– stage
| |– backend.tf
| |– main.tf ←これ
| |– provider.tf
| `– variables.tf
`– module
|– vpc
| |– igw.tf
| |– output.tf
| |– rtb.tf
| |– sg.tf ←これ
| |– subnet.tf
| |– variables.tf →これ
| |– vpc.tf
| `– vpce.tf

元記事を表示

aws-cliでIAMユーザーの変更ができなかった話

# はじめに
IAMユーザーを新しく作成し、aws-cli上でもIAMユーザーとして設定しようとしたところうまく登録できませんでした。
それまで使用していた古いIAMユーザーが設定されていることが原因で変更できなかったのですが、解決したので備忘録として残したいと思います。
お気付きの点があれば教えてください。

# 課題
新しく作ったIAMユーザーをaws-cliのIAMユーザーとして登録できない。
旧IAMユーザーを上書きできない。

# 手順
まず現状のaws-cliでの権限を確認するために次のコマンドを実行します。
~~~
aws sts get-caller-identity
~~~
すると現状のどの権限で操作をしているかが確認できます。
~~~
{
“UserId”: “AKIA4KB4UX5XPJRUGBIS”,
“Account”: “************”,
“Arn”: “arn:aws:iam::************:user/Silva-Zoldyck”
}
~~~
旧IAMユーザーの情報が表示されています。

IAMユーザーを新た

元記事を表示

OTHERカテゴリの最新記事