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

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

amazon linux(EC2)でlaravel+Dockerの環境を作りたい

最近インフラ周りの勉強を始めたのでdocekr+laravelの環境をEC2上に実現したいと思い奮闘しています。
参考になった記事を貼っていきます。

#記事

【AWS 入門】EC2とDockerでHello Worldしよう

【シンプル解説】docker-composeを使ってLaravel,nginx,MySQL環境構築する
https://simablog.net/docker-laravel-nginx-mysql/

##SSH接続後

phpをインストールする
https://qiita.com/nagahama/items/2fdc820791bee5d564ca

composer install
https://qiita.com/kawanet/items/30c1acd4bc90ee0e535d

composer installの際のエラー(/usr/local/bin/docker-compose: line 1: Not: command not found)
ht

元記事を表示

WAFのログ有効化&ロギングフィルターで必要なログのみS3へ直接保存(Terraform)

# 前書き

– Cloud Watchなどにも直接いけます。
– Kinesis Data Firehose??いやいやワイは直接S3にログをぶちこみたいんや!!ってお方向け。
– WebACLのリソースは作成済みのテイで進めます。

# やり方

## ◾️ おおまかな流れ

1. ログ保管用バケットつくる
2. ロギング構成用リソースを定義
3. ロギングとバケットを紐付け
4. ロギングフィルターを定義

## ◾️ 実・践

適当なバケットを作りましょう。

(※バケットポリシーはWAFのロギング時に自動でアタッチされるっぽいのでこちら用意しなくても良いっぽいです。細かい挙動はちょっとよくワカラナイ。。)

注意点として、bucket名は `aws-waf-logs-`のprefixで始まる必要があるらしいです。

[https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/logging-s3.html](https://docs.aws.amazon.com/ja_jp/waf/latest/developer

元記事を表示

AWS+Ray Dashboardポートフォワーディング

# 概要
ローカルPCからWSLでAWS上にRay clusterを作成し、ポートフォワーディングでローカルPC上でRay Dashboardが見られるようにする。

# 環境
– Windows10 Home
– WSL Ubuntuディストリビューションをインストール済み
– Python3、pip3、Ray、botoをインストール済み
– ローカルPCの~/.awsディレクトリ配下のcredentialsにAccess key ID、Secret access keyを入力済み
– 踏み台用EC2を作成済み(EC2はUbuntu)
– 踏み台用EC2に割当てているセキュリティグループでSSHおよび8265番ポートを許可

# 手順
WSL Ubuntuを開き、下記コマンドを実行。

“`bash
# 踏み台用EC2にSSH接続
$ ssh -i <踏み台サーバのpemファイル> ubuntu@<踏み台サーバのパブリックIP>

# 以下は踏み台用EC2で実行

# Ray cluster作成
$ ray up -n example-cluster –no-config-cac

元記事を表示

【AWS】AWS Certified Solutions Architect – Associate合格体験記

# はじめに
表題でも記載した通り、AWSソリューションアーキテクトアソシエイト試験に合格した体験記となります。
※合格したのは2021年8月となります

# AWS Certified Solutions Architect – Associate
下記から詳細が確認いただけます。
https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/

# 勉強したこと
## 参考書
下記参考書を5周くらいしました。
正直、最初見たときは「???」となり、全然理解できませんでした。
なので、AWSの資格に興味があるけど、実際参考書を買ったはいいが自分には無理だ・・・と思った方がいましたら、そこまで落ち込むことはありません。
私は3周くらいしたところでようやく理解しました。←
AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト
https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9

元記事を表示

AWS CDK Intro WorkshopをCloud9で途中までやってみた

# はじめに
今までIaCをCloudFormationで記述してきましたが、規模が大きくなると比例して行数も多くなり、可読性が悪いと感じてきました。
AWS CDKで記述すれば可読性が良くなると聞き、AWS CDK Intro Workshopをやってみました。

# リンク

https://cdkworkshop.com/

日本語版は以下になりますがコードのバージョンが古いです。

https://catalog.us-east-1.prod.workshops.aws/v2/workshops/99731164-1d19-4d2e-9319-727a130e2d57/ja-JP/

日本語を見つつ、コードは英語の方を写経しました。

# 環境

Cloud9を使いましたので、PCはブラウザのみ。
言語はTypeScriptで行いました。

## 環境構築

Cloud9であれば中にすべて入っていましたので、何もインストールする必要ありませんでした。

– Cloud9作成
– デフォルトVPC
– デフォルトIAMロール
– インスタンスタイプはメモリ

元記事を表示

AWS認定クラウドプラクティショナー資格】⑥ネットワークサービス

##はじめに

今回は、「ネットワークサービス」の概要について勉強した内容を紹介します。

「**VPC**」「**CloudFront**」「**Route53**」に絞って、その特徴をまとめていきます。

##参考書籍

※ [『AWS認定資格試験テキスト AWS認定クラウドプラクティショナー』](https://www.amazon.co.jp/gp/product/B07QX45RXM/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B07QX45RXM&linkCode=as2&tag=itabashitat0a-22&linkId=9598d51e51c3843f7a25a61ef3b45475)
本記事は、本書の第6章に相当

## 項目
1.VPC
2.CloudFront
3.Route53

##1.VPC

####(1)VPCの特徴

>Amazon Virtual Private Cloud (Amazon VPC) を使用すると、定義した仮想ネットワーク内で AWS リソースを起動できます。

元記事を表示

AWSの各種ガイドからAWSサービス間の関係性・中心性をリバースしてみた

## はじめに

#### AWSのサービス間の関係性を測定する方法はないだろうか?
昨年 AWSの認定試験の勉強をするに際して、改めてそのサービスの多さに圧倒されました。と、同時にふと「これらのサービス間同士の繋がりって、どうなっているのだろうか?」、「どうにかサービス間の関係性を測定して、可視化する方法はないだろうか?」 ということが気になり始めました。そこで今回、サービス間の繋がりをざっくりと測定できる方法について考えてみました。

**[やりたいことのイメージ] AWSサービス間の繋がりを測定・可視化する**

![circle.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534778/7ec30fea-9091-b265-0abe-2fa14d5c2364.png)

## 当記事における関係性と中心性の定義
理想をいえば、AWSの各サービスを熟知したエキスパートの方々が持つ実践的な知識セットをナレッジグラフのように生成できればいいのですが、なかなかハードルが高いので、、、もっ

元記事を表示

Amazon Cognitoの外部IdP(SAML)として、AzureADを使う

# はじめに

Amazon Cognito は、ウェブおよびモバイルアプリの認証、承認、およびユーザー管理機能を提供します。ゼロから認証機能の実装するのは大変なので、実装の負担などを軽減できます。

今回の記事は、Cognito の IdP として、Azure AD を利用して、Hosted UI を利用する方法を紹介します。Azure AD は SAML を利用できるため、SAML を使った方法となります。SAML を利用できる他の IdP も、もちろん連携可能です。

# 前提条件と確認

Cognito UserPool の基本的な設定は完了している状態で進めていきます。

Azure AD との連携を進める際に、いくつかの値をメモっておくと便利です。後の手順で使っていきます。

User Pool ID

![image-20220124182529491.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/86910f06-ffba-b920-68fe-5c82361114

元記事を表示

【AWS】マージでソースブランチを消さない【CodeCommit】

# 事件はおこった

マージしたらソースブランチ消えた問題。
1回2回ならまだしも、続くと萎えます

# TL:DR
該当ブランチの削除オペを拒否するIAMポリシーをIAMグループまたはIAMユーザにアタッチしたら解決

# 調べたさ
Github/GHE使ってるときはどうだったっけなぁ。。。とか思いつつ
現実問題、ブランチの削除を拒否する方法が欲しかった。
設定画面からマージするときに削除するチェックボックスを外す的な機能があるかと思ったが、なかった。
~~すぐ面倒くさくなってサポートに丸投げしたのは内緒だぞ!~~

# IAMポリシーで定義しろってさ
CodeCommitはAWS様の配下にあるので、
IAMで制限を掛けてねバッチコイってワケです。

## どういう風に定義するの
### IAMポリシーはこう書くの
“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “VisualEditor0”,
“Effect”: “Deny”,

元記事を表示

AWS ECR プルスルーキャッシュリポジトリの罠

## 起きた事象
– ECSのタスク定義に以下のような感じでデプロイしたら、`CannotPullContainerError: inspect image has been retried 1 time(s): failed to resolve ref “xxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/ecr-public/datadog/agent:latest”`で落ちました。

“`json
{
“name”: “datadog-agent”,
“image”: “xxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/ecr-public/datadog/agent:latest”,
“essential”: true,
“cpu”: 10,
“memoryReservation”: 256,
“logConfiguration”: {
“logDriver”: “awslogs”,
“secretOptions”: null,
“optio

元記事を表示

NumberOfBackupJobsFailedを簡単に表示させる方法

稼働中でも停止中でもなんでもいいです。
アカウント内に存在するEC2のVolumeのIDを控え以下のコマンドをCli上で実行して下さい。
※もちろんaws-cli設定済みが前提です。

“`
aws backup start-backup-job –backup-vault-name Default ¥
–resource-arn arn:aws:ec2:ap-northeast-1:アカウントID:volume/vol-000000000 ¥
–iam-role-arn arn:aws:iam::アカウントID:role/service-role/AWSBackupDefaultServiceRole
“`

2回連続実行して下さい。
1個目が進んでいる間、2個目は失敗します。
10〜20分後にCloudWatchメトリックスに出てきます!

Good Luck!

元記事を表示

AmplifyでReactでの画面遷移方法

#準備
下記コマンドを順番に実行し、Amplify-Reactでの環境をを構築する

“`1.AmplifyCLIをインストール
npm install -g @aws-amplify/cli
“`

“`2.Amplifyを設定する
amplify configure
Specify the AWS Region
? region: # Your preferred region
Specify the username of the new IAM user:
? user name: # User name for Amplify IAM user
Complete the user creation using the AWS console
Enter the access key of the newly created user:
? accessKeyId: # YOUR_ACCESS_KEY_ID
? secretAccessKey: # YOUR_SECRET_ACCESS_KEY
This would update/create the AWS Pr

元記事を表示

AWS Light Sailについて

#目次
[1.AWS LightSailについて](#1AWS LightSailについて)
[2.IAM権限を作成する](#2IAM権限を作成する)
[3.LightSailインスタンスを立ち上げる](#3LightSailインスタンスを立ち上げる)
[4.固定IPアドレス作成](#4固定IPアドレス作成)
[5.snapshotsでのバックアップ](#5snapshotsでのバックアップ)

# AWS LightSailについて

比較的簡単にwordpress(wp)の 環境を作成することができ、全世界に公開できるサービスです。
AWSのよく知られているEC2インスタンスを立ち上げるよりも簡単で、楽に運用が可能になっています。
さらに、EC2は従来課金制ですが、LightSailは定額課金の違いがあります。安いプランで月¥500ぐらいで使用できます。

LightSailの特徴

https://aws.amazon.com/jp/lightsail/features/

#IAM権限を作成する
まず、AWSアカウントを作成したらやることとして、AWS Identity

元記事を表示

Amazon CloudFrontの公開設定を色々とためしてみた

![img](https://day-journal.com/memo/images/logo/aws/cloudfront.png)

### Amazon CloudFrontの公開設定を色々とためしてみました :tada:

事前準備

– 事前にAmazon S3に公開したいファイル一式をアップロード
– 設定は非公開のままでOK

![画像](https://day-journal.com/memo/images/amazon-cloudfront-001_07.png)
![画像](https://day-journal.com/memo/images/amazon-cloudfront-001_08.png)

## Amazon S3と組み合わせた公開

Amazon CloudFrontとAmazon S3を組み合わせて公開する方法です。

AWSコンソール → CloudFrontをクリック。
![画像](https://day-journal.com/memo/images/amazon-cloudfront-001_01.pn

元記事を表示

LightsailでWordPressを使ってみた(その2)

#はじめに

これは初心者が書く初心者向けのシリーズ記事です。
前回は、[LightsailでWordPressを使ってみた(その1)](https://qiita.com/AkiSuika/items/41d6b4de3b7777ca02c3)にてWordpressを起動しました。
今回はその続きです。

#起動確認
まずはインスタンスの状態確認からしていきます。
Lightsailの管理画面上では以下の通り実行中とのこと。
![スクリーンショット 2022-01-23 22.18.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/894678/2303c71a-a81d-2ed8-4e40-8c73f327d9b8.png)

パブリックIPにブラウザでアクセスすると無事動いていそうです。
![スクリーンショット 2022-01-23 4.22.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/894678/b2

元記事を表示

AWS S3に格納したファイルをLambdaで処理しS3に再格納する

AWS Lambdaの学習をしています。
S3に格納したファイルをLambdaで処理し、再度S3に格納するということをやってみたいと思い取り組んでみました。
今回はその時の学んだことを記載します。

## 予め実施しておくべきこと

– LambdaのトリガーにS3を登録する。(今回はinput/配下の.csvを対象にした)
– IAMのロールより作成したLambda関数にS3への許可を設定する。

## 学んだこと
– boto3:AWSが提供しているPythonでAWSを操作可能とするライブラリの名称
– lambda_handler:Lambdaの実行時に呼び出される関数

## 作成した関数

“`[python]
import boto3

s3 = boto3.client(‘s3’)

def read_file(bucket_name, file_key):
response = s3.get_object(Bucket=bucket_name, Key=file_key)
print(“response = “, response)

元記事を表示

JSONファイルをCSV変換するスクリプトのメモ

## はじめに

JSONファイルをCSV変換するスクリプトの作成メモ
作成したスクリプトは2種類

– サンプル④-1:JSONファイルをCSV形式に変換してファイル出力(1)
– 04_1_convertFromJsonToCsv.py
– サンプル④-2:JSONファイルをCSV形式に変換してファイル出力(2)
– 04_2_convertFromJsonToCsv.py

変換規則

||サンプル④-1|サンプル④-2|
|—|—|—|
|スクリプト|04_1_convertFromJsonToCsv.py|04_2_convertFromJsonToCsv.py|
|CSV変換後のカラム数|`JSONの要素`と`要素の値`の2つ|`JSONの要素`と`要素の値`の2つ|
|カラム`JSONの要素`について|**先頭に番号を付与**
ネストする全ての要素を `__` で連結|**先頭に番号を付与しない**
ネストする全ての要素を `__` で連結|
|カラム`要素の値`について|**JSON要素の値と同じ**|**作成した`JSONの要素

元記事を表示

WAFで特定ドメインのIP制限をする(Terraform)

# ユースケース

– 1台のサーバーで管理画面アプリケーションと外部公開用APIサーバーの両機能が備わっている場合など(apiに制限はかけたくないが、管理画面にかけたいというシチュエーション)

# どーやるの

## ◾️ 流れ

1. ipのホワイトリストを作成(**aws_wafv2_ip_set**)
2. Web ACLを作成(**aws_wafv2_web_acl**)
3. **aws_wafv2_web_acl**のリソースの定義において、「特定のipは許可する」、「特定のドメインへのアクセスをブロックする」という定義をrulesブロックにて、 `priority`の重み順に実装する。これによりpriorityの若い数値で、「特定のipは許可する」という実装になっているため、この数値よりも高い数値のpriorityとして、特定ドメインのblockという定義を行なっているので、前述したruleの方が優先される。

[https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/wa

元記事を表示

Dockerを使用したRailsアプリをAWS(EC2, RDS)からHerokuに移行する

AWSの無料枠が使える期限が差し迫っていること、今後は別アプリに力を入れたいのでAWSにアップしているRailsアプリを停止することにしてHerokuに移行することにしました。

AWSからHerokuに移行している参考になりそうな以下の記事があったのですぐできるかと思ったのですが、数日費やすことになってしまったので備忘録としてのこします(全体の流れとしてはとてもわかりやすいです)。
[【Rails + MySQL】AWS→herokuの移行 – blog.aiandrox](https://blog.aiandrox.com/posts/tech/2021/02/10/)
[HerokuにMySQL+NginxのRailsアプリを移管した – kumamotone’s blog](https://kumamotone.hatenadiary.jp/entry/2020/01/04/161139)

Dockerを使用しない場合でも同じような手順で使える部分があるとは思いますが参考程度に留めていただきますようお願いいたします。

## 動作環境

– MacOS
– Rails(6.0

元記事を表示

ECSでコンテナ実行メモ その1

## 概要

AWSコンテナ設計・構築[本格]入門をもとに自分でコンテナを動かそうとしてみた手順をまとめていこうかと思います。
動かす対象は以前[こちら](https://qiita.com/dmikita/items/fe262eb2f231fb73ca17)でcloud9上で動かしたコンテナをもとにしています。
タイトルの通りこれで完結ではないので続報ができたらこちらの概要も更新していきます。

## ECRの作成
* まずECRにリポジトリを作成します。以下のようにプライベートリポジトリで作成します。
![InkedECR_1_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657697/5b7dd402-c657-c043-5cf0-51b1fe159bf2.jpeg)
![ECR_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/657697/5b1aed82-402b-4c03-a082-afb29f4

元記事を表示

OTHERカテゴリの最新記事