1
0
Fork 0
mirror of https://github.com/nickpoida/og-aws.git synced 2025-03-09 15:40:06 +00:00

Update ru.md

This commit is contained in:
Nikolay Poida 2020-04-04 00:35:22 +06:00 committed by GitHub
parent c26dabb98d
commit 028f95929a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -781,15 +781,15 @@ S3
- 🔹Для большинства случаев использования, принятие решения об использовании объектов S3, как **неизменных** (то есть предварительно приняв решение, что объекты будут либо создаваться, либо удаляться, но не обновляться) может крайне сильно упростить код, использующий объекты, путем исключения сложного управления состоянием объектов.
- 🔹Имейте ввиду, что [до 2015 года](https://aws.amazon.com/about-aws/whats-new/2015/08/amazon-s3-introduces-new-usability-enhancements/), регион'us-standard' имел более слабую модель возможной согласованности, а другие (более новые) регионы могли считывать после записи. Это наконец-то было исправлено - но вы можете почитать множество старых блогов, рассказывающих об этом.
- **Медленные обновления:** На практике, “возможная согласованность” обычно означает получение результата через секунд, за исключением редких случаев, когда согласованность возникает через минуты или даже [часы](http://www.stackdriver.com/eventual-consistency-really-eventual/).
- **S3 as a filesystem:**
- In general S3s APIs have inherent limitations that make S3 hard to use directly as a POSIX-style filesystem while still preserving S3s own object format. For example, appending to a file requires rewriting, which cripples performance, and atomic rename of directories, mutual exclusion on opening files, and hardlinks are impossible.
- [s3fs](https://github.com/s3fs-fuse/s3fs-fuse) is a FUSE filesystem that goes ahead and tries anyway, but it has performance limitations and surprises for these reasons.
- [Riofs](https://github.com/skoobe/riofs) (C) and [Goofys](https://github.com/kahing/goofys) (Go) are more recent efforts that attempt adopt a different data storage format to address those issues, and so are likely improvements on s3fs.
- [S3QL](https://github.com/s3ql/s3ql) ([discussion](https://news.ycombinator.com/item?id=10150684)) is a Python implementation that offers data de-duplication, snap-shotting, and encryption, but only one client at a time.
- [ObjectiveFS](https://objectivefs.com/) ([discussion](https://news.ycombinator.com/item?id=10117506)) is a commercial solution that supports filesystem features and concurrent clients.
- If you are primarily using a VPC, consider setting up a [VPC Endpoint](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html) for S3 in order to allow your VPC-hosted resources to easily access it without the need for extra network configuration or hops.
- **Cross-region replication:** S3 has [a feature](https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) for replicating a bucket between one region and another. Note that S3 is already highly replicated within one region, so usually this isnt necessary for durability, but it could be useful for compliance (geographically distributed data storage), lower latency, or as a strategy to reduce region-to-region bandwidth costs by mirroring heavily used data in a second region.
- **IPv4 vs IPv6:** For a long time S3 only supported IPv4 at the default endpoint `https://BUCKET.s3.amazonaws.com`. However, [as of Aug 11, 2016](https://aws.amazon.com/blogs/aws/now-available-ipv6-support-for-amazon-s3/) it now supports both IPv4 & IPv6! To use both, you have to [enable dualstack](http://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html) either in your preferred API client or by directly using this url scheme `https://BUCKET.s3.dualstack.REGION.amazonaws.com`. This extends to S3 Transfer Acceleration as well.
- **S3 как файловая система:**
- В общем, API S3 имеет внутренние ограничения, которые делают сложным использование S3 в качестве POSIX-подобной файловой системы, при сохранении собственного объектного формата S3. Как пример, добавление данных в файл требует перезаписи, что крайне сильно снижает производительность, кроме того, невозможно атомарное переименование директорий, взаимное изолирование при работе с файлами и жесткие ссылки также не поддерживаются.
- [s3fs](https://github.com/s3fs-fuse/s3fs-fuse) это файловая система типа FUSE(filesystem in user environment - файловая система в пользовательском окружении) которая продолжает развитие и, несмотря ни на что, продолжает попытки улучшения, но имеет ограничения производительности и посему удивляет, что вообще поддерживается.
- [Riofs](https://github.com/skoobe/riofs) (на C) и [Goofys](https://github.com/kahing/goofys) (на Go) являются более поздними усилиями применить другой формат хранения данных в целях решения подобных проблем, и похоже являются улучшениями s3fs.
- [S3QL](https://github.com/s3ql/s3ql) ([обсуждение](https://news.ycombinator.com/item?id=10150684)) это реализация на Python, которая предлагает поддержку дедупликации данных, мгновенных снимков(снапшотов) и шифрование, но имеет ограничение на одновременное использование только одним пользователем.
- [ObjectiveFS](https://objectivefs.com/) ([обсуждение](https://news.ycombinator.com/item?id=10117506)) это коммерческое решение, которое поддерживает функционал файловой системы и конкурентные подключения.
- Если вы изначально используете VPC, рассмотрите возможность установки [выходной точки VPC(VPC Endpoint)](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html) для S3 в целях обеспечения возможности ресурсов размещенных в VPC легко получать доступ в S3 без дополнительных сетевых настроек или дополнительных узлов.
- **Межрегиональная репликация:** S3 имеет [возможность](https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) репликации бакетов между регионами. Имейте ввиду, что S3 итак сильно реплицируется внутри одного региона, так что это обычно не является необходимым для сохранности данных, однако это может быть необходимо для соответствия правилам и стандартам (географически распределенное хранение даннных), снижения задержек или как стратегия по снижению затрат на передачу даннных между регионами путем зеркалирования часто используемых данных во втором регионе.
- **IPv4 и IPv6:** В течении долгого времени S3 поддерживал только IPv4 на стандартной выходной точке `https://BUCKET.s3.amazonaws.com`. Как бы там не было, [по состоянию на 11 августа 2016 года](https://aws.amazon.com/blogs/aws/now-available-ipv6-support-for-amazon-s3/) он теперь поддерживает как IPv4, так и IPv6! Чтобы использовать оба, вам необходимо [включить двойной стэк (dualstack)](http://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html) либо используя предпочитаемый клиент API или напрямую используя выходную точку `https://BUCKET.s3.dualstack.REGION.amazonaws.com`. Это также относится к S3 Transfer Acceleration.
- **S3 event notifications:** S3 can be configured to send an [SNS notification](https://aws.amazon.com/blogs/aws/introducing-the-amazon-simple-notification-service/), [SQS message](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/Welcome.html), or [AWS Lambda function](http://docs.aws.amazon.com/lambda/latest/dg/welcome.html) on [bucket events](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html).
- 💸Limit your individual users (or IAM roles) to the minimal required S3 locations, and catalog the “approved” locations. Otherwise, S3 tends to become the dumping ground where people put data to random locations that are not cleaned up for years, costing you big bucks.
- If a bucket is deleted in S3, it can take up to 10 hours before a bucket with the same name can be created again. ([discussion](https://forums.aws.amazon.com/thread.jspa?threadID=37532))