- 1. スポットインスタンスでゲーム用サーバの構築
- 2. 【直前の速習におすすめ】AWS DevOpsProfessional勉強メモ【随時更新】
- 3. 【PHP】S3 ファイル(オブジェクト)の有無をチェックする方法
- 4. Glueでcsvファイルをparquet形式に変換してみた
- 5. AWS Serverless デジタルバッジを取得する④ アーキテクチャ・移行編
- 6. 【AWS S3】直接アップロードしたファイルが公開できない
- 7. ACMでワイルドカードを使った証明書を発行する際にハマったところ
- 8. AWSのリソースが一括削除できる『aws-nuke』の実行手順
- 9. 【AWS】Code3兄弟を使用してci/cdパイプラインを構築した
- 10. Amazon Redshift サーバーレスを試してみた
- 11. 【Python】【boto3】S3からオブジェクトを分割して読み込む
- 12. YellowfinからAWSセッションマネージャーでEC2の踏み台サーバを経由してRDSのデータソースに接続する
- 13. YellowfinからSSHポートフォワーディングでEC2の踏み台サーバを経由してRDSのデータソースに接続する
- 14. AWSアカウントの解約でやることメモ
- 15. 今更だけど、cloud shell でcodecommit リポジトリを作る
- 16. クラウドエンジニアがレビュー時に意識することと観点
- 17. AWSのIAMの操作履歴がCloudTrailで表示されない
- 18. Amazon CloudFront でレスポンスヘッダーの削除
- 19. [備忘]AWSにおけるセキュリティサービスの概要
- 20. AWS Marketplace経由でDatabricks環境を構築する
スポットインスタンスでゲーム用サーバの構築
統合版マイクラのサーバをスポットインスタンスを使って建てたときのメモです。
「マイクラ スポットインスタンス」で検索すると、色んなサイトに記載はあるのですが、一元的に書いているのがなかったので、記事にまとめました。
AWSを利用する前提です。# 仕様検討
スポットインスタンスを利用する上で一番大事なのは、インスタンスがterminateされた際に、データをどこに退避しておくかです。軽くググったところ、以下の3案がありそうです。1. EBSをアタッチする
– 懸念点:複数AZにまたいだ使用ができない
1. EFSを利用する
– 懸念点:EBSより速度が遅い(特に使用容量少ない場合)、料金がお高め
1. EBSのデータをS3にバックアップし、EC2起動時にS3から復元
– 懸念点:バックアップが間に合わない可能性今回は、速度面を妥協し、EFSを利用する方針としました。
# 実施作業
– UbuntuサーバをEC2で起動
– SSH用のポートと、19132/udpを開放
– EFSをマウント“`
sudo apt-get update
sudo a
【直前の速習におすすめ】AWS DevOpsProfessional勉強メモ【随時更新】
# はじめに
この記事は [TechStock](https://techstock.jp/)のDOP分野(全448問)から、
・間違えやすかい
・知らなかった
・実務に向けて覚えておきたい
と思った知識についてまとめたメモになります。
(予定です。。。2023/2月中に随時更新します。)直前での復習・最後のあがき・実務での辞書引き等にご活用ください!
:::note info
もし少しでも役に立ったら、いいねをポチッと押してもらえると喜びます。
::::::note warn
あくまでも上記観点をもとにした主観的メモなので、網羅性は保証しません。
:::# 本編
## Tips
### AWSとオンプレミスの集中監視
Cloud Watchエージェントはオンプレミスにもインストールできる。
AWS、オンプレのCloudWatch Logsを中央のS3アカウントに集約する。
S3トリガーとLambdaで異常検知、Athenaでログ分析### Elastic BeanstalkのBlue/Green Deploy
Elastic Beanstalkを普通に更新すると、
【PHP】S3 ファイル(オブジェクト)の有無をチェックする方法
# 概要
S3に保存したファイルの有無をチェックする方法がないかと思い調べたら、良い方法があったので、備忘録も含めてその方法を説明します。# 設定方法
1. 最初に、AWS SDKをインストールします。インストール方法は、開発している環境によって異なる為、下記の公式ドキュメントを確認して行って下さい。
[インストール:AWS SDK for PHPバージョン 3](https://docs.aws.amazon.com/ja_jp/sdk-for-php/v3/developer-guide/getting-started_installation.html)2. SDKとAWSを繋ぐ方法については、下記を参照して行って下さい
[AWS SDK for PHPバージョン 3 の基本的な使用パターン](https://docs.aws.amazon.com/ja_jp/sdk-for-php/v3/developer-guide/getting-started_basic-usage.html)3. 公式内に`doesObjectExist`のメソッドがある為、そのメソッドを
Glueでcsvファイルをparquet形式に変換してみた
AWS DASの勉強で初めてGlueを触ったのでメモ
## Parquet形式とは
[AWSドキュメント](https://docs.aws.amazon.com/ja_jp/athena/latest/ug/columnar-storage.html)より
>Apache Parquet や ORC は、データを高速に取得できるように最適化された、AWS 分析アプリケーションで使用されている、列指向ストレージ形式です。
>列指向ストレージ形式には以下の特性があるため、Athena での使用に適しています。
>列のデータ型に合わせて選択された圧縮アルゴリズムによる列ごとの圧縮で、Amazon S3 のストレージ領域を節約し、ディスク容量とクエリの処理中における I/O を削減します。
>Parquet および ORC での述語プッシュダウンにより、Athena クエリが必要なブロックのみを取得できるようになり、クエリパフォーマンスが向上します。Athena クエリがデータから特定の列値を取得すると、データブロック述語からの統計 (最大値や最小値など) を使用して、そのブロックを読み
AWS Serverless デジタルバッジを取得する④ アーキテクチャ・移行編
[このデジタルバッジ](https://aws.amazon.com/jp/blogs/news/introducing-new-aws-serverless-digital-learning-badges/)取得のために、AWS Skill Builderの[このコース](https://explore.skillbuilder.aws/learn/lp/1585/serverless-learning-plan-japanese)を学習している記録
自分のスキルレベルは以下。
– SAAは取得
– 4年前ぐらい
– 実務利用なし
– 趣味レベルではあり# Architecting Serverless Applications (Japanese) (Sub) 日本語字幕版
https://explore.skillbuilder.aws/learn/course/14385/architecting-serverless-applications-japanese-sub-ri-ben-yu-zi-mu-ban;lp=1585
## サーバーレスに
【AWS S3】直接アップロードしたファイルが公開できない
こんにちは、現在エンジニアを目指して勉強中の一般男性です。
ポーフォリオ作品を制作しているなかで
外部のファイルストレージにはAWS S3を選択しました。
その中で、ポートフォリオサイトからのファイルアップロード、表示には成功するものの
S3に直接入れたファイルを表示することができませんでした。S3まわりは権限設定等が複雑でいろいろな記事もあったのですが、
今回私が解決できた方法は見受けられなかったので
メモとして残しておきます。## 環境
・macOS Monterey 12.6
・PHP 8.1.13
・Laravel 9.3.12
・Laravel Sail
・Docker 20.10.2## エラー時の状況
![スクリーンショット 2023-02-04 12.35.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535390/5902e279-114f-e450-162a-554f1edcfa04.png)
AWSマネジメントコンソールの画面にて、
オレンジ色のアップロー
ACMでワイルドカードを使った証明書を発行する際にハマったところ
## この記事を読んでわかること
ACMでSSL証明書作成時、ワイルドカードを使い、複数のサブドメインをサポートしたい時の注意点を知ることができます。
## 冒頭まとめ
ACMで、ワイルドカードを使ってドメイン名を登録する際は、以下の点に注意が必要です。
**サブドメインのレベルは、一つしかサポートされないこと**
2つ以上のサブドメインレベルを登録したい場合は、登録したいドメインをFQDNで指定する必要があります。
## 背景
以下の構成で、HTTPS通信を実現したい場面がありました。
![221120-ページ2.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1100138/4cca7f8d-e585-890a-86f6-29f78c85777c.png)
外部からのアクセス対象となるの名前(ALBのDNSレコード名)は“elb.test.homma.jp“であり、Route53で登録しています。
“elb.test.homma.jp“に対し、H
AWSのリソースが一括削除できる『aws-nuke』の実行手順
# aws-nukeとは
AWSアカウント内の**リソースを削除**することができるツール# 実行手順
## 1. アカウントIDの確認
マネジメントコンソールの右上にある「アカウント名」をクリックして確認できる![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1719666/1a47681e-2ccf-5670-773c-c034a8e90fff.png)
## 2. CloudShellを開く
シェルアイコンをクリックする![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1719666/f6fba4a5-b1a9-8c42-d779-305bbc92558c.png)
## 3. aws-nukeインストール
### 3-1. Githubで最新のバージョン確認する
https://github.com/rebuy-de/aws-nuke/releases
今回は`v
【AWS】Code3兄弟を使用してci/cdパイプラインを構築した
# 01.はじめに
CodeDeployが提供しているサンプルアプリケーションを使用してci/cdパイプラインを構築してみた。
前提として筆者の作業環境はWindowsを使用しておりGitクライアントはあらかじめ使用できる状態である。# 02.構成図
下記の通りとする。
今回はci/cdの動作確認が主であるためセキュリティの考慮はしない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1050566/0cef56ee-0746-9d16-714d-f402a719fbb3.png)# 03.テスト方法
Code Commitにサンプルアプリケーションをpushする。
EC2のグローバルIPアドレスにhttpアクセスしてテストページが閲覧できることを確認する。
確認後、テストページをローカル環境で編集して再度pushする。
EC2に再アクセスした際に編集内容が反映されているか確認する。# 04.IAMロール作成
`1.マネジメントコンソールのIAM画面に遷移してEC2用のロ
Amazon Redshift サーバーレスを試してみた
# 背景・目的
2022年7月に、RedshiftサーバレスがGAになりました。
少し間が空いてしまいましたが、どのような特徴があるか整理し、試してみます。# まとめ
– スケーリングを自動で実行する
– サーバレスのキャパシティはRPUという単位で設定する。RPUは32RPU〜512RPUの間で8 RPU単位で設定する。
– メンテナンスウィンドウは無い
– 名前空間とワークグループという概念が有る
– 名前空間は、データベースとオブジェクトとユーザのコレクションである。
– ワークグループは、コンピューティングリソースの集合# 概要
## 特徴
下記の特徴があります。
– データウェアハウスをプロビジョニングして管理不要
– データウェアハウス容量のプロビジョニングとスケーリングを自動的に実行## メリット
下記のメリットがあります。
– データにアクセスして分析を行う際に、セットアップや調整、管理の必要はない
– データレイクとの統合などを使用して、データウェアハウス、データレイク、オペレーショナルなデータソースをシームレスにクエリできる
– インテリ
【Python】【boto3】S3からオブジェクトを分割して読み込む
AWSLambdaの限られたメモリの中で大きなファイルをダウンロードする必要がありそうだったので調査した。
Lambdaの起動時間の最大15分については、一旦考えないことにする。“`
import boto3def s3_get_object_chunk(bucket, key, buf_size=4096):
offset = 0
s3_client = boto3.client(‘s3’)
file_size = s3_client.get_object(Bucket=bucket, Key=key)[‘ContentLength’]
print(‘file_size: ‘, int(file_size))
chunk_cnt = file_size // buf_size
floor = file_size if file_size
YellowfinからAWSセッションマネージャーでEC2の踏み台サーバを経由してRDSのデータソースに接続する
オンプレ環境にあるYellowfinから、AWSセッションマネージャーによる接続のみが許可されたAWS環境にあるRDSへ接続したい場合があるというお話をお聞きしたので、簡単に検証してみました。
![image-ssm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/3655ea65-e0ee-1d3f-5cef-7bbf4b48bf22.png)
### SSM用ロールの作成
踏み台サーバに割り当てるためのIAMロールを作成します。
エンティティタイプは**AWSのサービス**、ユースケースは**EC2**を選択します。
![ssm1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/cdaa77ec-b7dd-5b6f-3cca-972a2031c567.png)ポリシーから**AmazonEC2RoleforSSM**を選択します。
![ssm2.png](https://qiita
YellowfinからSSHポートフォワーディングでEC2の踏み台サーバを経由してRDSのデータソースに接続する
オンプレ環境にあるYellowfinから、SSH接続のみが許可されたAWS環境にあるRDSへ接続したい場合があるというお話をお聞きしたので、簡単に検証してみました。
![image-ssh.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/9b779b1c-b8d3-409e-f927-7e00bc934db4.png)
### RDSの準備
今回は既存のRDS(PostgreSQL)を使用しました。
本記事中でエンドポイントは**xxx.ap-northeast-1.rds.amazonaws.com**、ポートは**5432**として記述します。### 踏み台サーバの準備
踏み台サーバがすでに存在する場合は不要ですが、今回は新たに踏み台サーバ用のEC2インスタンスを起動しました。
![ssm7-mos.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116818/953403b6-e804-186
AWSアカウントの解約でやることメモ
::: note warn
本記事は、AWSのドキュメント([AWSアカウントを解約する](https://aws.amazon.com/jp/premiumsupport/knowledge-center/close-aws-account/))を読んで、**個人的に大事だと感じた点**をピックアップしている。
プロジェクトによっては、内容が網羅できていない可能性があるので注意!
:::# やること
* 保持したいリソース・データをバックアップ
* リソースの削除
* アカウント解約ひとつずつ確認していく
## 1. バックアップ
S3やDB等のデータやリソースをバックアップしておく## 2. リソース削除
aws-nukeを使うと一括でリソース削除できる
https://dev.classmethod.jp/articles/aws_nuke_intro/
## 3. アカウント解約
マイアカウントページで一番下までスクロールして、アカウントの解約を行う
![image.png](https://qiita-image-store.s3.ap-northea
今更だけど、cloud shell でcodecommit リポジトリを作る
cloud shellを開く
![cloiudshell.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3120764/8bfc0cd6-40d0-93da-d767-b2b1dd50e764.png)リポジトリを作成、リポジトリ名はmyrepositorytestformomokukko
“`
aws codecommit create-repository –repository-name myrepositorytestformomokukko –repository-description “My demonstration repository” –output yaml[cloudshell-user@ip-10-2-59-249 ~]$ aws codecommit create-repository –repository-name myrepositorytestformomokukko –repository-description “My demonstra
クラウドエンジニアがレビュー時に意識することと観点
# はじめに
普段数多くの設計書や構成のレビューをしていますが、その観点ってなにがあるんだろう?とふと思ったので、普段頭の中で考えているレビュー時の観点をアウトプットしていこうと思います。
これで全部というわけではないと思いますが、参考になれば幸いです。
※多少AWSベースとなっていることはご留意ください。# 簡単な自己紹介
職業:AWSメインのクラウド基盤のエンジニア。たまにAzure、GCPも。(一応どちらもPro相当の資格を保持しています。)パブクラへの移行に関するコンサル、基盤設計、構築など色々やってます。
AWSはTop Engineers(Service)、ALL Certificate Engineers(昨年11資格を取得したので)に認定されてます。# 要件定義時/提案時
– お客様はなぜクラウドに移行・利用したいのかの理由、目的を抑えているか
– お客様の実施したいことが、記載されている要件で実現可能か
– 要件に対して、クラウドのベストプラクティスを反映した提案ができているか
– 記載内容に実現不可能なことや矛盾はないか
– 非機能要求グレードの内容に対して
AWSのIAMの操作履歴がCloudTrailで表示されない
# はじめに
結論を先に書くと、AWSの **バージニア北部リージョン(us-east-1)** のことも忘れないでください、という話です。
もし東京リージョンしか使っていなくても、大阪リージョンしか使っていなくても、です。
# IAMポリシーによって突然動かなくなるジョブ
AWSでは、IAMユーザーやIAMユーザーグループを最初に作成した後も、利用するサービスの変化や人の役割の変化に応じて、権限を編集することがしばしばあります。
自分がIAMの全てを管理していればいいのですが、他チームの人と共同で管理するケースがあります。
**許可(Allow)** を含むIAMポリシーがユーザー/ユーザーグループから削除されると、その対象のユーザーの操作が制限されて、できることが減ってしまいますし、反対に **拒否(Deny)** を含むIAMポリシーを追加で割り当ててても、できることが減ってしまいます。
拒否(Deny)は強いですからね。
参考: [AWSガイド – Identity and Access Management – ポリシーの評価論理](https://docs.aw
Amazon CloudFront でレスポンスヘッダーの削除
# 概要
https://aws.amazon.com/jp/about-aws/whats-new/2023/01/amazon-cloudfront-supports-removal-response-headers/
# 構成
CloudFront + S3 で動作を確認しました。(このあたりの構築は、基礎的な部分となるため、割愛します。)
# やってみた
## 通常アクセスの場合
“`
curl -I https://dmxi1jm4zsfwg.cloudfront.net/
HTTP/2 200
content-type: text/html
content-length: 4812
date: Fri, 03 Feb 2023 11:43:31 GMT
last-modified: Fri, 03 Feb 2023 10:47:01 GMT
etag: “3a4b1283da6cd877118ddaeaa04badec”
server: AmazonS3
vary: Accept-Encoding
x-cache: Hit from cloudfront
v
[備忘]AWSにおけるセキュリティサービスの概要
## 概要
システムを運用する上で、セキュリティ面の対策を取ることは不可欠です。
AWS Well-Architected フレームワークの5本の柱に、セキュリティの柱が存在します。
クラウドでのセキュリティには7つの設計原則があるとされており、AWSはそれらを準拠するためのセキュリティサービスを提供しています。それらのサービスの一部を、備忘録としてメモしておきます。随時追記するかもしれません。> ・[AWS公式] AWS Well-Architected フレームワーク セキュリティ
https://wa.aws.amazon.com/wellarchitected/2020-07-02T19-33-23/wat.pillar.security.ja.html## 目次
1. AWS Config
1. AWS Security Hub
1. AWS CloudTrail
1. IAM Access Analyzer## 1. AWS Config
– 一言で
AWSリソースの設定変更履歴を継続的に管理するサービス。![①config.png](https://qii
AWS Marketplace経由でDatabricks環境を構築する
AWSでDatabricksの利用を開始する際の選択肢として、AWS Marketplace経由でサインアップするというものがあります。ここではAWS Marketplace経由でDatabricksを利用開始する手順をまとめます。
メリットとしてはDatabricksの課金とAWSの課金を一本化できるというのがあります。
https://qiita.com/taka_yayoi/items/fb4f57c069e1f272e88a#aws%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88%E3%83%97%E3%83%AC%E3%83%BC%E3%82%B9%E7%B5%8C%E7%94%B1%E3%81%AE%E3%82%B5%E3%82%A4%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97
:::note
**注意**
このプロセスを実行する際には、事前にアカウントオーナーとなる方のメールアドレスを決めておく必要があります。Databricksアカウントにおいて最も強い権限を持つユーザーです。
:::1.